以下、本発明の実施形態を図面を参照しながら説明する。なお、以下に示す実施形態はあくまでも一例であって、必ずしも以下に示す実施形態に限定されるものではない。
[実施形態1]
図1は、本発明の実施形態1に係る通信システムの一例を示す図である。図2は、本発明の実施形態1に係る通信システムの概略構成の一例を示すブロック図である。
実施形態1に係る通信システムは、図1及び図2に示すように、通信装置100、接続ケーブル300、外部装置200及びリモコン(Remote Control)209を有する。通信装置100と外部装置200は、接続ケーブル300を介して接続されている。外部装置200とリモコン209は、無線により接続されている。
通信装置100は、接続ケーブル300を介して映像(video)データ、音声(audio)データ及び補助データを外部装置200に送信することができる映像ソースである。外部装置200は、通信装置100から送信された映像データを表示器に表示し、通信装置100から送信された音声データをスピーカから出力する外部表示装置である。通信装置100及び外部装置200は、接続ケーブル300を介して様々な制御コマンドを双方向に送信することができる。
リモコン209は、通信装置100及び外部装置200を操作するためのユーザインタフェースである。リモコン209は、外部装置200と無線により通信することはできるが、通信装置100と無線により通信することはできないように構成されている。外部装置200は、リモコン209から送信されたリモコン信号を受信し、受信したリモコン信号を解析する。受信したリモコン信号が通信装置100を制御するためのリモコン信号である場合、外部装置200は、受信したリモコン信号に従って通信装置100を制御する。受信したリモコン信号が通信装置100を制御するためのリモコン信号である場合、外部装置200は、受信したリモコン信号に対応する制御コマンドを生成し、生成した制御コマンドを接続ケーブル300を介して通信装置100に送信する。これにより、ユーザは、リモコン209を用いて、外部装置200を直接的に遠隔制御することができる。また、ユーザは、リモコン209を用いて、通信装置100を間接的に遠隔制御することができる。
実施形態1では、通信装置100の一例としてビデオカメラを用い、外部装置200の一例としてテレビジョン受像機(以下、「テレビ」という)を用いる。また、実施形態1では、接続ケーブル300の一例としてHDMI(High‐Definition Multimedia Interface)(登録商標)規格に準拠した接続ケーブルを用いる。以下、HDMI規格に準拠した接続ケーブルを「HDMIケーブル」という。
次に、HDMIケーブル300について説明する。
HDMIケーブル300は、TMDS(Transition Minimized Differential Singnaling)(登録商標)ライン301と、CEC(Consumer Electronics Control)ライン302を含む。また、HDMIケーブル300は、HPD(Hot Plug Detect)ライン303、DDC(Display Data Channel)ライン304、電源ライン等を有する。
TMDSライン301(第1の伝送ライン)は、ビデオカメラ100からテレビ200に映像データ、音声データ及び補助データを伝送する伝送ラインである。TMDSライン301は、TMDSチャンネル0、TMDSチャンネル1、TMDSチャンネル2及びTMDSクロックチャンネルを含む。CECライン302(第2の伝送ライン)は、ビデオカメラ100とテレビ200との間で様々な制御コマンドを双方向に伝送する伝送ラインである。HPDライン303は、テレビ200からビデオカメラ100にHPD信号を伝送する伝送ラインである。DDCライン304は、テレビ200のEDID(Extended Display Identification Data)をテレビ200からビデオカメラ100に伝送する伝送ラインである。EDIDは、テレビ200の表示能力等を示す能力情報を含む。電源ラインは、テレビ200からビデオカメラ100に電力を供給するラインである。
ビデオカメラ100は、HDMI規格で規定されたHDMIソース(HDMI Source)として動作し、テレビ200は、HDMI規格で規定されたHDMIシンク(HDMI Sink)として動作する。また、ビデオカメラ100及びテレビ200は、CECに準拠したHDMI機器でもある。CECは、HDMI規格で規定されている制御プロトコルである。以下、CECライン302を介してビデオカメラ100とテレビ200との間で送信される制御コマンドを「CECコマンド」という。テレビ200は、ビデオカメラ100を制御するためのCECコマンドをCECライン302を介してビデオカメラ100に送信することにより、ビデオカメラ100を制御することができる。ビデオカメラ100も、テレビ200を制御するためのCECコマンドをCECライン302を介してテレビ200に送信することにより、テレビ200を制御することができる。ビデオカメラ100を制御するためのCECコマンドには、ビデオカメラ100の電源に関するコマンドとして、電源ONコマンド、電源OFFコマンド等がある。また、ビデオカメラ100を制御するコマンドとして、再生コマンド、停止コマンド、一時停止コマンド、早送りコマンド、巻き戻しコマンド、記録コマンド、記録一時停止コマンド、メニューONコマンド、メニューOFFコマンド等がある。
なお、接続ケーブル300は、HDMIケーブルに限るものではない。映像データ、音声データ及び補助データを伝送するラインと、通信装置100と外部装置200との間で様々な制御コマンドを双方向で伝送するラインとを別々に有する接続ケーブルであれば、HDMIケーブル以外の接続ケーブルであってもよい。
次に、ビデオカメラ100の構成の一例を説明する。
ビデオカメラ100は、図2に示すように、CPU101、RAM103、記録部104、通信部105、データ処理部110、コマンド処理部111、表示部112、操作部113、撮像部115及びROM116を有する。
ビデオカメラ100は、撮影モード、再生モード等の動作モードを有する。ビデオカメラ100の動作モードが撮影モードである場合、ビデオカメラ100は、被写体の撮影が可能になり、撮影された映像(動画、静止画のいずれでもよい)を記録媒体に記録することができる。ビデオカメラ100の動作モードが再生モードである場合、ユーザによって選択された映像(動画、静止画のいずれでもよい)を記録媒体から再生することができる。
CPU(Central Processing Unit)101は、ROM116に記憶されているコンピュータプログラムに従って、ビデオカメラ100の動作を制御する。また、CPU101は、一定値Nをカウントするためのタイマー102を有する。一定値Nは、例えば、3秒〜10秒に相当する値とする。なお、一定値Nは、ユーザが自由に変更できる値にしてもよい。
RAM103は、CPU101のワークエリアとして機能するメモリであり、CPU101で使用される様々な値、データ及び情報を記憶するメモリでもある。CPU101は、テレビ200に関する情報をHDMIケーブル300を介してテレビ200から取得し、取得した情報をRAM103に記憶する。RAM103に記憶される情報には、テレビ200の固有情報であるGUID、テレビ200のEDID等がある。なお、CPU101のワークエリアは、RAM103に限られるものではなく、ハードディスク装置等の外部記憶装置であってもよい。
ビデオカメラ100の動作モードが撮影モードである場合、撮像部115は、被写体を撮影し、当該被写体の光学像から映像データを生成する。撮像部115によって生成された映像データは、記録部104、表示部112及びデータ処理部110に供給される。不図示のマイクロフォン部が生成した音声データも、記録部104及びデータ処理部110に供給される。
ビデオカメラ100の動作モードが撮影モードである場合、記録部104は、撮像部115が生成した映像データと、不図示のマイクロフォン部が生成した音声データとを記録媒体に記録することができる。
また、ビデオカメラ100の動作モードが再生モードである場合、記録部104は、ユーザによって選択された映像データ及び音声データを記録媒体から再生することができる。記録媒体から再生された映像データは、表示部112及びデータ処理部110に供給される。一方、記録媒体から再生された音声データは、データ処理部110及び不図示のスピーカ部に供給される。
なお、記録部104で用いられる記録媒体は、ビデオカメラ100に内蔵されたものであっても、ビデオカメラ100から取り外し可能なものであってもよい。
通信部105は、HDMIケーブル300を接続するためのHDMI端子を有する。ビデオカメラ100が撮影モードである場合、通信部105は、撮像部115が生成した映像データと、不図示のマイクロフォン部が生成した音声データと、CPU101で生成された補助データとを、TMDSライン301を介してテレビ200に送信する。ビデオカメラ100の動作モードが再生モードである場合、通信部105は、記録部104が記録媒体から再生した映像データ及び音声データと、CPU101で生成された補助データとを、TMDSライン301を介してテレビ200に送信する。
また、通信部105は、接続検知部106、TMDSドライバ107a、CECドライバ107b、エラー検知部108及びミュート部109を有する。
接続検知部106は、テレビ200からビデオカメラ100に送信されたHPD信号を用いて、ビデオカメラ100とテレビ200との間の接続(以下、HDMI接続)を検出する。接続検知部106は、HPD信号をHPDライン303を介してビデオカメラ100から受信する。HPD信号がハイ(High)である場合、接続検知部106は、ビデオカメラ100とテレビ200との間のHDMI接続を検出する。HPD信号がロー(Low)である場合、接続検知部106は、ビデオカメラ100とテレビ200との間のHDMI接続の切り離しを検出する。HPD信号を検出できない場合にも、接続検知部106は、ビデオカメラ100とテレビ200との間のHDMI接続の切り離しを検出する。接続検知部106での検出結果は、CPU101に通知されるので、CPU101は、ビデオカメラ100とテレビ200との間のHDMI接続が切り離されたか否かを判定することができる。
TMDSドライバ107aは、TMDSライン301を制御するコントローラである。TMDSドライバ107aは、ビデオカメラ100とテレビ200とがHDMIケーブル300で接続されていないときは、低消費電力状態である。CPU101からTMDSイネーブル信号を受信した場合、TMDSドライバ107aは、低消費電力状態から通常状態に変化する。この場合、TMDSドライバ107aは、TMDSライン301を有効(イネーブル)にする。TMDSライン301が有効にされた場合、通信部105は、映像データ、音声データ及び補助データをTMDSライン301を介してテレビ200に送信できるようになる。
CPU101からTMDSディセーブル信号を受信した場合、TMDSドライバ107aは、通常状態から低消費電力状態に変化する。この場合、TMDSドライバ107aは、TMDSライン301を無効(ディセーブル)にする。TMDSライン301が無効にされた場合、通信部105は、映像データ、音声データ及び補助データをTMDSライン301を介してテレビ200に送信することができなくなるが、通信部105の消費電力は削減される。
CECドライバ107bは、CECライン302を制御するコントローラである。CECドライバ107bは、ビデオカメラ100とテレビ200とがHDMIケーブル300で接続されていないときは、低消費電力状態である。CPU101からCECイネーブル信号を受信した場合、CECドライバ107bは、低消費電力状態から通常状態に変化する。この場合、CECドライバ107bは、CECライン302を有効(イネーブル)にする。CECライン302が有効にされた場合、通信部105は、ビデオカメラ100を制御するためのCECコマンドをテレビ200から受信できるようになり、テレビ200を制御するためのCECコマンドをテレビ200に送信できるようになる。
CPU101からCECディセーブル信号を受信した場合、CECドライバ107bは、通常状態から低消費電力状態に変化する。この場合、CECドライバ107bは、CECライン302を無効(ディセーブル)にする。CECライン302が無効にされた場合、通信部105は、ビデオカメラ100を制御するためのCECコマンドをテレビ200から受信することも、テレビ200を制御するためのCECコマンドをテレビ200に送信することもできなくなる。
エラー検知部108は、TMDSライン301及びCECライン302における通信エラーを検出し、検出結果をCPU101に通知する。
ミュート部109は、テレビ200をミュート状態にするためのデータ(以下、ミュート指示)を生成し、生成したミュート指示をTMDSライン301を介してテレビ200に送信するミュート処理を行う。ミュート指示は、TMDSライン301を介して伝送される補助データの一つである。ミュート処理の実行が開始された場合、CPU101は、ミュート処理の実行が解除されるまでの間、ミュート指示をテレビ200に送信し続けるようにミュート部109を制御する。この場合、CPU101は、ミュート処理の実行が解除されるまでの間、ROM116に記憶されているミュート映像及び無音データをテレビ200に送信し続けるようにデータ処理部110及び通信部105を制御する。なお、ROM116に記憶されているミュート映像及び無音データは、TMDSライン301を介してテレビ200に伝送される。
また、通信部105は、テレビ200からのCECコマンドをCECライン302を介して受信することができる。テレビ200からのCECコマンドを受信した場合、通信部105は、受信したCECコマンドをコマンド処理部111を介してCPU101に供給する。
また、通信部105は、テレビ200を制御するためのCECコマンドをCECライン302を介してテレビ200に送信することもできる。テレビ200を制御するためのCECコマンドは、CPU101で生成され、コマンド処理部111を介して通信部105に供給される。
ビデオカメラ100の動作モードが撮影モードである場合、データ処理部110は、撮像部115が生成した映像データと、不図示のマイクロフォン部が生成した音声データと、CPU101から供給された補助データとを通信部105に供給する。ビデオカメラ100の動作モードが再生モードである場合、データ処理部110は、記録部104が記録媒体から再生した映像データ及び音声データと、CPU101から供給された補助データとを通信部105に供給する。
表示部112は、液晶ディスプレイ等により構成される。ビデオカメラ100の動作モードが撮影モードである場合、表示部112は、撮像部115が生成した映像データを表示する。ビデオカメラ100の動作モードが再生モードである場合、表示部112は、記録部104が記録媒体から再生した映像データを表示する。
また、表示部112は、ミュート状態である場合は、ROM116に記憶されているミュート映像を表示する。実施形態1において、ミュート映像とは、ミュート中であることを示す映像データである。ミュート映像は、例えば、ブラックバック映像(背景色が黒の映像)又はブルーバック映像(背景色が青の映像)から構成される。ミュート映像には、ミュート処理中であることを示すアイコンや文字情報が含まれていてもよい。なお、実施形態1では、表示部112がミュート状態である場合は、ROM116に記憶されているミュート映像を表示部112に表示させるようにしたがこれに限るものではない。表示部112がミュート状態である場合は、表示部112に何も表示させないようにしてもよい。
操作部113は、ビデオカメラ100を操作するためのユーザインタフェースであり、ビデオカメラ100を操作するための複数のボタンを有する。ユーザからの指示は、操作部113を介してCPU101に入力される。操作部113内の各ボタンは、スイッチ、タッチパネル等により構成される。
操作部113は、電源ボタン、スタート/ストップボタン、モード変更ボタン114、メニューボタン、+ボタン、−ボタン、SETボタン等を有する。なお、+ボタン及び−ボタンは、十字ボタンに置き換えてもよい。
電源ボタンは、ビデオカメラ100を電源オン(ON)状態又は電源オフ(OFF)状態に変更することをCPU101に指示するボタンである。電源オン状態とは、不図示の電源(バッテリ、AC電源等)からビデオカメラ100の全部に必要な電力を供給することができる状態である。電源オフ状態とは、不図示の電源(バッテリ、AC電源等)からビデオカメラ100の一部又は全部への電力の供給を停止した状態である。
スタート/ストップボタンは、撮像部115によって生成された映像データ等の記録媒体への記録の開始又は一時停止をCPU101に指示するボタンである。モード変更ボタン114は、ビデオカメラ100の動作モードを撮影モード、再生モード等のいずれかに変更することをCPU101に指示するボタンである。
メニューボタンは、ビデオカメラ100のメニュー画面の表示又は非表示をCPU101に指示するボタンである。ビデオカメラ100のメニュー画面は、ビデオカメラ100を制御するためのメニュー画面、ビデオカメラ100の設定を変更するためのメニュー画面を含む。これらのメニュー画面は、ROM116に記憶されている。
メニュー画面の表示を行う場合、CPU101は、表示すべきメニュー画面をROM116から読み出し、読み出したメニュー画面を表示部112及びデータ処理部110に供給する。このとき、CPU101は、カーソル等をメニュー画面に重畳する。表示部112及びデータ処理部110は、CPU101から供給されたメニュー画面を、撮像部115又は記録部104から供給された映像データに重畳する。これにより、表示部112とテレビ200には、同じメニュー画面が表示されることになる。
メニュー画面の非表示を行う場合、CPU101は、メニュー画面の表示部112及びデータ処理部110への供給を停止する。
+ボタン及び−ボタンは、メニュー画面上のカーソルを移動させるボタンである。SETボタンは、カーソルが選択している項目の実行をCPU101に指示するボタンである。メニュー画面間の移動も、+ボタン、−ボタン及びSETボタンを用いて行うことができる。
また、操作部113は、再生ボタン、停止ボタン、一時停止ボタン、早送りボタン、巻き戻しボタン等を有する。これらのボタンは、記録媒体に記録された映像データの再生(play)、停止(stop)、一時停止(pause)、早送り(fast forward)及び巻き戻し(rewind)の実行をCPU101に指示するボタンである。
ROM116には、上述のように、ミュート映像、メニュー画面等が記憶されている。ビデオカメラ100の状態をユーザに通知するための複数のアイコンも、ROM116に記憶されている。また、ROM116には、ビデオカメラ100の動作を制御するためのコンピュータプログラムが記憶されている。
なお、通信装置100は、ビデオカメラに限るものではない。例えば、通信装置100は、ビデオカメラ、スチルカメラ、カメラ付き携帯電話等の撮像装置であってもよい。
次に、テレビ200の構成の一例を説明する。
テレビ200は、図2に示すように、CPU201、チューナ部202、通信部203、コマンド処理部204、表示部205、操作部206、リモコン受信部207及びROM208を有する。
CPU(Central Processing Unit)201は、ROM208に記憶されているコンピュータプログラムに従って、テレビ200の動作を制御する。
チューナ部202は、ユーザの選択に従って、アナログテレビジョン放送、デジタルテレビジョン放送又はケーブルテレビジョン放送を受信する。チューナ部202が受信するテレビジョン放送の種類は、リモコン209により選択することができる。チューナ部202が受信するテレビジョンチャンネルも、リモコン209により選択することができる。アナログテレビジョン放送、デジタルテレビジョン放送又はケーブルテレビジョン放送に含まれる映像データは、表示部205に表示される。また、アナログテレビジョン放送、デジタルテレビジョン放送又はケーブルテレビジョン放送に含まれる音声データは、不図示のスピーカ部から出力される。
通信部203は、HDMIケーブル300を接続するためのHDMI端子を有する。通信部203は、ビデオカメラ100から送信された映像データ、音声データ及び補助データをTMDSライン301を介して受信することができる。ビデオカメラ100から送信された映像データは、表示部205に表示される。ビデオカメラ100から送信された音声データは、不図示のスピーカ部から出力される。また、ビデオカメラ100から送信された補助データは、CPU201に供給される。
また、通信部203は、ビデオカメラ100からのCECコマンドをCECライン302を介して受信することができる。ビデオカメラ100からのCECコマンドを受信した場合、通信部203は、受信したCECコマンドをコマンド処理部204を介してCPU201に供給する。
また、通信部203は、ビデオカメラ100を制御するためのCECコマンドをCECライン302を介してビデオカメラ100に送信することもできる。ビデオカメラ100を制御するためのCECコマンドは、CPU201で生成され、コマンド処理部204を介して通信部203に供給される。
ビデオカメラ100からのCECコマンドは、通信部203がCECライン302を介して受信する。ビデオカメラ100からのCECコマンドは、コマンド処理部204を介して通信部203からCPU201に供給される。
ビデオカメラ100を制御するためのCECコマンドは、CPU201で生成され、コマンド処理部204を介して通信部203に供給される。ビデオカメラ100を制御するためのCECコマンドは、コマンド処理部204から通信部203に供給され、CECライン302を介してビデオカメラ100に伝送される。
表示部205は、液晶ディスプレイ等の表示器により構成される。表示部205は、チューナ部202及び通信部203の少なくとも一つから供給された映像データを表示することができる。表示部205は、ROM208に記憶されているミュート映像を表示することもできる。
操作部206は、テレビ200を操作するためのユーザインターフェースである。また、操作部206は、リモコン209と同様に、テレビ200を操作するための複数のボタンを有する。操作部206内の各ボタンは、スイッチ、タッチパネル等により構成される。
リモコン受信部207は、リモコン209から送信されたリモコン信号を受信した場合、受信したリモコン信号をCPU201に供給する。これにより、ユーザからの指示は、リモコン209及びリモコン受信部207を介してCPU201に入力されることになる。CPU201は、リモコン受信部207からのリモコン信号に対応するCECコマンドを生成し、生成したCECコマンドをコマンド処理部204を介して通信部203に供給する。通信部203に供給されたCECコマンドは、CECライン302を介してビデオカメラ100に伝送される。これにより、ユーザは、リモコン209を用いてビデオカメラ100を遠隔制御することができる。
ROM208には、上述のように、ミュート映像、メニュー画面等が記憶されている。テレビ200の状態をユーザに通知するための複数のアイコン、テレビ200のEDID等も、ROM208に記憶されている。また、ROM208には、テレビ200の動作を制御するためのコンピュータプログラムが記憶されている。
リモコン209は、ビデオカメラ100及びテレビ200を操作するためのユーザインタフェースであり、ビデオカメラ100を操作するための複数のボタンと、テレビ200を操作するための複数のボタンとを有する。リモコン209内の各ボタンは、スイッチ、タッチパネル等により構成される。
リモコン209は、第1の電源ボタン、テレビジョン放送選択ボタン、チャンネルボタン、外部入力ボタン、メニューボタン、+ボタン、−ボタン、SETボタン等を有する。これらのボタンは、テレビ200を操作するためのボタンである。
第1の電源ボタンは、テレビ200を電源オン(ON)状態又は電源オフ(OFF)状態に変更することをCPU201に指示するボタンである。電源オン状態とは、不図示の電源からテレビ200の全部に必要な電力を供給することができる状態である。電源オフ状態とは、不図示の電源からテレビ200の一部又は全部への電力の供給を停止した状態である。
テレビジョン放送選択ボタンは、アナログテレビジョン放送、デジタルテレビジョン放送及びケーブルテレビジョン放送のいずれかを選択し、選択したテレビジョン放送をチューナ部202に受信させることをCPU201に指示するボタンである。チャンネルボタンは、チューナ部202が受信するテレビジョンチャンネルを選択するためのボタンである。
外部入力ボタンは、チューナ部202によって受信された映像データ、ビデオカメラ100から送信された映像データのいずれかを選択し、選択した映像データを表示部205に表示させるためのボタンである。
メニューボタンは、テレビ200のメニュー画面の表示又は非表示をCPU201に指示するボタンである。テレビ200のメニュー画面は、テレビ200を制御するためのメニュー画面、テレビ200の設定を変更するためのメニュー画面を含む。これらのメニュー画面は、ROM208に記憶されている。
メニュー画面の表示を行う場合、CPU201は、表示すべきメニュー画面をROM208から読み出し、読み出したメニュー画面を表示部205に供給する。このとき、CPU201は、カーソル等をメニュー画面に重畳する。表示部205は、CPU201から供給されたメニュー画面を、チューナ部202又は通信部203から供給された映像データに重畳する。これにより、表示部205に、テレビ200のメニュー画面が表示されることになる。
メニュー画面の非表示を行う場合、CPU201は、メニュー画面の表示部205への供給を停止する。
+ボタン及び−ボタンは、メニュー画面上のカーソルを移動させるボタンである。SETボタンは、カーソルが選択している項目の実行をCPU201に指示するボタンである。メニュー画面間の移動も、+ボタン、−ボタン及びSETボタンを用いて行うことができる。
なお、ビデオカメラ100のメニュー画面がテレビ200に表示されている場合、+ボタン、−ボタン及びSETボタンは、当該メニュー画面上のカーソルを操作することもできる。この場合、+ボタン、−ボタン及びSETボタンに対する操作に対応するCECコマンドが、テレビ200からビデオカメラ100にCECライン302を介して送信される。
また、リモコン209は、第2の電源ボタン、再生ボタン、停止ボタン、一時停止ボタン、早送りボタン、巻き戻しボタン、スタート/ストップボタン、メニューボタン等を有する。これらのボタンは、ビデオカメラ100を操作するためのボタンである。
第2の電源ボタンは、電源ONコマンド又は電源OFFコマンドをCECライン302を介してビデオカメラ100に送信することをCPU201に指示するボタンである。電源ONコマンドは、ビデオカメラ100を電源オン状態に変更することをCPU101に指示するCECコマンドである。電源OFFコマンドは、ビデオカメラ100を電源オフ状態に変更することをCPU101に指示するCECコマンドである。
再生ボタン、停止ボタン及び一時停止ボタンは、再生コマンド、停止コマンド及び一時停止コマンドをCECライン302を介してビデオカメラ100に送信することをCPU201に指示するボタンである。また、早送りボタン及び巻き戻しボタンは、早送りコマンド及び巻き戻しコマンドをCECライン302を介してビデオカメラ100に送信することをCPU201に指示するボタンである。これらのコマンドは、記録媒体に記録された映像データの再生(play)、停止(stop)、一時停止(pause)、早送り(fast forward)及び巻き戻し(rewind)の実行をCPU101に指示するCECコマンドである。
スタート/ストップボタンは、記録コマンド又は記録一時停止コマンドをCECライン302を介してビデオカメラ100に送信することをCPU201に指示するボタンである。記録コマンドは、撮像部115によって生成された映像データ等の記録媒体への記録の開始をCPU101に指示するCECコマンドである。記録一時停止コマンドは、撮像部115によって生成された映像データの記録媒体への記録の一時停止をCPU101に指示するCECコマンドである。
メニューボタンは、メニューONコマンド又はメニューOFFコマンドをCECライン302を介してビデオカメラ100に送信することをCPU201に指示するボタンである。
メニューONコマンドは、ビデオカメラ100のメニュー画面の表示をCPU101に指示するCECコマンドである。メニュー画面の表示を行う場合、CPU101は、表示すべきメニュー画面をROM116から読み出し、読み出したメニュー画面を表示部112及びデータ処理部110に供給する。このとき、CPU101は、カーソル等をメニュー画面に重畳する。表示部112及びデータ処理部110は、CPU101から供給されたメニュー画面を、撮像部115又は記録部104から供給された映像データに重畳する。これにより、表示部112とテレビ200には、同じメニュー画面が表示されることになる。
メニューOFFコマンドは、ビデオカメラ100のメニュー画面の非表示をCPU101に指示するCECコマンドである。メニュー画面の非表示を行う場合、CPU101は、メニュー画面の表示部112及びデータ処理部110への供給を停止する。これにより、テレビ200は、ビデオカメラ100のメニュー画面の表示を停止することができる。
なお、外部装置200は、テレビジョン受像機に限るものではない。例えば、外部装置200は、ディスプレイを持つパーソナルコンピュータであってもよい。
次に、図1から図5までを参照し、実施形態1に係るビデオカメラ100で行われる処理を説明する。
図3は、実施形態1に係るビデオカメラ100で行われる処理の一例を示すフローチャートである。図3のフローチャートが示す処理は、ビデオカメラ100が電源オン状態であるときに実行される処理である。なお、図3のフローチャートに示す処理は、CPU101がROM116に記憶されているコンピュータプログラムを実行することによって制御される。
ステップS301において、CPU101は、ビデオカメラ100とテレビ200との間のHDMI接続が検出されたか否かを判定する。ビデオカメラ100とテレビ200との間のHDMI接続は、接続検知部106によって検出される。接続検知部106での検出結果は、CPU101に通知されるので、CPU101は、ビデオカメラ100とテレビ200との間のHDMI接続を検出することができる。
ステップS301でHDMI接続が検出されたと判定された場合、本フローチャートは、ステップS301からステップS302に進む。ステップS301でHDMI接続が検出されなかったと判定された場合、本フローチャートは、ステップS301に戻る。
ステップS302において、CPU101は、TMDSイネーブル信号をTMDSドライバ107aに供給し、CECイネーブル信号をCECドライバ107bに供給する。また、CPU101は、DDCライン304を介してテレビ200のEDIDを取得し、取得したEDIDをRAM103に格納する。さらに、CPU101は、ビデオカメラ100のCEC機能を有効(イネーブル)にする。
TMDSイネーブル信号をCPU101から受信したTMDSドライバ107aは、低消費電力状態から通常状態に変化し、TMDSライン301を有効(イネーブル)にする。TMDSライン301が有効にされた場合、通信部105は、映像データ、音声データ及び補助データをTMDSライン301を介してテレビ200に送信できるようになる。ビデオカメラ100の動作モードが撮影モードである場合は、撮影映像から生成された映像データ及びその音声データがTMDSライン301を介してビデオカメラ100からテレビ200に送信される。ビデオカメラ100の動作モードが再生モードである場合は、再生したい映像データを選択するためのメニュー画面がTMDSライン301を介してビデオカメラ100からテレビ200に送信される。ユーザがリモコン209を用いて、映像データの選択及び再生をテレビ200に指示すると、テレビ200は、その指示に対応するCECコマンドをビデオカメラ100に送信する。ビデオカメラ100は、ユーザによって選択された映像データ及びその音声データを記録媒体から再生する。記録媒体から再生された映像データ及びその音声データは、TMDSライン301を介してビデオカメラ100からテレビ200に送信される。
CECイネーブル信号をCPU101から受信したCECドライバ107bは、低消費電力状態から通常状態に変化し、CECライン302を有効(イネーブル)にする。CECライン302が有効にされた場合、通信部105は、ビデオカメラ100を制御するためのCECコマンドをテレビ200から受信できるようになり、テレビ200を制御するためのCECコマンドをテレビ200に送信できるようになる。
ステップS303において、CPU101は、テレビ200のCEC機能が有効(イネーブル)であるか否かを判定する。CECライン302を介してテレビ200からテレビ200の論理アドレス(logical address)を取得できた場合、CPU101は、テレビ200のCEC機能が有効であると判定する。CECライン302を介してテレビ200からテレビ200の論理アドレスを取得できなかった場合、CPU101は、テレビ200のCEC機能が有効でないと判定する。
テレビ200のCEC機能が有効でないと判定された場合、本フローチャートは、ステップS303からステップS304に進む。テレビ200のCEC機能が有効であると判定された場合、本フローチャートは、ステップS303からステップS308に進む。
ステップS304において、CPU101は、ビデオカメラ100のCEC機能を無効(ディセーブル)にする。
ステップS305において、CPU101は、CECディセーブル信号をCECドライバ107bに供給する。CECディセーブル信号をCPU101から受信したCECドライバ107bは、通常状態から低消費電力状態に変化し、CECライン302を無効(ディセーブル)にする。このとき、CPU101は、TMDSディセーブル信号をTMDSドライバ107aに供給しないので、TMDSライン301は有効な状態のままである。
ステップS306において、CPU101は、TMDSラインリセット処理を開始する。TMDSラインリセット処理は、図4を参照して後述する。
ステップS307において、CPU101は、ビデオカメラ100とテレビ200との間のHDMI接続が切り離されたか否かを判定する。ビデオカメラ100とテレビ200との間のHDMI接続が切り離されたか否かは、接続検知部106によって検出される。接続検知部106での検出結果は、CPU101に通知されるので、CPU101は、ビデオカメラ100とテレビ200との間のHDMI接続が切り離されたか否かを判定することができる。
HDMIケーブル300がビデオカメラ100から切り離された場合は、HPD信号が受信できなくなるので、接続検知部106は、ビデオカメラ100とテレビ200との間のHDMI接続の切り離しを検出することができる。また、テレビ200が電源オフ状態に変化した場合は、HPD信号はハイ(High)からロー(Low)に変化するので、接続検知部106は、ビデオカメラ100とテレビ200との間のHDMI接続の切り離しを検出することができる。なお、テレビ200を電源オフ状態に変更するための操作は、リモコン209によるものであっても、操作部206によるものであってもよい。
HDMI接続が切り離されたと判定された場合、本フローチャートは、ステップS307からステップS301に戻る。HDMI接続が切り離されていないと判定された場合、本フローチャートは、ステップS307からステップS306に戻る。
ステップS308において、CPU101は、TMDSラインリセット処理を開始する。TMDSラインリセット処理は、図4を参照して後述する。
ステップS309において、CPU101は、CECラインリセット処理を開始する。CECラインリセット処理は、図5を参照して後述する。
ステップS310において、CPU101は、ステップS307と同様に、ビデオカメラ100とテレビ200との間のHDMI接続が切り離されたか否かを判定する。
HDMI接続が切り離されたと判定された場合、本フローチャートは、ステップS310からステップS301に戻る。HDMI接続が切り離されていないと判定された場合、本フローチャートは、ステップS310からステップS308に戻る。
次に、図4を参照し、図3のステップS306及びS308で行われるTMDSラインリセット処理の一例を説明する。なお、図4のフローチャートに示す処理は、CPU101がROM116に記憶されているコンピュータプログラムを実行することによって制御される。
ステップS401において、CPU101は、TMDSライン301において通信エラーが発生しているか否かを判定する。TMDSライン301における通信エラーの発生は、エラー検知部108によって検出される。例えば、TMDSライン301用の送信バッファにおいてオーバーフロー及びアンダーフローのいずれかが発生した場合、エラー検知部108は、通信エラーの発生を検出する。また、テレビ200が映像データ等の伝送エラーを検出したことを示す信号をテレビ200から受信した場合も、エラー検知部108は、通信エラーの発生を検出する。TMDSライン301用の受信バッファにおいてオーバーフロー及びアンダーフローのいずれかが発生した場合にも、エラー検知部108は、通信エラーの発生を検出する。エラー検知部108での検出結果は、CPU101に通知されるので、CPU101は、TMDSライン301において通信エラーが発生しているか否かを判定することができる。
TMDSライン301において通信エラーが発生していると判定された場合、本フローチャートは、ステップS401からステップS402に進む。TMDSライン301において通信エラーが発生していないと判定された場合、本フローチャートは終了し、図3のステップS307又はS309に戻ることになる。
ステップS402において、CPU101は、TMDSリセット信号をTMDSドライバ107aに供給する。TMDSリセット信号をCPU101から受信したTMDSドライバ107aは、TMDSライン301を正常な状態に復帰させるために、TMDSライン301をリセットする。このとき、TMDSライン301はTMDSドライバ107aによってリセットされるが、CECライン302はCECドライバ107bによってリセットされない。したがって、TMDSライン301がリセットされている間、CECライン302は有効な状態を維持することになる。これにより、ビデオカメラ100は、CECコマンドの送信或いは受信を中断することなく、TMDSライン301を通信エラー状態から正常な状態に復帰させることができる。
次に、図5を参照し、図3のステップS309で行われるCECラインリセット処理の一例を説明する。なお、図5のフローチャートに示す処理は、CPU101がROM116に記憶されているコンピュータプログラムを実行することによって制御される。
ステップS501において、CPU101は、CECライン302において通信エラーが発生しているか否かを判定する。CECライン302における通信エラーの発生は、エラー検知部108によって検出される。例えば、CECコマンドの送信リトライが所定の回数を超えた場合、エラー検知部108は、通信エラーの発生を検出する。また、テレビ200から受信したCECコマンドの伝送エラーを検出した場合も、エラー検知部108は、通信エラーの発生を検出する。エラー検知部108での検出結果は、CPU101に通知されるので、CPU101は、CECライン302において通信エラーが発生しているか否かを判定することができる。
CECライン302において通信エラーが発生していると判定された場合、本フローチャートは、ステップS501からステップS502に進む。CECライン302において通信エラーが発生していないと判定された場合、本フローチャートは終了し、図3のステップS310に戻ることになる。
ステップS502において、CPU101は、CECリセット信号をCECドライバ107bに供給する。CECリセット信号をCPU101から受信したCECドライバ107bは、CECライン302を正常な状態に復帰させるために、CECライン302をリセットする。このとき、CECライン302はCECドライバ107bによってリセットされるが、TMDSライン301はTMDSドライバ107aによってリセットされない。このため、CECライン302がリセットされている間、TMDSライン301は有効な状態を維持することになる。これにより、ビデオカメラ100は、映像データ、音声データ及び補助データの送信を中断することなく、CECライン302を通信エラー状態から正常な状態に復帰させることができる。
このように、実施形態1に係るビデオカメラ100では、TMDSライン301と、CECライン302とを別々にリセットすることができるので、通信部105全体をリセットする必要がなくなる。これにより、通信エラー状態から正常な状態に復帰するまでの期間を短くすることができる。
また、実施形態1に係るビデオカメラ100では、TMDSライン301において通信エラーを検出した場合は、TMDSライン301及びCECライン302のうちTMDSライン301のみをリセットすることができる。これにより、CECコマンドの送信或いは受信を中断することなく、TMDSライン301を通信エラー状態から正常な状態に復帰させることができる。
また、実施形態1に係るビデオカメラ100では、CECライン302において通信エラーを検出した場合は、TMDSライン301及びCECライン302のうちCECライン302のみをリセットすることができる。これにより、映像データ、音声データ及び補助データの送信を中断することなく、CECライン302を通信エラー状態から正常な状態に復帰させることができる。
[実施形態2]
次に、図1〜図4及び図6を参照し、本発明の実施形態2を説明する。実施形態2は、実施形態1におけるCECラインリセット処理を、別のCECラインリセット処理に変更した実施形態である。実施形態2において、CECラインリセット処理以外の部分は実施形態1と同様である。したがって、実施形態2では、実施形態1と共通する部分についてはその説明を省略し、実施形態1と異なる部分を説明する。
図6は、図3のステップS309で行われるCECラインリセット処理の一例を示すフローチャートである。なお、図6のフローチャートに示す処理は、CPU101がROM116に記憶されているコンピュータプログラムを実行することによって制御される。
ステップS601において、CPU101は、CPU101は、タイマー102の値Mを0にリセットする。
ステップS602において、CPU101は、CECライン302において通信エラーが発生しているか否かを判定する。CECライン302における通信エラーの発生は、エラー検知部108によって検出される。例えば、CECコマンドの送信リトライが所定の回数を超えた場合、エラー検知部108は、通信エラーの発生を検出する。エラー検知部108での検出結果は、CPU101に通知されるので、CPU101は、CECライン302において通信エラーが発生しているか否かを判定することができる。
CECライン302において通信エラーが発生していると判定された場合、本フローチャートは、ステップS602からステップS608に進む。CECライン302において通信エラーが発生していないと判定された場合、本フローチャートは、ステップS602からステップS603に進む。
ステップS603において、CPU101は、テレビ200からCECコマンドを受信したか否かを判定する。テレビ200からCECコマンドを受信した場合、受信したCECコマンドは、通信部105及びコマンド処理部111を介してCPU101に供給される。これにより、CPU101は、テレビ200からCECコマンドを受信したか否かを判定することができる。
テレビ200からCECコマンドを受信したと判定された場合、CPU101は、CECライン302が正常な状態であると判定する。この場合、本フローチャートは、ステップS603からステップS609に進む。テレビ200からCECコマンドを受信していないと判定された場合、本フローチャートは、ステップS603からステップS604に進む。
ステップS604において、CPU101は、ビデオカメラ100の動作モードが再生モードであるか否かを判定する。
ビデオカメラ100の動作モードが再生モードであると判定された場合、本フローチャートは、ステップS604からステップS605に進む。
ビデオカメラ100の動作モードが再生モードでなく、撮影モードであると判定された場合、本フローチャートは、ステップS604からステップS609に進む。ビデオカメラ100の動作モードが撮影モードである場合は、ビデオカメラ100がテレビ200に送信している映像データを視聴している可能性が高く、テレビ200からビデオカメラ100にCECコマンドが送信される頻度は低いと予想されるためである。この場合は、タイマー102をリセットしないと、CECライン302が正常な状態であるにもかかわらず、CECライン302が頻繁にリセットされてしまう可能性がある。そこで、この場合、本フローチャートは、ステップS604からステップS609に進む。
ステップS605において、CPU101は、ビデオカメラ100が記録媒体に記録されている映像データ及びその音声データをTMDSライン301を介してテレビ200に送信している状態であるか否かを判定する。
ビデオカメラ100が記録媒体に記録されている映像データ及びその音声データをTMDSライン301を介してテレビ200に送信している状態であると判定された場合、本フローチャートは、ステップS605からステップS609に進む。なぜならこの場合、ユーザは、ビデオカメラ100がテレビ200に送信している映像データを視聴している可能性が高く、テレビ200からビデオカメラ100にCECコマンドが送信される頻度は低いと予想されるためである。この場合は、タイマー102をリセットしないと、CECライン302が正常な状態であるにもかかわらず、CECライン302が頻繁にリセットされてしまう可能性がある。そこで、この場合、本フローチャートは、ステップS605からステップS609に進む。
ビデオカメラ100が記録媒体に記録されている映像データ及びその音声データをTMDSライン301を介してテレビ200に送信している状態でないと判定された場合、本フローチャートは、ステップS605からステップS606に進む。なぜならこの場合、ユーザは、テレビ200に表示されたビデオカメラ100のメニュー画面を、リモコン209を用いて操作している可能性が高く、テレビ200からビデオカメラ100にCECコマンドが送信される頻度は高いと予想されるためである。
ステップS606において、CPU101は、タイマー102の値Mと、ROM116に記憶されている一定値Nとを比較し、タイマー102の値Mが一定値Nに達したか否かを判定する。以下、タイマー102の値Mが一定値Nを達するまでの期間を「所定期間T」という。
タイマー102の値Mが一定値Nに達したと判定された場合、CPU101は、CECライン302に何らかの通信エラーが発生していると判定する。所定期間Tが経過するまでテレビ200からCECコマンドを受信することができない場合は、CECライン302に何らかの通信エラーが発生している可能性が高いからである。この場合、本フローチャートは、ステップS606からステップS608に進む。タイマー102の値Mが一定値Nに達しなかったと判定された場合、本フローチャートは、ステップS606からステップS607に進む。
ステップS607において、CPU101は、タイマー102の値Mを1だけカウントアップさせる。その後、本フローチャートは、ステップS607からステップS602に戻る。
ステップS608において、CPU101は、CECリセット信号をCECドライバ107bに供給する。CECリセット信号をCPU101から受信したCECドライバ107bは、CECライン302を正常な状態に復帰させるために、CECライン302をリセットする。このとき、CECライン302はCECドライバ107bによってリセットされるが、TMDSライン301はTMDSドライバ107aによってリセットされない。したがって、CECライン302がリセットされている間、TMDSライン301は有効な状態を維持することになる。これにより、ビデオカメラ100は、映像データ、音声データ及び補助データの送信を中断することなく、CECライン302を通信エラー状態から正常な状態に復帰させることができる。
ステップS609において、CPU101は、タイマー102の値Mを0にリセットする。その後、本フローチャートは終了し、図3のステップS310に戻ることになる。
このように、実施形態2に係るビデオカメラ100では、TMDSライン301と、CECライン302とを別々にリセットすることができるので、通信部105全体をリセットする必要がなくなる。これにより、通信エラー状態から正常な状態に復帰するまでの期間を短くすることができる。
また、実施形態2に係るビデオカメラ100では、TMDSライン301において通信エラーを検出した場合は、TMDSライン301及びCECライン302のうちTMDSライン301のみをリセットすることができる。これにより、CECコマンドの送信或いは受信を中断することなく、TMDSライン301を通信エラー状態から正常な状態に復帰させることができる。
また、実施形態2に係るビデオカメラ100では、CECライン302において通信エラーを検出した場合は、TMDSライン301及びCECライン302のうちCECライン302のみをリセットすることができる。これにより、映像データ、音声データ及び補助データの送信を中断することなく、CECライン302を通信エラー状態から正常な状態に復帰させることができる。
また、実施形態2に係るビデオカメラ100では、所定期間Tが経過するまでテレビ200からCECコマンドを受信することができない場合にも、TMDSライン301及びCECライン302のうちCECライン302のみをリセットすることができる。これにより、映像データ、音声データ及び補助データの送信を中断することなく、CECライン302を通信エラー状態から正常な状態に復帰させることができる。
また、実施形態2に係るビデオカメラ100では、ビデオカメラ100の動作モードが再生モードでなく、撮影モードであると判定された場合は、タイマー102をリセットすることができる。これにより、CECライン302が正常な状態であるにもかかわらず、CECライン302が頻繁にリセットされる問題を回避することができる。
また、実施形態2に係るビデオカメラ100では、ビデオカメラ100が記録媒体に記録されている映像データ及びその音声データをTMDSライン301を介してテレビ200に送信している状態である場合は、タイマー102をリセットすることができる。これにより、CECライン302が正常な状態であるにもかかわらず、CECライン302が頻繁にリセットされる問題を回避することができる。
なお、実施形態2では、図6のステップS604及びステップS605の処理をステップS603とステップS606の処理の間で行うように構成したが、このような構成に限るものではない。例えば、ステップS604及びステップS605の処理をステップS606とステップS608の処理の間で行うように構成してもよい。
[他の実施形態]
本発明に係る通信装置は、実施形態1から2で説明した通信装置に限定されるものではない。例えば、本発明に係る通信装置は、複数の装置から構成されるシステムにより実現することも可能である。
また、実施形態1から2で説明した様々な処理及び機能は、コンピュータプログラムにより実現することも可能である。この場合、本発明に係るコンピュータプログラムは、コンピュータ(CPU(Central Processing Unit)等を含む)で実行され、実施形態1から2で説明した様々な処理及び機能を実現することになる。
本発明に係るコンピュータプログラムは、コンピュータ上で稼動しているOS(Operating System)などを利用して実施形態1から2で説明した様々な処理及び機能を実現してもよいことは言うまでもない。
本発明に係るコンピュータプログラムは、コンピュータ読取可能な記録媒体から読み出され、コンピュータで実行されることになる。コンピュータ読取可能な記録媒体には、ハードディスク装置、光ディスク、CD−ROM、CD−R、メモリカード、ROM等を用いることができる。また、本発明に係るコンピュータプログラムは、通信インターフェースを介して外部装置からコンピュータに提供され、当該コンピュータで実行されるようにしてもよい。