以下、本発明の実施例を図面を参照しながら説明する。ただし、以下の実施例はあくまでも一例であって、本発明は以下の実施例に限定されるものではない。
[実施例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ケーブルとして機能する。通信装置100と外部装置200とは接続ケーブル300を介して映像データや音声データ等の伝送や制御コマンドの送受信を行う。
また、実施例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は、パワーライン、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の画像表示能力に適した映像フォーマット及び音声処理能力に適した音声フォーマットを自動的に知ることができる。ビデオカメラ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は、ビデオカメラ100を制御するためのCECコマンドをビデオカメラ100にCECライン304を介して送信し、ビデオカメラ100はテレビ200にテレビ200を制御するためのCECコマンドを送信する。
<ビデオカメラ100>
次に、図2を参照して、ビデオカメラ100の構成の一例を説明する。
ビデオカメラ100は、図2に示すように、CPU(Central Processing Unit)101、メモリ102、通信部103、撮像部104、記録部105、表示部106及び操作部107を有する。
CPU101は、メモリ102に格納されているコンピュータプログラムに従って、ビデオカメラ100全体の動作を制御する。また、CPU101は、テレビ200のEDIDを用いてビデオカメラ100全体の動作を制御したり、ビデオカメラ100の各部から供給されたデータに応じてビデオカメラ100全体の動作を制御する。また、CPU101はタイマー101aを有し、ビデオカメラ100の各部の動作に対する経過時間T等を計測する。
メモリ102は、CPU101のワークエリアとして機能する。メモリ102には、ビデオカメラ100の製品名、ビデオカメラ100の製造者名、ビデオカメラ100の動作に対するフラグの設定及びCPU101によって行われた解析の結果が記録される。また、メモリ102には、タイマー101aによって計測される経過時間T及び経過時間Tに対する閾値である所定の時間Mも記録される。また、メモリ102には、テレビ200のEDID、テレビ200の製品名、テレビ200の製造者名及びテレビ200の識別情報からテレビ200の製造者名を照合するためのリスト等が記憶される。なお、CPU101のワークエリアは、メモリ102に限られるものではなく、ハードディスク装置等の外部記録装置であってもよい。
通信部103は、HDMIケーブル300を接続するための接続端子を有し、接続端子を介して、CECコマンドの送受信を行う。また、通信部103は、接続端子を介して、映像データ、音声データ及び補助データの送信を行う。通信部103は、接続検出部103aと、デバイス情報取得部103bと、データ処理部103cと、コマンド処理部103dとを有する。
接続検出部103aは、テレビ200からHPDライン301を介して送信されるHPD信号を検出する。接続検出部103aは、HPDライン301を介してHレベルのHPD信号を検出した場合、HレベルのHPD信号を受信した旨をCPU101に通知する。また、同様に、接続検出部103aは、HPDライン301を介してLレベルのHPD信号を検出した場合、LレベルのHPD信号を受信した旨をCPU101に通知する。
デバイス情報取得部103bは、接続検出部103aがHレベルのHPD信号を検出した場合、テレビ200にテレビ200のEDIDを要求する。また、デバイス情報取得部103bは、DDCライン302を介してテレビ200のEDIDをテレビ200から受信する。
デバイス情報取得部103bがテレビ200からDDCライン302を介してテレビ200のEDIDを受信した場合、デバイス情報取得部103bは受信したテレビ200のEDIDをCPU101に供給する。CPU101は、デバイス情報取得部103bから供給されたテレビ200のEDIDをメモリ102に記録する。
データ処理部103cは映像データと、音声データと、補助データとをTMDSライン303を介してテレビ200に送信する。ビデオカメラ100の動作モードが撮影モードである場合、通信部103は、撮像部104で生成された映像データと、不図示のマイクロフォン部で生成された音声データとをTMDSライン303を介してテレビ200に送信する。この場合、CPU101で生成された補助データも、映像データ及び音声データとともにTMDSライン303を介してテレビ200に送信される。ビデオカメラ100の動作モードが再生モードである場合、通信部103は、記録部105が記録媒体105aから再生した映像データ及び音声データをTMDSライン303を介してテレビ200に送信する。この場合、CPU101で生成された補助データも、映像データ及び音声データとともにTMDSライン303を介してテレビ200に送信される。
データ処理部103cは、TMDSラインを介してテレビ200に補助データであるビデオカメラ100の機種情報パケットデータを送信する。なお、機種情報パケットデータには、例えば、CEA−861規格で規定されているSPD(Source Product Description)InfoFrameがある。SPDInfoFrameには、ASCII(American Standard Code for Information Interchange)コードによって定義できるデータが含まれる。CPU101は、ASCIIコードで定義できるデータにおいて、製造者名、製品名、製品カテゴリの情報等のビデオカメラ100の機種情報をASCIIコードで定義することができる。これにより、データ処理部103cは、SPDInfoFrameをTMDSライン303を介してテレビ200に送信することによって、ビデオカメラ100の製品名をTMDSライン303を介してテレビ200に送信する。また、SPDInfoFrameによってテレビ200に送信するビデオカメラ100の製品名の文字数は、ASCIIコードで16文字以内であるとCEA−861規格により規定されている。実施例1では、テレビ200に送信する機種情報パケットデータの一例としてSPDInfoFrameを用いるが、ビデオカメラ100の製品名を含む情報を送信するものであれば、他の方式のパケットデータであってもよい。なお、CPU101はテレビ200から受信したテレビ200のEDIDに含まれる情報から、テレビ200が受信できる機種情報パケットデータ及びテレビ200が復号できる機種情報パケットデータを自動的に知ることができる。これによって、CPU101は、テレビ200が受信可能であり、かつ、テレビ200が復号可能なSPDInfoFrameを生成する。
コマンド処理部103dは、テレビ200から送信されたCECコマンドを、CECライン304を介して受信する。コマンド処理部103dは、テレビ200から受信したCECコマンドをCPU101に供給する。CPU101は、テレビ200から受信したCECコマンドに従ってビデオカメラ100の動作を制御する。
また、コマンド処理部103dは、テレビ200を制御するためのCECコマンドを、CECライン304を介してテレビ200に送信する。テレビ200を制御するためのCECコマンドは、CPU101で生成され、CPU101からコマンド処理部103dに供給される。
コマンド処理部103dがCECコマンドをテレビ200にCECライン304を介して送信した場合、テレビ200はビデオカメラ100からのCECコマンドを受信したとき、CECコマンドに対する応答信号をビデオカメラ100に送信する。応答信号には、確認応答、または背定応答を示すACK(Acknowledge)信号と、否定応答を示すNACK(Negative Acknowledge)信号とがある。
テレビ200は、ビデオカメラ100から送信されたCECコマンドを正しく受信できた場合、ビデオカメラ100にACK信号を送信する。テレビ200は、ビデオカメラ100から送信されたCECコマンドを正しく受信できなかった場合、ビデオカメラ100にNACK信号を送信する。コマンド処理部103dは、CECライン304を介してACK信号、またはNACK信号を受信する。
撮像部104は、ビデオカメラ100の動作モードが撮影モードである場合は、被写体を撮影し、当該被写体の光学像から映像データを生成する。撮像部104で生成される映像データは、動画、静止画のいずれでもよい。撮像部104で生成された映像データは、撮像部104からデータ処理部103c、記録部105及び表示部106に供給される。テレビ200からテレビ200のEDIDを受信した場合、CPU101は、撮像部104からデータ処理部103cに供給される映像データを、テレビ200の画像表示能力に適した映像データに変換する。撮像部104から通信部103に供給された映像データは、TMDSライン303を介してテレビ200に送信される。撮像部104から記録部105に供給された映像データは、記録媒体105aに記録される。撮像部104から表示部106に供給された映像データは、表示部106に表示される。
撮像部104が映像データを生成する場合、不図示のマイクロフォン部は音声データを生成する。マイクロフォン部で生成された音声データは、マイクロフォン部からデータ処理部103c、記録部105及び不図示のスピーカ部に供給される。テレビ200からテレビ200のEDIDを受信した場合、CPU101は、マイクロフォン部からデータ処理部103cに供給される音声データを、テレビ200の音声処理能力に適した音声データに変換する。マイクロフォン部からデータ処理部103cに供給された音声データは、TMDSライン303を介してテレビ200に送信される。マイクロフォン部から記録部105に供給された音声データは、記録媒体105aに記録される。マイクロフォン部から表示部106に供給された音声データは、スピーカ部から出力される。
撮像部104は、ビデオカメラ100の動作モードが再生モードである場合は、被写体の撮影を停止し、当該被写体の光学像からの映像データの生成を停止する。
記録部105は、ビデオカメラ100の動作モードが再生モードである場合は、ユーザによって選択された映像データ及び音声データを記録媒体105aから再生する。記録媒体105aから再生される映像データ及び音声データの選択は、操作部107を介して入力されたユーザの指示に従って、CPU101が制御する。
記録部105が記録媒体105aから再生した映像データは、記録部105からデータ処理部103c及び表示部106に供給される。テレビ200からテレビ200のEDIDを受信した場合、CPU101は、記録部105からデータ処理部103cに供給される映像データを、テレビ200のEDIDに応じてテレビ200の画像表示能力に適した映像データに変換する。記録部105からデータ処理部103cに供給された映像データは、TMDSライン303を介してテレビ200に送信される。記録部105から表示部106に供給された映像データは、表示部106に表示される。
記録部105が記録媒体105aから再生した音声データは、記録部105からデータ処理部103c及び不図示のスピーカ部に供給される。テレビ200からテレビ200のEDIDを受信できた場合、CPU101は、記録部105からデータ処理部103cに供給される音声データを、EDIDに応じてテレビ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を制御する。
<テレビ200>
次に、図2を参照して、テレビ200の構成の一例を説明する。
テレビ200は、図2に示すように、CPU201、チューナ部202、通信部203、表示部204、操作部205及びメモリ206を有する。
CPU201は、メモリ206に格納されているコンピュータプログラムに従ってテレビ200全体の動作を制御する。
チューナ部202は、ユーザによって選択されたテレビジョンチャンネルのテレビジョン放送を受信する。
通信部203は、HDMIケーブル300を接続するための任意の数の接続端子を有する。通信部203は、ビデオカメラ100から送信された映像データ、音声データ及び補助データを、接続端子及びTMDSライン303を介して受信する。ビデオカメラ100から受信した映像データは、表示部204に表示される。ビデオカメラ100から受信した音声データは、不図示のスピーカ部から出力される。ビデオカメラ100から受信した補助データは、CPU201に供給される。CPU201は、ビデオカメラ100から受信した補助データに従ってテレビ200を制御する。
通信部203は、ビデオカメラ100から送信されたCECコマンドを、CECライン304を介して受信する。ビデオカメラ100から受信したCECコマンドは、通信部203からCPU201に供給される。CPU201は、ビデオカメラ100から受信したCECコマンドに従ってテレビ200を制御する。また、通信部203は、ビデオカメラ100を制御するためのCECコマンドを、CECライン304を介してビデオカメラ100に送信する。ビデオカメラ100を制御するためのCECコマンドは、CPU201で生成され、CPU201から通信部203に供給される。
通信部203は、ビデオカメラ100がパワーラインを介してテレビ200に+5Vを供給しているか否かを判定する。ビデオカメラ100がパワーラインを介してテレビ200に+5Vを供給している場合、通信部203は、HレベルのHPD信号をHPDライン301を介してビデオカメラ100に送信する。ビデオカメラ100がパワーラインを介してテレビ200に+5Vを供給していない場合、通信部203は、LレベルのHPD信号をHPDライン301を介してビデオカメラ100に送信する。
ビデオカメラ100がテレビ200に+5Vを供給しているにもかかわらず、テレビ200のEDIDをビデオカメラ100に送信できない場合も、通信部203は、LレベルのHPD信号をHPDライン301を介してビデオカメラ100に送信する。
通信部203は、メモリ206に格納されているテレビ200のEDIDを、ビデオカメラ100からの要求に応じて、DDCライン302を介してビデオカメラ100に送信する。
表示部204は、液晶ディスプレイ等の表示器により構成される。表示部204は、チューナ部202によって受信されたテレビジョン放送の映像データ、通信部203によってビデオカメラ100から受信した映像データ、メモリ206に記録された選択画面のいずれか1つを表示する。
操作部205は、テレビ200を操作するためのユーザインターフェースを提供し、CPU201は、操作部205を介して入力されたユーザの指示に従ってテレビ200を制御する。また、操作部205はテレビ200を操作するための複数のボタンを有する。操作部205に含まれる各ボタンは、スイッチ、タッチパネル等により構成される。操作部205はテレビ200を操作するための電源ボタン、外部入力ボタン、+字ボタン等を有する。
電源ボタンは、不図示の電源部から供給される電力をテレビ200全体に供給したり、不図示の電源部から供給される電力をテレビ200の一部に供給したりするためのボタンである。
外部入力ボタンは、テレビ200に接続端子とHDMIケーブルとを介して接続されているソース装置の中から一つのソース装置を選択するための選択画面を表示部204に表示させるボタンである。なお、表示部204に表示されている選択画面上には、テレビ200の接続端子とHDMIケーブルとを介して接続されているソース装置の製品名及びソース装置の製品名を選択するためのカーソルが表示される。
+字ボタンは、表示部204に選択画面が表示されている場合、選択画面上に表示されているカーソルを操作するためのボタンである。ユーザは、十字ボタンを操作することによって、選択画面上に表示されているカーソルを操作し、テレビ200に接続端子とHDMIケーブルとを介して接続されているソース装置の中から一つのソース装置を選択する。
<第1の製造者名取得処理>
図3は、実施例1に係るビデオカメラ100で行われる第1の製造者名取得処理の一例を説明するためのフローチャートである。
実施例1では、第1の製造者名取得処理が、ビデオカメラ100がパワーラインを介して+5Vをテレビ200に供給しているときに行われる場合を説明する。また、実施例1では、CPU101が、メモリ102に格納されているコンピュータプログラムに従って第1の製造者名取得処理を制御する場合を説明する。
ステップS301において、CPU101は、接続検出部103aが検出したHPD信号がHレベルであるか否かを判定する。CPU101によって、接続検出部103aがLレベルのHPD信号を検出したと判定された場合、CPU101は、テレビ200からDDCライン302を介してテレビ200のEDIDを取得できないと判定する。この場合(ステップS301でNO)、本フローチャートは終了する。CPU101によって、接続検出部103aがHレベルのHPD信号を検出したと判定された場合、CPU101は、テレビ200からDDCライン302を介してテレビ200のEDIDを取得できると判定する。この場合(ステップS301でYES)、本フローチャートはステップS301からステップS302に進む。
ステップS302において、デバイス情報取得部103bは、DDCライン302を介してテレビ200のEDIDを取得する。デバイス情報取得部103bは、DDCライン302を介して取得したテレビ200のEDIDをCPU101に供給する。デバイス情報取得部103bからテレビ200のEDIDがCPU101に供給された場合、本フローチャートはステップS302からステップS303に進む。
ステップS303において、CPU101は、第1の識別情報をテレビ200のEDIDから取得するためにEDIDの解析処理を行う。なお、第1の識別情報とは、EDIDに含まれるID Manufacturer Nameであって、テレビ200の製造者名を示す情報である。CPU101はEDIDの解析を行った場合、テレビ200の画像表示能力及び音声処理能力に適した映像フォーマットや音声フォーマット、テレビ200の製品コードや製造年月日及びID Manufacturer Nameを取得する。CPU101によって、テレビ200のEDIDが解析された場合、本フローチャートはステップS303からステップS304に進む。
ステップS304において、CPU101は、テレビ200の第2の識別情報がメモリ102に記録されているか否かを判定する。第2の識別情報とは、ビデオカメラ100がテレビ200から受信したCECコマンドに含まれるテレビ200の製造者名を示す情報である。第2の識別情報については、詳しくは後述する。CPU101によって、第2の識別情報がメモリ102に記録されていると判定された場合、CPU101は、第2の識別情報に対応したテレビ200の製造者名が設定されていると判定する。この場合、(ステップS304でYES)、本フローチャートは終了する。CPU101によって、第2の識別情報がメモリ102に記録されていないと判定された場合、CPU101は、テレビ200の製造者名が設定されていないと判定する。この場合(ステップS304でNO)、本フローチャートはステップS304からステップS305に進む。
ステップS305において、CPU101は、解析されたテレビ200のEDIDに含まれている情報とともに第1の識別情報をメモリ102に記録する。第1の識別情報がメモリ102に記録された場合、本フローチャートは、ステップS305からステップS306に進む。
ステップS306において、CPU101は、メモリ102に記録されている第1の識別情報からテレビ200の製造者名を照合するための第1のリストと第1の識別情報とを照合する。このことによって、CPU101(第1の製造者名取得手段)は、第1の識別情報に対応したテレビ200の製造者名を取得する。以下、第1の識別情報に対応したテレビ200の製造者名を「ID1(第1の製造者名)」と呼ぶ。CPU101は、テレビ200の製造者名をID1として、メモリ102に設定する。メモリ102にテレビ200の製造者名が設定された場合、本フローチャートは終了する。なお、図3に示す第1の製造者名取得処理は、ビデオカメラ100がテレビ200にビデオカメラ100の製品名を送信する製品名送信処理を行う前に行われるものとする。なお、第1のリストは、メモリ102に記録されており、第1のリストには、ID Manufacturer Nameに対応した製造者名が複数記載されているものとする。
<第2の製造者名取得処理>
図4は、実施例1に係るビデオカメラ100で行われる第2の製造者名取得処理の一例を説明するためのフローチャートである。
実施例1では、第2の製造者名取得処理が、ビデオカメラ100がパワーラインを介して+5Vをテレビ200に供給しているときに行われる場合を説明する。また、実施例1では、CPU101が、メモリ102に格納されているコンピュータプログラムに従って第2の製造者名取得処理を制御する場合を説明する。
ステップS401において、CPU101は<Polling Message>コマンドを生成する。<Polling Message>コマンドとは、テレビ200とビデオカメラ100との間でCECコマンドによる双方向の通信を行う際、テレビ200がCEC規格に対応していることを確認するためのCECコマンドである。CPU101は生成した<Polling Message>コマンドをコマンド処理部103dに出力する。CPU101は、コマンド処理部103dが<Polling Message>コマンドをテレビ200にCECライン304を介して送信するように制御する。コマンド処理部103dが<Polling Message>コマンドをテレビ200にCECライン304を介して送信した場合、本フローチャートはステップS401からステップS402に進む。
ステップS402において、CPU101は、コマンド処理部103dがステップS401において送信した<Polling Message>コマンドに対するACK信号をテレビ200から受信したか否かを判定する。
CPU101によって、コマンド処理部103dがACK信号を受信しなかったと判定された場合、CPU101は、テレビ200がCEC規格に対応していないと判定する。この場合、(ステップS402でNO)、本フローチャートは終了する。また、CPU101によって、コマンド処理部103dがNACK信号を受信したと判定された場合も同様に、CPU101は、テレビ200がCEC規格に対応していないと判定する。
CPU101によって、コマンド処理部103dがACK信号を受信したと判定された場合、CPU101は、テレビ200がCEC規格に対応していると判定する。この場合(ステップS402でYES)、本フローチャートはステップS402からステップS403に進む。この場合、コマンド処理部103dは、テレビ200からCECライン304を介してCECコマンドを受信することも、テレビ200にCECライン304を介してCECコマンドを送信することもできる。
ステップS403において、CPU101は、テレビ200の第2の識別情報を要求するCECコマンドを生成し、生成したCECコマンドをCECライン304を介してテレビ200に送信するようにコマンド処理部103dを制御する。なお、テレビ200の第2の識別情報とは、CEC規格に規定されているVendor IDである。Vendor IDとは、IEEE Registration Authority Committee(RAC)が管理している24ビットの製造者識別コードである。
第2の識別情報をテレビ200に要求するためにCPU101が生成するCECコマンドの一例として、CEC規格で規定されている<Give Device Vendor ID>コマンドが挙げられる。<Give Device Vendor ID>コマンドは、第2の識別情報をテレビ200に要求するためのコマンドである。コマンド処理部103dが、<Give Device Vendor ID>コマンドをテレビ200に送信した場合、本フローチャートはステップS403からステップS404に進む。
テレビ200が、コマンド処理部103dから送信された<Give Device Vendor ID>コマンドを受信した場合、テレビ200は、CECライン304を介してビデオカメラ100に第2の識別情報を送信する。
そこで、ステップS404において、CPU101は、コマンド処理部103dがCECライン304を介してテレビ200の第2の識別情報を含むCECコマンドを受信したか否かを判定する。なお、第2の識別情報を含むCECコマンドの一例として、<Device Vendor ID>コマンド(製造者名取得コマンド)が挙げられる。<Device Vendor ID>コマンドは、テレビ200が第2の識別情報をビデオカメラ100に知らせるためのコマンドである。CPU101によって、コマンド処理部103dが<Device Vendor ID>コマンドを受信していないと判定された場合(ステップS404でNO)、本フローチャートはステップS404からステップS404に戻る。CPU101によって、コマンド処理部103dが<Device Vendor ID>コマンドを受信したと判定された場合(ステップS404でYES)、本フローチャートはステップS404からステップS405に進む。
ステップS405において、CPU101は、コマンド処理部103dから供給される<Device Vendor ID>コマンドから第2の識別情報を取得する。CPU101は、メモリ102に記録されている第2の識別情報からテレビ200の製造者名を照合するための第2のリストと第2の識別情報とを照合させる。このことによって、CPU101(第2の製造者名取得手段)は、Vendor IDに対応したテレビ200の製造者名を取得する。以下、第2の識別情報に対応したテレビ200の製造者名を「ID2(第2の製造者名)」と呼ぶ。この場合、本フローチャートはステップS405からステップS406に進む。なお、第2のリストは、メモリ102に記録されており、第2のリストには、Vendor IDに対応した製造者名が複数記載されているものとする。
CPU101は、第2の識別情報からID2を取得した場合、テレビ200の製造者名をID2に設定する前に、テレビ200の製造者名がID1に設定されているか否かは判定する必要がある。
そこで、ステップS406において、CPU101はメモリ102に第1の識別情報が記録されているか否かによって、ID1がテレビ200の製造者名としてメモリ102に設定されているか否かを判定する。CPU101によって、メモリ102に第1の識別情報が記録されていないと判定された場合(ステップS406でNO)、本フローチャートはステップS406からステップS408に進む。CPU101によって、メモリ102に第1の識別情報が記録されていると判定された場合(ステップS406でYES)、本フローチャートはステップS406からステップS407に進む。
テレビ200の製造者名がID1に設定されている場合(ステップS406でYES)、設定されているID1がテレビ200の製造者名として正しいか否かを判定する必要がある。
そこで、ステップS407において、CPU101(比較手段)は、メモリ102にテレビ200の製造者名として設定されているID1とID2とが一致するか否かを比較する。CPU101によって、ID1とID2とが一致すると判定された場合(ステップS407でYES)、メモリ102には、ID1が既に正しいテレビ200の製造者名として設定されているので、CPU101はID2を破棄する。この場合、本フローチャートは終了する。CPU101によって、ID1とID2とが一致しないと判定された場合(ステップS407でNO)、ステップS407からステップS408に進む。
メモリ102に第1の識別情報が記録されていない場合(ステップS406でNO)、メモリ102には、ID1がテレビ200の製造者名として設定されていない。
ID1とID2とが一致しない場合(ステップS407でNO)、CPU101は、メモリ102に記録されているID1がテレビ200の製造者名として正しくないと判定する。
そこで、ステップS408において、CPU101は、第2の識別情報をメモリ102に記録するとともに、テレビ200の製造者名をID2として、メモリ102に設定する。この場合、本フローチャートは終了する。
なお、第1の製造者名取得処理及び第2の製造者名取得処理は、ビデオカメラ100とアンプ等のリピータとがHDMIケーブルによって接続され、かつ、アンプとテレビ200とがHDMIケーブルによって接続されている通信システムにおいても、適用できる。このような通信システムの場合、ビデオカメラ100がテレビ200からテレビ200のEDIDを取得する場合、アンプがテレビ200からテレビ200のEDIDを取得し、アンプが取得したテレビ200のEDIDをビデオカメラ100に送信する。アンプには、テレビ200のEDIDに含まれるID Manufacturer Nameをアンプの製造者名を示すID Manufacturer Nameに書き換える装置がある。ビデオカメラ100がアンプからアンプの製造者名を示すID Manufacturer Nameを取得したとしても、第1の製造者名取得処理及び第2の製造者名取得処理によって、ビデオカメラ100は、正しいテレビ200の製造者名を設定できる。
<製品名送信処理>
図5は、実施例1に係るビデオカメラ100で行われる製品名送信処理の一例を説明するためのフローチャートである。
実施例1では、製品名送信処理が、ビデオカメラ100がパワーラインを介して+5Vをテレビ200に供給しているときに行われる場合を説明する。また、実施例1では、CPU101が、メモリ102に格納されているコンピュータプログラムに従って製品名送信処理を制御する場合を説明する。
ステップS501において、CPU101は、メモリ102にテレビ200のEDIDが記録されているか否かを判定する。CPU101によって、メモリ102にテレビ200のEDIDが記録されていないと判定された場合(ステップS502でNO)、本フローチャートはステップS501からステップS503に進む。CPU101によって、メモリ102にテレビ200のEDIDが記録されていると判定された場合(ステップS501でYES)、本フローチャートはステップS501からステップS502に進む。
ステップS502において、CPU101は、テレビ200にTMDSライン303を介してビデオカメラ100の製品名を含むSPDInfoFrameをテレビ200に送信するようにデータ処理部103cを制御する(第3の制御)。CPU101は、デバイス情報取得部103bによって取得されたテレビ200のEDIDに応じて、SPDInfoFrameを生成する。また、SPDInfoFrameには、ASCIIコードで16文字以内の文字数で定義されたビデオカメラ100の製品名が含まれる。SPDInfoFrameには、ASCIIコードによって定義されたビデオカメラ100の製造者名及び製品カテゴリが含まれていてもよい。CPU101は、ビデオカメラ100の製品名を含むSPDInfoFrameをデータ処理部103cに出力し、SPDInfoFrameをテレビ200に送信するようにデータ処理部103cを制御する。データ処理部103cがSPDInfoFrameをテレビ200に送信した場合、本フローチャートはステップS502からステップS503に進む。以下、SPDInfoFrameによってテレビ200に送信されるビデオカメラ100の製品名を「第3の製品名」と呼ぶ。
ステップS503において、CPU101は<Polling Message>コマンドを生成し、<Polling Message>コマンドをテレビ200にCECライン304を介して送信するようにコマンド処理部103dを制御する。コマンド処理部103dが<Polling Message>コマンドをテレビ200にCECライン304を介して送信した場合、本フローチャートはステップS503からステップS504に進む。
ステップS504において、CPU101は、<Polling Message>コマンドに対するACK信号を、コマンド処理部103dが受信したか否かを判定する。CPU101によって、コマンド処理部103dがACK信号を受信しなかったと判定された場合(ステップS504でNO)、CPU101は、テレビ200がCEC規格に対応していないと判定する。この場合、ビデオカメラ100がテレビ200にCECコマンドを送信したとしても、テレビ200はCECコマンドに応じた動作を行わないので、CPU101は、ビデオカメラ100とテレビ200との通信を切断する。この場合、本フローチャートは終了する。また、CPU101によって、コマンド処理部103dがNACK信号を受信したと判定された場合も同様に、CPU101は、テレビ200がCEC規格に対応していないと判定する。そのため、CPU101は、ビデオカメラ100とテレビ200との通信を切断し、本フローチャートは終了する。CPU101によって、コマンド処理部103dがACK信号を受信したと判定された場合(ステップS504でYES)、本フローチャートはステップS504からステップS505に進む。
ステップS505において、CPU101は、コマンド処理部103dがテレビ200からCECライン304を介してCECコマンドを受信したか否かを判定する。CPU101によって、コマンド処理部103dがCECコマンドを受信しなかったと判定された場合(ステップS505でNO)、本フローチャートはステップS505からステップS503に戻る。CPU101によって、コマンド処理部103dがCECコマンドを受信したと判定された場合(ステップS505でYES)、本フローチャートはステップS505からステップS506に進む。
ステップS506において、CPU101は、コマンド処理部103dがテレビ200からCECライン304を介してビデオカメラ100に製品名を要求するためのCECコマンドを受信したか否かを判定する(第1の判定)。
なお、製品名を要求するためのCECコマンドの一例として、<Give OSD Name>コマンドが挙げられる。<Give OSD Name>コマンドとは、CEC規格で規定されているCECコマンドであって、テレビ200がビデオカメラ100の製品名を要求するためのコマンドである。テレビ200は、表示部204に選択画面を表示する場合、選択画面上に表示するためのソース装置の製品名をビデオカメラ100に要求するために<Give OSD Name>コマンドをビデオカメラ100に送信する。以下、<Give OSD Name>コマンドを「第1の製品名要求コマンド」と呼ぶ。
CPU101によって、コマンド処理部103dがCECライン304を介して第1の製品名要求コマンドを受信していないと判定された場合(ステップS506でNO)、本フローチャートはステップS506からステップS508に進む。CPU101によって、コマンド処理部103dがCECライン304を介して第1の製品名要求コマンドを受信したと判定された場合(ステップS506でYES)、本フローチャートはステップS506からステップS507に進む。
コマンド処理部103dが第1の製品名要求コマンドを受信した場合(ステップS506でYES)、第1の製品名要求コマンドに対して、ビデオカメラ100の製品名を通知するためのCECコマンドを送信する必要がある。そこで、ステップS507において、CPU101は、メモリ102に記録されているビデオカメラ100の製品名を含むCECコマンドをCECライン304を介してテレビ200に送信するようにコマンド処理部103dを制御する(第1の制御)。CPU101は、メモリ102からビデオカメラ100の製品名を読み出して、ビデオカメラ100の製品名をASCIIコードによって定義する。CPU101は、ASCIIコードによって定義されたビデオカメラ100の製品名をオペランドとして含むCECコマンドを生成する。
なお、ビデオカメラ100の製品名をオペランドとして含むCECコマンドとして、例えば、<Set OSD Name>コマンドがある。<Set OSD Name>コマンドとは、ビデオカメラ100の製品名を送信するCECコマンドである。<Set OSD Name>コマンドによってテレビ200に送信される製品名の文字数は、CEC規格によって、ASCIIコードで14文字以内と規定されている。CPU101は、ビデオカメラ100の製品名を14文字以内のASCIIコードによって定義し、ビデオカメラ100の製品名を<Set OSD Name>コマンドにオペランドとして付加する。CPU101は、ビデオカメラ100の製品名をオペランドとして含む<Set OSD Name>コマンドをコマンド処理部103dに出力する。その後、CPU101は、<Set OSD Name>コマンドをテレビ200にCECライン304を介して送信するようにコマンド処理部103dを制御する。コマンド処理部103dが<Set OSD Name>コマンドをCECライン304を介してテレビ200に送信した場合、本フローチャートはステップS507からステップS503に戻る。以下、<Set OSD Name>コマンドによってテレビ200に送信されるビデオカメラ100の製品名を「第1の製品名」と呼ぶ。
コマンド処理部103dが第1の製品名要求コマンドを受信していない場合(ステップS506でNO)、CPU101は、コマンド処理部103dが受信したCECコマンドがどのようなコマンドであるか判定する。
そこで、ステップS508において、CPU101は、コマンド処理部103dがテレビ200から<Vendor Command>を受信したか否かを判定する。<Vendor Command>コマンドとは、ビデオカメラ100とテレビ200の製造者名が同一である場合、ビデオカメラ100及びテレビ200の製造者によって規定されている独自のコマンドである。なお、CPU101は、コマンド処理部103dがテレビ200から<Vendor Command>を受信したか否かを<Vendor Command>に含まれるオペランドにより判定する。CPU101によって、コマンド処理部103dが<Vendor Command>を受信しなかったと判定された場合(ステップS508でNO)、本フローチャートはステップS508からステップS512に進む。CPU101によって、コマンド処理部103dが<Vendor Command>を受信したと判定された場合(ステップS508でYES)、本フローチャートはステップS508からステップS509に進む。
コマンド処理部103dが<Vendor Command>を受信した場合(ステップS508でYES)、受信した<Vendor Command>がテレビ200の製造者及びビデオカメラ100の製造者によって規定されていない可能性がある。コマンド処理部103dが受信した<Vendor Command>がテレビ200の製造者及びビデオカメラ100の製造者によって規定されていない場合、CPU101は、ビデオカメラ100に誤った動作を行わせてしまう可能性がある。
そこで、ステップS509において、CPU101はメモリ102に設定されているテレビ200の製造者名とビデオカメラ100の製造者名とが一致しているか否かを判定する(製造者名判定)。CPU101は、テレビ200の製造者名とビデオカメラ100の製造者名とが一致している場合、コマンド処理部103dが受信した<Vendor Command>がテレビ200の製造者及びビデオカメラ100の製造者によって規定されていると判定する。CPU101は、テレビ200の製造者名とビデオカメラ100の製造者名とが一致しない場合、コマンド処理部103dが受信した<Vendor Command>がテレビ200の製造者及びビデオカメラ100の製造者によって規定されていないと判定する。
CPU101によって、テレビ200の製造者名とビデオカメラ100の製造者名とが一致しないと判定された場合(ステップS509でNO)、本フローチャートはステップS509からステップS503に戻る。この場合、CPU101は、コマンド処理部103dが受信した<Vendor Command>がテレビ200の製造者及びビデオカメラ100の製造者によって規定されていないと判定する。
そのため、CPU101は、コマンド処理部103dが受信した<Vendor Command>を破棄して、コマンド処理部103dが受信した<Vendor Command>に応じてビデオカメラ100を制御しない。CPU101によって、テレビ200の製造者名とビデオカメラ100の製造者名とが一致したと判定された場合(ステップS509でYES)、本フローチャートはステップS509からステップS510に進む。この場合、CPU101は、コマンド処理部103dが受信した<Vendor Command>がテレビ200の製造者及びビデオカメラ100の製造者によって規定されていると判定する。
なお、ステップS509において、ビデオカメラ100の製造者名と比較されるテレビ200の製造者名は、第1の製造者名取得処理または、第2の製造者名取得処理によってメモリ102に設定されたテレビ200の製造者名である。
テレビ200の製造者名とビデオカメラ100の製造者名とが一致している場合(ステップS509でYES)、コマンド処理部103dが受信した<Vendor Command>がビデオカメラ100の製品名を要求するコマンドである場合がある。
そこで、ステップS510において、CPU101は、コマンド処理部103dがテレビ200からビデオカメラ100の製品名を要求するための<Vendor Command>を受信したか否かを判定する(第2の判定)。なお、CPU101は、コマンド処理部103dがテレビ200からビデオカメラ100の製品名を要求するための<Vendor Command>を受信したか否かを<Vendor Command>に含まれるオペランドに応じて判定する。以下、ビデオカメラ100の製品名を要求するための<Vendor Command>を「第2の製品名要求コマンド」と呼ぶ。
CPU101によって、コマンド処理部103dが第2の製品名要求コマンドを受信しなかったと判定された場合(ステップS510でNO)、本フローチャートはステップS510からステップS512に進む。CPU101によって、コマンド処理部103dが第2の製品名要求コマンドを受信したと判定された場合(ステップS510でYES)、本フローチャートはステップS510からステップS511に進む。
コマンド処理部103dが第2の製品名要求コマンドを受信した場合(ステップS510でYES)、ビデオカメラ100の製品名を送信するための<Vendor Command>を送信する必要がある。そこで、ステップS511において、CPU101は、コマンド処理部103dを制御し、メモリ102に記録されているビデオカメラ100の製品名を含む<Vendor Command>をCECライン304を介してテレビ200に送信する(第2の制御)。
CPU101は、メモリ102からビデオカメラ100の製品名を読み出して、ビデオカメラ100の製品名をASCIIコードによって定義する。CPU101は、ASCIIコードによって定義されたビデオカメラ100の製品名をオペランドとして含む<Vendor Command>コマンドを生成する。<Vendor Command>によってテレビ200に送信されるビデオカメラ100の製品名は、ASCIIコードによって定義される。なお、<Vendor Command>に含まれるビデオカメラ100の製品名の文字数は、SPDInfoFrameによってテレビ200に送信するビデオカメラ100の製品名の文字数よりも長いものとする。また、<Vendor Command>に含まれるビデオカメラ100の製品名の文字数は、<Set OSD Name>コマンドによってテレビ200に送信するビデオカメラ100の製品名の文字数よりも長いものとする。以下、<Vendor Command>によってテレビ200に送信されるビデオカメラ100の製品名を「第2の製品名」と呼ぶ。
なお、例えば、実施例1では、<Vendor Command>によってテレビ200に送信されるビデオカメラ100の製品名の文字数は、ASCIIコードで示されるビデオカメラ100の製品名より長い文字数であると規定されるものとする。例えば、ビデオカメラ100の製品名がASCIIコードにより20文字で示される場合、<Vendor Command>に含まれるビデオカメラ100の製品名の文字数は、ASCIIコードで20文字以上の文字数であると規定されるものとする。
そのため、ビデオカメラ100が17文字以上のASCIIコードの文字数で示される製品名を持つものであっても、ビデオカメラ100は、<Vendor Command>によって、テレビ200に正確なビデオカメラ100の製品名を送信する。コマンド処理部103dがビデオカメラ100の製品名を含む<Vendor Command>をCECライン304を介して送信した場合、本フローチャートはステップS511からステップS503に戻る。
ステップS512において、CPU101は、コマンド処理部103dが受信したCECコマンドに応じてビデオカメラ100を制御する。なお、この場合、コマンド処理部103dが受信したCECコマンドは、第1の製品名要求コマンドと、第2の製品名要求コマンドとを除いたCECコマンドである。この場合、本フローチャートはステップS512からステップS503に戻る。
このように、実施例1に係るビデオカメラ100では、テレビ200にSPDInfoFrameによってビデオカメラ100の製品名をテレビ200に送信する。これにより、テレビ200がCEC規格に対応していない場合、ビデオカメラ100はビデオカメラ100自身の製品名をテレビ200に送信することができる。また、テレビ200が<Give OSD Name>コマンドをビデオカメラ100に送信しない場合であっても、ビデオカメラ100はビデオカメラ100自身の製品名をテレビ200に送信することができる。
また、テレビ200から<Give OSD Name>コマンドを受信した場合、ビデオカメラ100はビデオカメラ100の製品名をSPDInfoFrame及び<Set OSD Name>コマンドによってテレビ200に送信する。
したがって、SPDInfoFrame及びCECコマンドのいずれか一つのみに対応しているテレビ200に対しても、ビデオカメラ100は、ビデオカメラ100の製品名を送信することができる。
また、テレビ200からビデオカメラ100の製品名を要求する<Vendor Command>を受信した場合、ビデオカメラ100はビデオカメラ100の製品名を送信する<Vendor Command>をテレビ200に送信する。このため、ビデオカメラ100の製品名が、SPDInfoFrameによってテレビ200に送信できる文字数を超えている場合、ビデオカメラ100は正確なビデオカメラ100の製品名をテレビ200に送信することができる。また、ビデオカメラ100の製品名が、<Set OSD Name>コマンドによってテレビ200に送信できる文字数を超えている場合、ビデオカメラ100は正確なビデオカメラ100の製品名をテレビ200に送信することができる。
なお、実施例1において、HDMIケーブル300は、High−Definition Multimedia Interface Specification Version1.3a規格に準拠した接続ケーブルとして説明を行った。しかし、HDMIケーブル300は、High−Definition Multimedia Interface Specification Version1.4a規格に準拠した接続ケーブルであっても良い。その場合、ビデオカメラ100は+5Vをパワーラインを介してテレビ200に送信するのではなく、+3.3Vをパワーラインを介してテレビ200に送信するものであっても良い。
また、接続ケーブル300はDiiVA(Digital Interactive for Video and Audio)に準拠したケーブルであっても良く、この場合、通信部103は、DiiVAの規格に準拠しているものとする。
[実施例2]
実施例2では、実施例1と共通する部分についてはその説明を省略し、実施例1と異なる部分を説明する。
<製品名送信処理>
図6は、実施例2に係るビデオカメラ100で行われる製品名送信処理の一例を説明するためのフローチャートである。
実施例2では、製品名送信処理が、ビデオカメラ100がパワーラインを介して+5Vをテレビ200に供給しているときに行われる場合を説明する。また、実施例2では、CPU101が、メモリ102に格納されているコンピュータプログラムに従って製品名送信処理を制御する場合を説明する。
ステップS601において、CPU101は<Polling Message>コマンドを生成し、<Polling Message>コマンドをテレビ200にCECライン304を介して送信するようにコマンド処理部103dを制御する。コマンド処理部103dが<Polling Message>コマンドをテレビ200にCECライン304を介して送信した場合、本フローチャートはステップS601からステップS602に進む。
ステップS602において、CPU101は、コマンド処理部103dが<Polling Message>コマンドに対するACK信号を受信したか否かを判定する。CPU101によって、コマンド処理部103dがACK信号を受信したと判定された場合(ステップS602でYES)、本フローチャートはステップS602からステップS606に進む。CPU101によって、コマンド処理部103dがACK信号を受信しなかったと判定された場合(ステップS602でNO)、CPU101は、テレビ200がCEC規格に対応していないと判定する。CPU101によって、コマンド処理部103dがACK信号を受信しなかったと判定された場合(ステップS602でNO)、本フローチャートはステップS602からステップS603に進む。また、CPU101によって、コマンド処理部103dがNACK信号を受信したと判定された場合も同様に、本フローチャートはステップS602からステップS603に進む。
ステップS603において、CPU101は、メモリ102にテレビ200のEDIDが記録されているか否かを判定する。CPU101によって、メモリ102にテレビ200のEDIDが記録されていないと判定された場合(ステップS603でNO)、本フローチャートはステップS603からステップS605に進む。CPU101によって、メモリ102にテレビ200のEDIDが記録されていると判定された場合(ステップS603でYES)、本フローチャートはステップS603からステップS604に進む。
ステップS604において、CPU101は、テレビ200にビデオカメラ100の製品名を含むSPDInfoFrameを生成し、CPU101が生成したSPDInfoFrameをテレビ200に送信するようにデータ処理部103cを制御する。データ処理部103cがSPDInfoFrameを送信した場合、本フローチャートはステップS604からステップS605に進む。
ステップS605において、CPU101は、タイマー101aによって経過時間Tが計測されている場合、経過時間Tの計測を停止させるようにタイマー101aを制御する。また、CPU101は、メモリ102に記録されている経過時間Tをリセットする。メモリ102に記録されている経過時間Tがリセットされた場合、CPU101は、ビデオカメラ100とテレビ200との通信を切断し、本フローチャートは終了する。なお、経過時間Tについては後述する。
ステップS606において、CPU101は、コマンド処理部103dがテレビ200からCECライン304を介してCECコマンドを受信したか否かを判定する。CPU101によって、コマンド処理部103dがCECコマンドを受信しなかったと判定された場合(ステップS606でNO)、本フローチャートはステップS606からステップS601に戻る。CPU101によって、コマンド処理部103dがCECコマンドを受信したと判定された場合(ステップS606でYES)、本フローチャートはステップS606からステップS607に進む。
ステップS607において、CPU101は、メモリ102に設定されているテレビ200の製造者名とビデオカメラ100の製造者名とが一致しているか否かを判定する。CPU101によって、テレビ200の製造者名とビデオカメラ100の製造者名とが一致していないと判定された場合(ステップS607でNO)、本フローチャートはステップS607からステップS610に進む。CPU101によって、テレビ200の製造者名とビデオカメラ100の製造者名とが一致していると判定された場合(ステップS607でYES)、本フローチャートはステップS607からステップS608に進む。なお、ステップS607において、ビデオカメラ100の製造者名と比較されるテレビ200の製造者名は、第1の製造者名取得処理または、第2の製造者名取得処理によってメモリ102に設定されたテレビ200の製造者名である。
ステップS608において、CPU101は、CECライン304を介してコマンド処理部103dがテレビ200から第2の製品名要求コマンドを受信したか否かを判定する。CPU101によって、コマンド処理部103dが第2の製品名要求コマンドを受信していないと判定された場合(ステップS608でNO)、本フローチャートはステップS608からステップS612に進む。CPU101によって、コマンド処理部103dが第2の製品名要求コマンドを受信したと判定された場合(ステップS608でYES)、本フローチャートはステップS608からステップS609に進む。
ステップS609において、CPU101は、ビデオカメラ100の製品名を含む<Vendor Command>を生成し、CPU101が生成した<Vendor Command>をテレビ200に送信するようにコマンド処理部103dを制御する。コマンド処理部103dがビデオカメラ100の製品名を含む<Vendor Command>をCECライン304を介して送信した場合、本フローチャートはステップS609からステップS617に進む。
ステップS610において、CPU101は、コマンド処理部103dがテレビ200からCECライン304を介して第1の製品名要求コマンドを受信したか否かを判定する。CPU101によって、コマンド処理部103dがCECライン304を介して第1の製品名要求コマンドを受信していないと判定された場合(ステップS610でNO)、本フローチャートはステップS610からステップS612に進む。CPU101によって、コマンド処理部103dがCECライン304を介して第1の製品名要求コマンドを受信したと判定された場合(ステップS610でYES)、本フローチャートはステップS610からステップS611に進む。
ステップS611において、CPU101は、ビデオカメラ100の製品名を含む<Set OSD Name>コマンドを生成し、生成した<Set OSD Name>コマンドをテレビ200の送信するようにコマンド処理部103dを制御する。コマンド処理部103dが<Set OSD Name>コマンドをCECライン304を介してテレビ200に送信した場合、本フローチャートはステップS611からステップS617に進む。
ステップS612において、CPU101は、経過時間Tを計測するようにタイマー101aを制御する。なお、経過時間Tは、第1の製品名要求コマンド、または第2の製品名要求コマンドをテレビ200から受信していないと判定されてからビデオカメラ100の製品名をテレビ200に送信するまでに経過した時間である。タイマー101aが経過時間Tの計測を開始した場合、本フローチャートはステップS612からステップS613に進む。
ステップS613において、CPU101は、コマンド処理部103dがテレビ200から受信したCECコマンドに応じてビデオカメラ100を制御する。この場合、本フローチャートはステップS613からステップS614に進む。
なお、コマンド処理部103dが第2の製品名要求コマンドを受信していない場合(ステップS608でNO)、コマンド処理部103dが受信したCECコマンドが第1の製品名要求コマンドである場合がある。コマンド処理部103dが第1の製品名要求コマンドを受信した場合、CPU101は、第1の製品名要求コマンドに応じてビデオカメラ100を制御しないようにしたり、第1の製品名要求コマンドを消去してもよい。これは、第1の製品名より第2の製品名の方が正確なビデオカメラ100の製品名を示しているためであり、実施例2では、第2の製品名をテレビ200に送信できる場合は、第1の製品名をテレビ200に送信しないようにする。
ステップS614において、CPU101は、タイマー101aが計測している経過時間Tとメモリ102に記録されている所定の時間Mとを比較する。CPU101によって、経過時間Tが所定の時間Mを以下であると判定された場合(ステップS614でYES)、本フローチャートはステップS614からステップS601に戻る。CPU101によって、経過時間Tが所定の時間Mを超えていると判定された場合(ステップS614でNO)、本フローチャートはステップS614からステップS615に進む。
ステップS615において、CPU101は、メモリ102にテレビ200のEDIDが記録されているか否かを判定する。CPU101によって、メモリ102にテレビ200のEDIDが記録されていないと判定された場合(ステップS615でNO)、本フローチャートはステップS615からステップS601に戻る。CPU101によって、メモリ102にテレビ200のEDIDが記録されていると判定された場合(ステップS615でYES)、本フローチャートはステップS615からステップS616に進む。
そこで、ステップS616において、CPU101は、テレビ200にビデオカメラ100の製品名を含むSPDInfoFrameをテレビ200に送信するようにデータ処理部103cを制御する。これは、ビデオカメラ100が、第1の製品名要求コマンド、または第2の製品名要求コマンドをテレビ200から受信するまで、テレビ200にビデオカメラ100の製品名を送信しないからである。データ処理部103cがSPDInfoFrameを送信した場合、本フローチャートはステップS616からステップS617に進む。
ステップS617において、CPU101は、タイマー101aによって経過時間Tが計測されている場合、経過時間Tの計測を停止させるようにタイマー101aを制御する。また、CPU101は、メモリ102に記録されている経過時間Tをリセットする。メモリ102に記録されている経過時間Tがリセットされた場合、本フローチャートはステップS617からステップS601に戻る。
製品名を送信する<Vendor Command>が送信された場合(ステップS609)または、<Set OSD Name>コマンドが送信された場合(ステップS611)、ビデオカメラ100の製品名はテレビ200に送信された。そのため、ステップS617において、CPU101は、経過時間Tの計測を停止させるようにタイマー101aを制御する。
また、データ処理部103cがSPDInfoFrameを送信した場合(ステップS616)、テレビ200にビデオカメラ100の製品名が送信されたので、CPU101は、経過時間Tの計測を停止させるようにタイマー101aを制御する。
このように、実施例2に係るビデオカメラ100では、ビデオカメラ100の製造者名とテレビ200の製造者名とが一致しない場合、<Give OSD Name>コマンドを受信するまで、ビデオカメラ100の製品名をテレビ200に送信しないようにした。
そのため、<Give OSD Name>コマンドを受信した場合、ビデオカメラ100は、SPDInfoFrameによってビデオカメラ100の製品名をテレビ200に送信しない。また、所定の時間が経過した場合であっても、<Give OSD Name>コマンドを受信しないとき、ビデオカメラ100は、SPDInfoFrameによるビデオカメラ100の製品名の送信を行うようにした。
これによって、ビデオカメラ100は、テレビ200に重複してビデオカメラ100の製品名の送信を行わないようにすることができる。
また、ビデオカメラ100は、テレビ200が<Give OSD Name>コマンドをビデオカメラ100に送信しない装置であっても、ビデオカメラ100の製品名をSPDInfoFrameによって、テレビ200に送信できる。
また、実施例2に係るビデオカメラ100は、ビデオカメラ100の製造者名とテレビ200の製造者名が一致する場合、製品名を要求する<Vendor Command>を受信するまで、ビデオカメラ100の製品名をテレビ200に送信しないようにした。
そのため、製品名を要求する<Vendor Command>を受信した場合、ビデオカメラ100は、SPDInfoFrameによってビデオカメラ100の製品名をテレビ200に送信しない。また、所定の時間が経過した場合であっても、製品名を要求する<Vendor Command>を受信しない場合、SPDInfoFrameによるビデオカメラ100の製品名の送信を行うようにした。また、第1の製品名要求コマンドをテレビ200から受信した場合であっても、ビデオカメラ100は、ビデオカメラ100の製品名の送信を行わない。
これによって、ビデオカメラ100は、テレビ200に重複してビデオカメラ100の製品名の送信を行わないようにすることができる。
また、ビデオカメラ100は、テレビ200が製品名を要求する<Vendor Command>をビデオカメラ100に送信しない装置であっても、ビデオカメラ100の製品名をSPDInfoFrameによって、テレビ200に送信できる。
実施例2において、第1の製造者名取得処理及び第2の製造者名取得処理の処理は、実施例1と同様の処理を行うので、実施例1と共通する処理については実施例1と同様の利点を得ることができる。
[他の実施例]
本発明に係る通信装置は、実施例1及び2で説明した通信装置100に限定されるものではない。本発明に係る通信装置は、例えば、複数の装置から構成されるシステムにより実現することも可能である。
また、実施例1及び2において説明した構成及び機能は、コンピュータで実行可能なコンピュータプログラムによって実現することもできる。この場合、当該コンピュータプログラムは、コンピュータ読取可能な記録媒体から当該コンピュータによって読み出され、当該コンピュータで実行される。またこの場合、当該コンピュータ読取可能な記録媒体には、ハードディスク装置、光ディスク、CD−ROM、CD−R、メモリカード、ROM等を用いることができる。なお、当該コンピュータプログラムは、通信インターフェースを介して外部装置から当該コンピュータに提供され、当該コンピュータで実行されるようにしてもよい。