(57)【要約】複数の機器がＨＤＭＩで接続されている場合に、ある機器に対して制御コマンドを送出すると、ＨＤＭＩ−ＣＥＣメッセージに変換して送出することで、アプリケーションプログラムからはＨＤＭＩ−ＣＥＣを考慮することなく機器を操作することができる。
2007072821.tif 000002
【特許請求の範囲】
【請求項１】
複数の機器の動作を連携させる機器連携装置であって、
アプリケーションプログラムを含む放送波を受信する受信手段と、
前記アプリケーションプログラムを実行するプログラム実行手段と、
複数の機器のそれぞれとの間で、ＨＤＭＩ（High Definition Multimedia Interface）−ＣＥＣ（Consumer Electronics Control）に従った通信を行う通信手段と、
前記プログラム実行手段により実行される前記アプリケーションプログラムによって前記複数の機器が制御されるように、前記アプリケーションプログラムによって扱われるデータと、前記通信手段によって通信されるデータとの間の変換を行う変換手段と
を備えることを特徴とする機器連携装置。
【請求項２】
前記変換手段は、前記アプリケーションプログラムからバイナリーデータを取得して、前記バイナリーデータを前記ＨＤＭＩ−ＣＥＣに従ったメッセージに変換し、
前記通信手段は、前記メッセージを前記複数の機器のうちの何れかの機器に送信する
ことを特徴とする請求項１記載の機器連携装置。
【請求項３】
前記通信手段は、前記複数の機器のうちの何れかの機器から、前記ＨＤＭＩ−ＣＥＣに従ったメッセージを受信し、
前記変換手段は、前記通信手段によって受信されたメッセージをバイナリーデータに変換し、前記バイナリーデータを前記アプリケーションプログラムに引き渡す
ことを特徴とする請求項１記載の機器連携装置。
【請求項４】
前記アプリケーションプログラムはＪａｖａ（登録商標）で記述されたプログラムであって、
前記変換手段は、前記アプリケーションプログラムからリスナーの登録を受け付けることで、前記リスナーを登録し、前記リスナーのメソッドを呼び出すことで、前記アプリケーションプログラムに前記バイナリーデータを引き渡す
ことを特徴とする請求項３記載の機器連携装置。
【請求項５】
前記変換手段は、さらに、前記アプリケーションプログラムからリスナーの削除を受け付けることで、登録された前記リスナーを削除する
ことを特徴とする請求項４記載の機器連携装置。
【請求項６】
前記複数の機器は、映像および音声を出力する第１の機器と、音声を出力する第２の機器とを含み、
前記変換手段は、前記第１の機器が音声出力を抑えて映像を出力するとともに前記第２の機器が音声を出力するように指示するデータを、前記アプリケーションプログラムから取得して、前記データを前記ＨＤＭＩ−ＣＥＣに従ったメッセージに変換し、
前記通信手段は、前記メッセージを前記第１および第２の機器に送信する
ことを特徴とする請求項１記載の機器連携装置。
【請求項７】
前記機器連携装置は、さらに、
前記第１および第２の機器が前記通信手段との間で通信可能なように前記通信手段と接続されているか否かを判別し、判別の結果を前記アプリケーションプログラムに通知する通知手段を備える
ことを特徴とする請求項６記載の機器連携装置。
【請求項８】
前記変換手段は、モノラル、ステレオ、および５．１チャンネルの何れかの状態で前記第２の機器から音声が出力されるように指示するデータを、前記アプリケーションプログラムから取得して、前記データを前記ＨＤＭＩ−ＣＥＣに従ったメッセージに変換し、
前記通信手段は、前記メッセージを前記第２の機器に送信する
ことを特徴とする請求項６記載の機器連携装置。
【請求項９】
前記変換手段は、前記第２の機器から出力される音声の音場を指定するデータを、前記アプリケーションプログラムから受け付けると、前記データを前記ＨＤＭＩ−ＣＥＣに従ったメッセージに変換し、
前記通信手段は、前記メッセージを前記第２の機器に送信する
ことを特徴とする請求項６記載の機器連携装置。
【請求項１０】
前記変換手段は、
前記アプリケーションプログラムからバイナリーデータを取得したときには、前記バイナリーデータを前記ＨＤＭＩ−ＣＥＣに従ったメッセージに変換し、
前記複数の機器のうちの何れかの機器から、前記ＨＤＭＩ−ＣＥＣに従ったメッセージを前記通信手段が受信したときには、前記メッセージをバイナリーデータに変換して前記アプリケーションプログラムに引き渡し、
前記通信手段は、前記変換手段による変換によって生成されたメッセージを前記複数の機器のうちの何れかの機器に送信するとともに、前記複数の機器のうちの何れかの機器から、前記ＨＤＭＩ−ＣＥＣに従ったメッセージを受信する
ことを特徴とする請求項１記載の機器連携装置。
【請求項１１】
複数の機器の動作を連携させる機器連携方法であって、
アプリケーションプログラムを含む放送波を受信する受信ステップと、
前記アプリケーションプログラムを実行するプログラム実行ステップと、
複数の機器のそれぞれとの間で、ＨＤＭＩ（High Definition Multimedia Interface）−ＣＥＣ（Consumer Electronics Control）に従った通信を行う通信ステップと、
前記プログラム実行ステップで実行される前記アプリケーションプログラムによって前記複数の機器が制御されるように、前記アプリケーションプログラムによって扱われるデータと、前記通信ステップで通信されるデータとの間の変換を行う変換ステップと
を含むことを特徴とする機器連携方法。
【請求項１２】
複数の機器の動作を連携させるためのプログラムであって、
アプリケーションプログラムを含む放送波を受信する受信ステップと、
前記アプリケーションプログラムを実行するプログラム実行ステップと、
複数の機器のそれぞれとの間で、ＨＤＭＩ（High Definition Multimedia Interface）−ＣＥＣ（Consumer Electronics Control）に従った通信を行う通信ステップと、
前記プログラムステップで実行される前記アプリケーションプログラムによって前記複数の機器が制御されるように、前記アプリケーションプログラムによって扱われるデータと、前記通信ステップで通信されるデータとの間の変換を行う変換ステップと
をコンピュータに実行させることを特徴とするプログラム。
【請求項１３】
複数の機器の動作を連携させる集積回路であって、
アプリケーションプログラムを含む放送波を受信する受信手段と、
前記アプリケーションプログラムを実行するプログラム実行手段と、
複数の機器のそれぞれとの間で、ＨＤＭＩ（High Definition Multimedia Interface）−ＣＥＣ（Consumer Electronics Control）に従った通信を行う通信手段と、
前記プログラム実行手段により実行される前記アプリケーションプログラムによって前記複数の機器が制御されるように、前記アプリケーションプログラムによって扱われるデータと、前記通信手段によって通信されるデータとの間の変換を行う変換手段と
を備えることを特徴とする集積回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、例えばテレビやアンプなどの機器の連携を制御する機器連携装置に関する。
【背景技術】
【０００２】
近年、デジタル放送あるいはケーブルテレビ（以下、ＣＡＴＶという）放送を受信するセットトップボックス（以下、ＳＴＢという）、テレビ、アンプ、スピーカ、およびＤＶＤ（Digital Versatile Disk）プレーヤを組み合わせたホームシアターシステムが家庭に本格普及しつつある。これらの機器は、それぞれに対してリモコンを用いて設定を行うことにより、マルチチャンネル音声、例えば５．１チャンネル音声の再生を実現することができる（例えば、非特許文献１参照）。【０００３】
また、アンプの電源スイッチのオン／オフ操作に連動して、音声をテレビ受信装置だけから出力するか、アンプに接続されているスピーカからも出力するかを切り換える技術（機器連携装置）が提案されている（例えば、特許文献１参照）。【０００４】
例えば、上記特許文献１の機器連携装置は、テレビ受信装置と組み合わせてサラウンドシステムを構成することが可能なＡＶアンプに備えられている。つまり、上記特許文献１の機器連携装置は、サラウンドシステムの利用と、テレビ受信装置単独の利用との切り換えを行うことができる。【０００５】
図１は、上記特許文献１のＡＶアンプのブロック図を示す。【０００６】
このようなＡＶアンプ４０の機器連携装置は、サラウンドシステムの利用時には、ＡＶアンプ４０の電源スイッチ４１がオンにされると、切り換えスイッチ５０をセンタ音声増幅回路４８側に切り換える。その結果、ＡＶアンプ４０に接続された例えばＶＴＲ（Video Tape Recorder）やＬＤ（Laser Disc）などの再生機器、またはテレビ受信装置から音声入力端子４３に供給されている音声信号がＤＳＰ４５を介して音声出力端子４９を経て周囲のスピーカに供給される。また、このようなＡＶアンプ４０の機器連携装置は、テレビ受信装置単独での利用時に、ＡＶアンプ４０の電源スイッチ４１がオフにされると、切り替えスイッチ５０をテレビ音声入力端子５１側に切り換える。その結果、テレビ受信装置の増幅回路で処理されたテレビ音声が、ＡＶアンプ４０を介してテレビ受信装置のスピーカに供給される。
【非特許文献１】Ｈｉｇｈ  Ｄｅｆｉｎｉｔｉｏｎ  Ｍｕｌｔｉｍｅｄｉａ  Ｉｎｔｅｒｆａｃｅ  ｓｐｅｃｉｆｉｃａｔｉｏｎ  Ｖｅｒｓｉｏｎ  １．２
【特許文献１】特開平５−１５３５２０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
しかしながら、上記特許文献１の機器連携装置では、サラウンドシステムの使用および不使用を切り換えるために、わざわざＡＶアンプの電源を操作しなければならないという問題がある。つまり、ユーザは、ＡＶアンプ４０に接続されたスピーカに音声を出力させるときには、ＡＶアンプ４０の電源をオンにしなければならず、そのスピーカ以外のテレビ受信装置に備えられたスピーカに音声を出力させるときには、ＡＶアンプ４０の電源をオフにしなければならない。【０００８】
そこで、本発明は、かかる問題に鑑みてなされたものであって、ユーザによる操作負担を軽減して適切に機器を連携させる機器連携装置を提供することを目的とする。
【課題を解決するための手段】
【０００９】
上記目的を達成するために、本発明に係る機器連携装置は、複数の機器の動作を連携させる機器連携装置であって、アプリケーションプログラムを含む放送波を受信する受信手段と、前記アプリケーションプログラムを実行するプログラム実行手段と、複数の機器のそれぞれとの間で、ＨＤＭＩ（High Definition Multimedia Interface）−ＣＥＣ（Consumer Electronics Control）に従った通信を行う通信手段と、前記プログラム実行手段により実行される前記アプリケーションプログラムによって前記複数の機器が制御されるように、前記アプリケーションプログラムによって扱われるデータと、前記通信手段によって通信されるデータとの間の変換を行う変換手段とを備えることを特徴とする。【００１０】
これにより、アプリケーションプログラムが複数の機器のうちの何れかの機器の動作を制御するために制御データを出力すると、その制御データが、通信手段によって通信されるＨＤＭＩ−ＣＥＣメッセージに変換されてその機器に送信されるため、その機器がＨＤＭＩ−ＣＥＣに対応した機器であれば、アプリケーションプログラムは、ＨＤＭＩ−ＣＥＣを考慮することなく、制御データを出力して機器を自由に制御することができる。ここで、アプリケーションプログラムがＪａｖａ（登録商標）で記述されたプログラムである場合には、例えば、そのプログラムは、Ｊａｖａ  ＡＰＩであるメソッドを呼び出すことで上述の制御データを出力する。また、何れかの機器から送信されたＨＤＭＩ−ＣＥＣメッセージが、アプリケーションプログラムによって扱われるデータに変換されるため、アプリケーションプログラムは、ＨＤＭＩ−ＣＥＣを考慮することなく機器からメッセージを受け取ることができ、その機器の制御に利用することができる。その結果、本発明では、アプリケーションプログラムによって各機器を自由に制御することができるため、ユーザによる操作負担を軽減して適切に機器を連携させることができる。【００１１】
また、前記変換手段は、前記アプリケーションプログラムからバイナリーデータを取得して、前記バイナリーデータを前記ＨＤＭＩ−ＣＥＣに従ったメッセージに変換し、前記通信手段は、前記メッセージを前記複数の機器のうちの何れかの機器に送信することを特徴としてもよい。または、前記通信手段は、前記複数の機器のうちの何れかの機器から、前記ＨＤＭＩ−ＣＥＣに従ったメッセージを受信し、前記変換手段は、前記通信手段によって受信されたメッセージをバイナリーデータに変換し、前記バイナリーデータを前記アプリケーションプログラムに引き渡すことを特徴としてもよい。【００１２】
例えば、テレビやアンプなどの機器の間で連携した機能を実現させるためのハードウェアやソフトウェアは、予めその機器に組み込まれた状態で出荷される。その後、ハードウェアやソフトウェアに対して改良や変更が行われ、その変更されたハードウェアやソフトウェアが組み込まれた新たな機器が発売される。その結果、新たに発売された機器と既存の機器との間では、連携機能を実現することができない場合が発生する。そこで、本発明では、アプリケーションプログラムによって扱われるバイナリーデータと、通信手段によって通信されるＨＤＭＩ−ＣＥＣメッセージとの間の変換が行われるため、例えば、実行されるアプリケーションプログラムを入れ替えるだけで、機器連携装置そのものを改変することなく、新たに発売された機器を適切に制御して、その新たに発売された機器を含む複数の機器の動作を連携させることができる。【００１３】
また、前記アプリケーションプログラムはＪａｖａ（登録商標）で記述されたプログラムであって、前記変換手段は、前記アプリケーションプログラムからリスナーの登録を受け付けることで、前記リスナーを登録し、前記リスナーのメソッドを呼び出すことで、前記アプリケーションプログラムに前記バイナリーデータを引き渡すことを特徴としてもよい。【００１４】
これにより、アプリケーションプログラムは、機器からのメッセージをバイナリーデータで確実に受け取ることができる。【００１５】
また、前記変換手段は、さらに、前記アプリケーションプログラムからリスナーの削除を受け付けることで、登録された前記リスナーを削除することを特徴としてもよい。【００１６】
これにより、アプリケーションプログラムは、機器からのメッセージの受け取りを拒否することができる。【００１７】
また、前記複数の機器は、映像および音声を出力する第１の機器と、音声を出力する第２の機器とを含み、前記変換手段は、前記第１の機器が音声出力を抑えて映像を出力するとともに前記第２の機器が音声を出力するように指示するデータを、前記アプリケーションプログラムから取得して、前記データを前記ＨＤＭＩ−ＣＥＣに従ったメッセージに変換し、前記通信手段は、前記メッセージを前記第１および第２の機器に送信することを特徴としてもよい。【００１８】
これにより、例えばテレビなどの第１の機器が映像だけを出力して、アンプなどの第２の機器のスピーカが音声を出力するようなシアターモードをアプリケーションプログラムが指示すれば、その指示をテレビとアンプが適切に受け取ることができ、その結果、シアターモードで音声が出力されるように、ユーザによる操作負担を軽減してテレビおよびアンプを適切に連携させることができる。【００１９】
また、前記機器連携装置は、さらに、前記第１および第２の機器が前記通信手段との間で通信可能なように前記通信手段と接続されているか否かを判別し、判別の結果を前記アプリケーションプログラムに通知する通知手段を備えることを特徴としてもよい。【００２０】
これにより、アプリケーションプログラムは第１および第２の機器が通信手段に接続されているか否かを知ることができ、その結果、アプリケーションプログラムは、第１および第２の機器が接続されていれば、音声出力状態をシアターモードにすることができることをユーザに通知したり、第１および第２の機器が接続されていなければ、シアターモードの指示を省くことができ、アプリケーションプログラムの処理の自由度を高めることができる。【００２１】
また、前記変換手段は、モノラル、ステレオ、および５．１チャンネルの何れかの状態で前記第２の機器から音声が出力されるように指示するデータを、前記アプリケーションプログラムから取得して、前記データを前記ＨＤＭＩ−ＣＥＣに従ったメッセージに変換し、前記通信手段は、前記メッセージを前記第２の機器に送信することを特徴としてもよい。【００２２】
これにより、モノラル、ステレオ、および５．１チャンネルの何れかの再生モードをアプリケーションプログラムが指示すれば、その指示をアンプが適切に受け取ることができ、その結果、指定された再生モードで音声が出力されるように、ユーザによる操作負担を軽減してアンプを適切に操作することができる。【００２３】
また、前記変換手段は、前記第２の機器から出力される音声の音場を指定するデータを、前記アプリケーションプログラムから受け付けると、前記データを前記ＨＤＭＩ−ＣＥＣに従ったメッセージに変換し、前記通信手段は、前記メッセージを前記第２の機器に送信することを特徴としてもよい。【００２４】
これにより、例えばシネマモードやスポーツモードなどの音場モードをアプリケーションプログラムが指示すれば、その指示をアンプが適切に受け取ることができ、その結果、指定された音場モードで音声が出力されるように、ユーザによる操作負担を軽減してアンプを適切に操作することができる。【００２５】
なお、本発明は、このような機器連携装置として実現することができるだけでなく、その方法やプログラム、そのプログラムを格納する記憶媒体、集積回路としても実現することができる。
【発明の効果】
【００２６】
本発明の機器連携は、ユーザによる操作負担を軽減して適切に機器を連携させることができるという作用効果を奏する。
【図面の簡単な説明】
【００２７】
【図１】図１は、従来のアンプの構成図である。
【図２Ａ】図２Ａは、本発明の実施の形態に係る機器連携装置を含むシステムの構成を示す構成図である。
【図２Ｂ】図２Ｂは、本発明の実施の形態に係るホームシアターシステムの構成図である。
【図３】図３は、本発明の実施の形態に係るテレビの構成を示す構成図である。
【図４】図４は、本発明の実施の形態に係るアンプの構成を示す構成図である。
【図５】図５は、本発明の実施の形態に係るＳＴＢの構成図である。
【図６】図６は、本発明の実施の形態に係る入力部として構成されたフロントパネルの外観の一例を示す図である。
【図７】図７は、本発明の実施の形態に係るプログラムの構成図である。
【図８Ａ】図８Ａは、本発明の実施の形態に係る電子番組表の一例を示す図である。
【図８Ｂ】図８Ｂは、本発明の実施の形態に係る電子番組表の一例を示す図である。
【図９】図９は、本発明の実施の形態に係る第２メモリが保存する番組情報表示データの一例を示す図である。
【図１０】図１０は、本発明の実施の形態に係る第２メモリが保存するチャンネル情報の一例を示す図である。
【図１１Ａ】図１１Ａは、本発明の実施の形態に係る第２メモリが保存するチャンネル識別子の一例を示す図である。
【図１１Ｂ】図１１Ｂは、本発明の実施の形態に係る第２メモリが保存するチャンネル識別子の他の例を示す図である。
【図１１Ｃ】図１１Ｃは、本発明の実施の形態に係る第２メモリが保存するチャンネル識別子のさらに他の例を示す図である。
【図１２】図１２は、本発明の実施の形態に係るＰＡＴの一例を示す図である。
【図１３】図１３は、本発明の実施の形態に係るＰＭＴの一例を示す図である。
【図１４】図１４は、本発明の実施の形態に係るＡＩＴの一例を示す図である。
【図１５】図１５は、本発明の実施の形態に係るファイルシステムの一例を示す図である。
【図１６】図１６は、本発明の実施の形態に係る機器制御ライブラリの内部構成図である。
【図１７】図１７は、本発明の実施の形態に係る機器管理情報の一例を示す図である。
【図１８】図１８は、本発明の実施の形態に係る機器接続管理部が備えるＪａｖａ  ＡＰＩの一例を示す図である。
【図１９】図１９は、本発明の実施の形態に係る電源制御部が備えるＪａｖａ  ＡＰＩの一例を示す図である。
【図２０】図２０は、本発明の実施の形態に係る音場制御部が音声出力状態をシアターモードに切り替える処理の流れを示す流れ図である。
【図２１】図２１は、本発明の実施の形態に係る音場制御部が備えるＪａｖａ  ＡＰＩの一例を示す図である。
【図２２】図２２は、本発明の実施の形態に係る低レベル送信部が備えるＪａｖａ  ＡＰＩの一例を示す図である。
【図２３】図２３は、本発明の実施の形態に係る低レベル受信部が備えるＪａｖａ  ＡＰＩの一例を示す図である。
【図２４】図２４は、本発明の実施の形態に係る画面表示の一例を示す図である。
【図２５】図２５は、本発明の実施の形態に係る機器接続管理部が備えるＪａｖａ  ＡＰＩの他の例を示す図である。
【図２６】図２６は、本発明の実施の形態に係る接続機器管理部が備えるＪａｖａ  ＡＰＩに基づく動作を表すフローチャートである。
【図２７】図２７は、本発明の実施の形態に係る機器制御ライブラリで使用されるＪａｖａクラスの定義の一例を示す図である。
【図２８】図２８は、本発明の実施の形態に係る接続機器管理部が備える他のＪａｖａ  ＡＰＩに基づく動作を表すフローチャートである。
【図２９】図２９は、本発明の実施の形態に係る接続機器管理部が備えるさらに他のＪａｖａ  ＡＰＩに基づく動作を表すフローチャートである。
【図３０】図３０は、本発明の実施の形態に係る電源制御部が備えるＪａｖａ  ＡＰＩに基づく動作を表すフローチャートである。
【図３１】図３１は、本発明の実施の形態に係る電源制御部が備える他のＪａｖａ  ＡＰＩに基づく動作を表すフローチャートである。
【図３２】図３２は、本発明の実施の形態に係る電源制御部が備えるさらに他のＪａｖａ  ＡＰＩに基づく動作を表すフローチャートである。
【図３３】図３３は、本発明の実施の形態に係る電源制御部が備えるさらに他のＪａｖａ  ＡＰＩに基づく動作を表すフローチャートである。
【図３４】図３４は、本発明の実施の形態に係る音場制御部が備えるＪａｖａ  ＡＰＩに基づく動作を表すフローチャートである。
【図３５】図３５は、本発明の実施の形態に係る音場制御部が備える他のＪａｖａ  ＡＰＩに基づく動作を表すフローチャートである。
【図３６】図３６は、本発明の実施の形態に係る音場制御部が備えるさらに他のＪａｖａ  ＡＰＩに基づく動作を表すフローチャートである。
【図３７】図３７は、本発明の実施の形態に係る音場制御部が備えるさらに他のＪａｖａ  ＡＰＩに基づく動作を表すフローチャートである。
【図３８】図３８は、本発明の実施の形態に係る低レベル送信部が備えるＪａｖａ  ＡＰＩに基づく動作を表すフローチャートである。
【図３９】図３９は、本発明の実施の形態に係る低レベル受信部が備えるＪａｖａ  ＡＰＩに基づく動作を表すフローチャートである。
【図４０】図４０は、本発明の実施の形態に係る低レベル受信部がＨＤＭＩ−ＣＥＣメッセージを受け取ったときの動作を表すフローチャートである。
【符号の説明】
【００２８】
１０４    ＳＴＢ
２０１    入力手段
２０２    第１メモリ
２０３    第２メモリ
２０４    受信部
２０５    多重分離部
２０６    デスクランブラ
２０７    ＴＳデコーダ
２０８    映像出力部
２０９    音声出力部
２１０    ＨＤＭＩ部
２１１    ＣＰＵ
【発明を実施するための最良の形態】
【００２９】
以下、本発明の実施の形態に係る機器連携装置について、図面を用いて説明する。【００３０】
図２Ａは、本実施の形態における機器連携装置を含むシステムの構成を示す構成図である。【００３１】
このシステムは、本実施の形態における機器連携装置Ａと、ｎ個の機器Ｂ１，Ｂ２，…，Ｂｎとから構成されている。この機器連携装置Ａは、ユーザによる操作負担を軽減して適切に機器Ｂ１，Ｂ２，…，Ｂｎの動作を連携させる。つまり、本実施の形態における機器連携装置Ａによる機器Ｂ１，Ｂ２，…，Ｂｎの制御によって、これらの機器Ｂ１，Ｂ２，…，Ｂｎが連携した処理を実行する。【００３２】
例えば、本実施の形態にかかる機器連携装置Ａは、ＣＡＴＶを受信するＳＴＢ（セットトップボックス）として構成され、テレビやアンプをそれぞれ上述の機器として連携させる。このようなＳＴＢ、テレビ、アンプ、およびスピーカからホームシアターシステムが構成される。【００３３】
図２Ｂは、本実施の形態に係るホームシアターシステムの構成を表すブロック図である。【００３４】
図２Ｂに示すように、ホームシアターシステムは、テレビ１０１、アンプ１０２、スピーカ１０３、および機器連携装置たるＳＴＢ１０４で構成される。【００３５】
本実施の形態におけるＳＴＢ１０４、テレビ１０１、およびアンプ１０２は、ＨＤＭＩ（Ｈｉｇｈ  Ｄｅｆｉｎｉｔｉｏｎ  Ｍｕｌｔｉｍｅｄｉａ  Ｉｎｔｅｒｆａｃｅ）−ＣＥＣ（Ｃｏｎｓｕｍｅｒ  Ｅｌｅｃｔｒｏｎｉｃｓ  Ｃｏｎｔｒｏｌ）コマンドを送受信するＨＤＭＩ−ＣＥＣ通信部を保持し、そのコマンドであるＨＤＭＩ−ＣＥＣメッセージを用いて、ＳＴＢ１０４によって受信されたアプリケーションプログラムが自動的に音声出力状態などを制御する。【００３６】
また、本実施の形態では、ＳＴＢ１０４、テレビ１０１、およびアンプ１０２などの機器間の通信基本機能を、ミドルウエア、具体的にはＪａｖａ（登録商標）ミドルウエアを用いて実現している。個別の機器連携機能を、Ｊａｖａアプリケーションプログラムとして実現することで、常に最新の機器連携機能を実現できる。【００３７】
なお、ＨＤＭＩ仕様の詳細は、Ｈｉｇｈ  Ｄｅｆｉｎｉｔｉｏｎ  Ｍｕｌｔｉｍｅｄｉａ  Ｉｎｔｅｒｆａｃｅ  ｓｐｅｃｉｆｉｃａｔｉｏｎ  Ｖｅｒｓｉｏｎ  １．２に記載されており、また、ＨＤＭＩ−ＣＥＣ仕様は、同仕様書のＡｐｐｅｎｄｉｘ「ｓｕｐｐｌｅｍｅｎｔａｌ  １  Ｃｏｎｓｕｍｅｒ  Ｅｌｅｃｔｒｏｎｉｃｓ  Ｃｏｎｔｒｏｌ」において規定されている。ＨＤＭＩ規格は、映像／音声の非圧縮デジタルデータを機器間で伝送するための伝送規格であり、伝送にはＨＤＭＩ規格に準拠した一本のケーブルが用いられる。ＨＤＭＩ−ＣＥＣは、そのケーブル（ＨＤＭＩケーブル）を介して機器間で双方向に機器制御コマンドを伝送するための仕様が規定されている。２００５年１１月現在、ｗｗｗ．ｈｄｍｉ．ｏｒｇからＨＤＭＩ仕様書をダウンロードすることで取得できる。【００３８】
テレビ１０１は、ＨＤＭＩ端子を保持し、アンプ１０２とＨＤＭＩラインで接続されている。テレビ１０１は、アンプ１０２から送られてきた映像・音声を再生することが出来る。また、テレビ１０１は、ＨＤＭＩラインを通して送られてきたＨＤＭＩ−ＣＥＣのメッセージ（コマンド）を受け取り、そのメッセージ（コマンド）に対応する処理を行う。【００３９】
図３は、テレビ１０１の構成を示す構成図である。【００４０】
図３に示すように、テレビ１は、メモリ１０１ａと、リモコン受信部１０１ｂと、マイクロコンピュータ（以下、マイコンという）１０１ｃと、ＨＤＭＩ−ＣＥＣ通信部１０１ｄと、チューナ１０１ｅと、デコーダ１０１ｆと、ディスプレイ１０１ｇと、スピーカ１０１ｈとから構成されている。【００４１】
テレビ１０１は、ユーザによって直接操作されたり、リモートコントロール装置（図示せず）（以下、テレビ用リモコンという）を用いても操作される。【００４２】
マイコン１０１ｃは、リモコン受信部１０１ｂがテレビ用リモコンから発信されたコマンドを受信すると、そのコマンドに応じた処理を行い、チューナ１０１ｅの選局切換や、デコーダ１０１ｆの処理を制御する。デコーダ１０１ｆは、チューナ１０１ｅやＨＤＭＩ−ＣＥＣ通信部１０１ｄから入力された映像・音声信号を、マイコン１０１ｃの指示に応じて、ディスプレイ１０１ｇやスピーカ１０１ｈに出力する。また、マイコン１０１ｃは、ＨＤＭＩ−ＣＥＣ通信部１０１ｄから入力されたＨＤＭＩ−ＣＥＣコマンドに応じて、各設定や制御を行う。【００４３】
また、テレビ１０１は、本体フロントパネル等に、ボタン等を有する入力部（図示せず）を具備し、この入力部からの入力によって、テレビ用リモコンを用いた操作と同様の操作を受け付ける。【００４４】
アンプ１０２は、ＨＤＭＩ端子を保持し、テレビ１０１及びＳＴＢ１０４とＨＤＭＩラインで接続されている。また、アンプ１０２は、スピーカ１０３とスピーカ用ラインで接続されている。アンプ１０２は、ＳＴＢ１０４から映像・音声を受け取る。アンプ１０２は、受け取った映像・音声をテレビ１０１に送信する。また、シネマモード、スポーツモード、音楽モード、ドラマモードなどの所定の音場モードがアンプ１０２に設定されている場合には、アンプ１０２は、ＳＴＢ１０４から受け取った音声信号に、その音場モードに対応する音場特性を付加し、その音声信号をスピーカ１０３に送信する。もちろん、アンプ１０２は、音場特性を付加せずに音声信号を送信してもよい。ここで、音場特性の付加は、より具体的には、反射音の大きさや、数、残響音の大きさ、残響時間などの残響特性パラメータと周波数特性パラメータとに基づいた音声信号処理であり、従来の技術により実現可能である。なお、音場は、スピーカ１０３から出力される音声の状態や質であって、反射音の大きさ、数、残響音の大きさ、残響時間、周波数特性によって、上述のシネマモードやスポーツモードなどの各音場モードに分類される。【００４５】
アンプ１０２は、ＨＤＭＩラインを通して送られてきたＨＤＭＩ−ＣＥＣのメッセージ（コマンド）を受け取り、そのメッセージ（コマンド）に対応する処理を行う。この処理には、上述の音場モードを設定する処理も含まれる。【００４６】
図４は、アンプ１０２の構成を示す構成図である。【００４７】
図４に示すように、アンプ１０２は、ＨＤＭＩ−ＣＥＣ通信部１０２ａと、マクロコンピュータ（以下、マイコンという）１０２ｂと、ＨＤＭＩ−ＣＥＣ通信部１０２ｃと、セレクター１０２ｄと、外部入力部ｅ１０２と、スピーカ出力部１０２ｆと、リモコン受信部１０２ｇとから構成されている。【００４８】
アンプ１０２は、ユーザによって直接操作されたり、リモートコントロール装置（図示せず）（以下、アンプ用リモコンという）を用いても操作される。【００４９】
マイコン１０２ｂは、リモコン受信部１０２ｇがアンプ用リモコンから発信されたコマンドを受信すると、そのコマンドに応じた処理を行う。また、マイコン１０２ｂは、ＨＤＭＩ−ＣＥＣ通信部１０２ａまたはＨＤＭＩ−ＣＥＣ通信部１０２ｃにより受信されたＨＤＭＩ−ＣＥＣコマンドに応じた処理を行う。【００５０】
セレクター１０２ｄは、マイコン１０２ｂからの指示に応じて、ＨＤＭＩ-ＣＥＣ通信部１０２ｃから出力される音声信号と、外部入力部１０２ｅから出力される音声信号とを切り換え、切り換えられた音声信号をスピーカ出力部１０２ｆに出力する。ここで、セレクター１０２ｄは、音声信号に付加された音場特性たるフォーマット（ステレオ音声のフォーマットや、５．１チャンネル音声のフォーマットなど）に応じた態様で、その音声信号をスピーカ３に出力する。【００５１】
また、アンプ１０２は、本体フロントパネル等に、ボタン等を有する入力部（図示せず）を具備し、この入力部からの入力によって、アンプ用リモコンを用いた操作と同様の操作を受け付ける。【００５２】
スピーカ１０３は、映画館で臨場感のある音響効果を再現するためのマルチチャンネル音声の再生、例えば５．１チャンネル再生を行うスピーカの集合である。スピーカ１０３は、実際には、６つのスピーカ（図示せず）から構成される。つまり、スピーカ１０３は、ユーザに対して、正面、右前方、左前方、右後方、および左後方に配置される５つのスピーカと、低音出力用スピーカとで構成される。スピーカ３は、アンプ１０２から音声信号を受け取り、出力する。【００５３】
ＳＴＢ１０４は、ＣＡＴＶ放送の受信・再生を行う。また、ＳＴＢ１０４は、再生した映像音声を出力するためのＨＤＭＩ端子を備えている。【００５４】
図５は、本実施の形態に係るＳＴＢ１０４の構成を表したブロック図である。【００５５】
ＳＴＢ１０４は、入力部２０１、第１メモリ２０２、第２メモリ２０３、受信部２０４、多重分離部２０５、デスクランブラ２０６、ＴＳデコーダ２０７、映像出力部２０８、音声出力部２０９、ＨＤＭＩ部２１０、およびＣＰＵ２１１で構成される。【００５６】
入力部２０１は、フロントパネルやリモコン受光器等で構成され、ユーザからのチャンネルの選択等の指示を受け付ける。【００５７】
図６は、入力部２０１として構成されたフロントパネルの一例を示す図である。【００５８】
このフロントパネル３００は、上カーソルボタン３０１、下カーソルボタン３０２、左カーソルボタン３０３、右カーソルボタン３０４、ＯＫボタン３０５、取消ボタン３０６、ＥＰＧボタン３０７、およびシアターボタン３０８の８つのボタンを備えている。ユーザがボタンを押下すると、押下されたボタンの識別子がＣＰＵ２１１に通知される。【００５９】
第１メモリ２０２は、ＲＡＭ（Random Access Memory）等で構成され、ＣＰＵ２１１が一時的にデータを保存する際に使用される。【００６０】
第２メモリ２０３は、フラッシュメモリーやハードディスク等、電源供給が停止しても情報を保持可能なデバイスで構成され、ＣＰＵ２１１が実行するプログラムを保存する。第２メモリ２０３を、ＳＤ（Secure Digital：登録商標）メモリーカード等の取り外し可能な記憶デバイスとして構成してもよい。【００６１】
受信部２０４は、ケーブルテレビ局からのケーブルに接続され、放送波を受信し、ＣＰＵ２１１から指定された周波数にチューニングし、ＭＰＥＧトラスポートストリームを抽出して多重分離部２０５に引き渡す。【００６２】
多重分離部２０５は、受信部２０４からＭＰＥＧトラスポートストリームを受け取り、ＣＰＵ２１１から指定された情報をそのＭＰＥＧトラスポートストリームから抽出してＣＰＵ２１１に引渡す。また、多重分離部２０５は、ＭＰＥＧトラスポートストリームをそのままデスクランブラ２０６に引き渡す。【００６３】
デスクランブラ２０６は、多重分離部２０５から与えられたスクランブルされているＭＰＥＧトラスポートストリームをデスクランブル（＝復号）し、ＴＳデコーダ２０７に引き渡す。デスクランブラ２０６は、ＳＴＢ１０４に内蔵されたモジュールでも良いし、北米ケーブル受信機で導入されているＣａｂｌｅＣＡＲＤ（登録商標）でもよい。ＣａｂｌｅＣＡＲＤの仕様は米国ＣａｂｌｅＬａｂｓが策定したＣａｂｌｅＣＡＲＤ  Ｉｎｔｅｒｆａｃｅ  Ｓｐｅｃｉｆｉｃａｔｉｏｎに記載されており、ここでは説明を省略する。【００６４】
ＴＳデコーダ２０７は、ＣＰＵ２１１から音声データと映像データの識別子を受け取る。さらに、ＴＳデコーダ２０７は、デスクランブラ２０６から受け取ったデスクランブルされたストリームから、受け取った音声データと映像データの識別子に対応する音声データと映像データを抽出する。そして、ＴＳデコーダ２０７は、抽出した映像データを映像出力部２０８に引き渡し、音声データを音声出力部２０９に引き渡す。また、ＴＳデコーダ２０７は、その両方（映像データおよび音声データ）を、ＨＤＭＩ部２１０に引き渡す。【００６５】
映像出力部２０８は、映像出力端子を含み、受け取った映像データをその映像出力端子に対応した映像データに変換して出力する。映像出力端子の例としては、コンポジットケーブル端子などがある。【００６６】
音声出力部２０９は、音声出力端子を含み、受け取った音声データをその音声出力端子に対応した音声データに変換して出力する。音声出力端子の例としては、イヤホン端子や、コンポジットケーブル端子などがある。【００６７】
ＨＤＭＩ部２１０は、ＨＤＭＩ端子を含み、受け取った映像データおよび音声データをＨＤＭＩ仕様に基づいた映像音声データ形式に変換して出力する。また、ＨＤＭＩ部２１０は、ＣＰＵ２１１からＨＤＭＩ−ＣＥＣメッセージ送信の指示を受け取ると、所定のコマンドをＨＤＭＩ仕様に基づいたデータ形式に変換してそのメッセージを出力する。また、ＨＤＭＩ部２１０は、ＨＤＭＩ端子を通して受け取ったＨＤＭＩ−ＣＥＣメッセージをＣＰＵ２１１に引き渡す。【００６８】
ＣＰＵ２１１は、第２メモリ２０３が記憶するプログラムを実行することで、受信部２０４、多重分離部２０５、デスクランブラ２０６、ＴＳデコーダ２０７、およびＨＤＭＩ部２１０を制御する。【００６９】
図７は、第２メモリ２０３に記憶され、ＣＰＵ２１１に実行されるプログラムの構成図である。【００７０】
プログラム４００は、複数のサブプログラムで構成され、ＯＳ４０１、ＥＰＧ４０２、ＪａｖａＶＭ４０３、サービスマネージャ４０４、およびＪａｖａライブラリ４０５で構成される（Ｊａｖａは登録商標）。【００７１】
ＯＳ４０１は、ＳＴＢ１０４の電源が投入されるときにＣＰＵ２１１が起動するためのサブプログラムである。ＯＳ４０１の「ＯＳ」はオペレーティングシステムの略であり、ＯＳ４０１は例えばＬｉｎｕｘ等である。このようなＯＳ４０１は、他のサブプログラムを並行して実行するカーネル４０１ａ及びライブラリ４０１ｂで構成される。本実施の形態においては、ＯＳ４０１のカーネル４０１ａは、ＥＰＧ４０２とＪａｖａＶＭ４０３をサブプログラムとして実行する。また、ライブラリ４０１ｂは、これらサブプログラムに対して、ＳＴＢ１０４が保持する構成要素を制御するための複数の機能を提供する。【００７２】
本実施の形態では、ライブラリ４０１ｂは、チューナ４０１ｂ１、限定解除部４０１ｂ２、ＣＥＣ４０１ｂ４、およびＡＶ再生部４０２ｂ３を含む。チューナ４０１ｂ１は、他のサブプログラムやＪａｖａライブラリ４０５のＴｕｎｅｒ４０５ｃから周波数を含むチューニング情報を受け取り、受信部２０４に引き渡す。受信部２０４は与えられたチューニング情報に基づき復調処理を行い、復調したデータを多重分離部２０５に引き渡すことができる。この結果、他のサブプログラム及びＪａｖａライブラリ４０５のＴｕｎｅｒ４０５ｃはライブラリ４０１ｂを通して受信部２０４を制御することができる。【００７３】
ＣＥＣ４０１ｂ４は、他のサブプログラムやＪａｖａライブラリ４０５の機器制御ライブラリ４０５ｅから必要な情報を受け取り、ＨＤＭＩ−ＣＥＣで規定されるメッセージを作成する。ＣＥＣ４０１ｂ４は、作成されたメッセージをＨＤＭＩ部２１０に引き渡すことで、ＨＤＭＩラインを介して他の機器にＨＤＭＩ−ＣＥＣのメッセージを送信する。また、ＣＥＣ４０１ｂ４は、ＨＤＭＩラインを介して他の機器からＨＤＭＩ−ＣＥＣのメッセージを受け取り、他のサブプログラムやＪａｖａライブラリ４０５の機器制御ライブラリ４０５ｅに通知する。【００７４】
ＡＶ再生部４０１ｂ３は、他のサブプログラムやＪａｖａライブラリ４０５のＪＭＦ４０５ａから、音声のパケットＩＤと映像のパケットＩＤを受け取る。ＡＶ再生部４０１ｂ３は、その受け取った音声のパケットＩＤと映像のパケットＩＤを、ＴＳデコーダ２０７に与える。この結果、ＴＳデコーダ２０７は与えられたパケットＩＤに基づいて、フィルタリングを行い、映像および音声の再生を実現する。【００７５】
ＥＰＧ４０２は、ユーザにテレビ番組の一覧を表示するとともに、ユーザからの入力を受け付ける番組表示部４０２ａと、チャンネルの選局を行う再生部４０２ｂとで構成される。ここで、ＥＰＧはＥｌｅｃｔｒｉｃ  Ｐｒｏｇｒａｍ  Ｇｕｉｄｅの略である。ＥＰＧ４０２は、ＳＴＢ１０４の電源が投入されると、カーネル４０１ａによって起動される。起動されたＥＰＧ４０２の内部では、番組表示部４０２ａと再生部４０２ｂが同時に起動される。番組表示部４０２ａは起動されると、ＳＴＢ１０４の入力部２０１を通して、ユーザからの入力を待つ。ここで、入力部２０１が図６で示されるフロントパネル３００として構成されている場合、ユーザがフロントパネル３００のＥＰＧボタン３０７を押下すると、ＥＰＧボタンの識別子がＣＰＵ２１１に通知される。ＣＰＵ２１１上で動作するサブプログラムであるＥＰＧ４０２の番組表示部４０２ａは、この識別子を受け取ると、番組情報表示データを作成してＨＤＭＩ部２１０に出力する。テレビ１０１は、アンプ１０２を介してその番組情報表示データを受け取り、上述のテレビ番組の一覧である電子番組表を表示する。【００７６】
図８Ａおよび図８Ｂは、テレビ１０１に表示された電子番組表の一例を示す図である。【００７７】
図８Ａに示すように、テレビ１０１には、電子番組表が格子状に表示されている。列５０１には、時刻情報が表示されている。列５０２には、チャンネル名「チャンネル１」と、列５０１の時刻に対応する時間帯に放映される番組の名称とが表示されている。チャンネル名「チャンネル１」では、９：００〜１０：３０に番組「ニュース９」が放映され、１０：３０〜１２：００に番組「映画ＡＡＡ」が放映されることが表されている。列５０３にも、列５０２と同様、チャンネル名「チャンネル２」と、列５０１の時刻に対応する時間帯に放映される番組の名称とが表示されている。９：００〜１１：００に番組「映画ＢＢＢ」が放映され、１１：００〜１２：００に番組「サッカー」が放映されることが表されている。カーソル５３０は、フロントパネル３００の左カーソルボタン３０３と右カーソルボタン３０４が押下されると移動する。図８Ａの状態で、右カーソルボタン３０４が押下されると、図８Ｂに示すように、カーソル５３０は右に移動する。また、図８Ｂの状態で、左カーソルボタン３０３が押下されると、図８Ａに示すように、カーソル５３０は左に移動する。【００７８】
図８Ａの状態で、フロントパネル３００のＯＫボタン３０５が押下されると、番組表示部４０２ａは、「チャンネル１」の識別子を再生部４０２ｂに通知する。図８Ｂの状態で、フロントパネル３００のＯＫボタン３０５が押下されると、番組表示部４０２ａは、「チャンネル２」の識別子を再生部４０２ｂに通知する。【００７９】
また、番組表示部４０２ａは、放送波に重畳された番組情報表示データを、多重分離部２０５を通して定期的に、第２メモリ２０３に記録しておく。一般的に、放送局からの番組情報表示データの取得には時間が掛かる。フロントパネル３００のＥＰＧボタン３０７が押下された時、番組表示部４０２ａは、第２メモリ２０３に予め保存された番組情報表示データを読み出することで、素早く電子番組表を表示することができる。【００８０】
図９は、第２メモリ２０３に記憶されている番組情報表示データの一例を示す図である。【００８１】
番組情報表示データに含まれる各番組情報は表形式で格納されている。列６０１は、チャンネルの識別子である。列６０２は、番組名である。列６０３は番組の放送開始時間、列６０４は放送終了時間である。列６０５は、番組の音声種別を表しており、モノラル音声、ステレオ音声、および５．１チャンネル音声をそれぞれ「モノラル」、「ステレオ」、および「５．１」と表記している。列６０６は、番組の種別を表している。通常番組の種別は空欄で示され、映画番組の種別は「映画」で示され、スポーツ番組の種別は「スポ」で表される。行６１１〜６１４の各行は、それぞれ１つの番組情報を表す。この例では、１つの番組情報は、チャンネルの識別子、番組名、放送開始時間、放送終了時間、番組の音声種別、および番組の種別の組となる。例えば、行６１１は、チャンネル識別子が「１」、番組名が「ニュース９」、放送開始時間が「９：００」、放送終了時間が「１０：３０」、音声種別が「モノラル」、番組の種別が「通常」であることを示す組となっている。【００８２】
再生部４０２ｂは、受け取ったチャンネルの識別子を用いて、そのチャンネルの番組を再生する、すなわちチャンネルを構成する映像と音声を再生する。チャンネルの識別子とチャンネルの関係は、チャンネル情報として、第２メモリ２０３に予め格納されている。【００８３】
図１０は、第２メモリ２０３に格納されているチャンネル情報の一例を示す図である。【００８４】
チャンネル情報は表形式で格納されている。つまり、第２メモリ２０３には、表形式で複数のチャンネル情報を示すチャンネル情報テーブル７００が格納されている。列７０１は、チャンネルの識別子である。列７０２は、チャンネル名である。列７０３はチューニング情報である。ここで、チューニング情報は、周波数や転送レート、符号化率などを含み、受信部２０４に与える値である。列７０４はプログラムナンバーである。プログラムナンバーとは、ＭＰＥＧ２規格で規定されているＰＭＴ（Program Map Table）を識別するための番号である。ＰＭＴに関しては、後述する。行７１１〜７１４の各行は、各チャンネルの識別子、チャンネル名、チューニング情報、およびプログラムナンバーの組となる。行７１１は、識別子が「１」、チャンネル名が「チャンネル１」、チューニング情報が周波数「１５０ＭＨｚ」、プログラムナンバーが「１０１」であることを示す組となっている。再生部４０２ｂは、チャンネルの再生を行うため、受け取ったチャンネルの識別子をそのままサービスマネージャ４０４に引き渡す。【００８５】
また、再生部４０２ｂは、再生中に、ユーザがフロントパネル３００の上カーソルボタン３０１と下カーソルボタン３０２を押下すると、入力部２０１からＣＰＵ２１１を通して、その押下に応じた通知を受け取り、再生している番組のチャンネルを変更する。つまり、ユーザが上カーソルボタン３０１を押下すると、再生部４０２ｂは、現在再生中の番組のチャンネルよりも一つ小さいチャンネル識別子を持つチャンネルの番組を再生し、ユーザが下カーソルボタン３０２を押下すると、現在再生中の番組のチャンネルよりも一つ大きいチャンネル識別子を持つチャンネルの番組を再生する。そして、再生部４０２ｂは、第２メモリ２０３に現在再生中の番組のチャンネル識別子を記録する。【００８６】
図１１Ａ、図１１Ｂおよび図１１Ｃは、第２メモリ２０３に保存しているチャンネル識別子の例を示す図である。【００８７】
図１１Ａに示すように、チャンネル識別子「３」が記憶されている場合、図１０に示すように、そのチャンネル識別子は、チャンネル名「ＴＶ  ３」のチャンネルの番組が再生中であることを示す。図１１Ａの状態で、ユーザが上カーソルボタン３０１を押下すると、再生部４０２ｂは、図１０のチャンネル情報テーブル７００を参照し、表中で現在再生中のチャンネルよりも一つ小さいチャンネル識別子を持つチャンネルであるチャンネル名「チャンネル２」のチャンネルの番組に再生を切り変えるため、サービスマネージャ４０４にチャンネル名「チャンネル２」のチャンネル識別子「２」を引き渡す。同時に、再生部４０２ｂは、第２メモリ２０３に記憶されているチャンネル識別子を「２」に書き換える。図１１Ｂは、チャンネル識別子が書き換えられた状態を表す。また、図１１Ａの状態で、ユーザが下カーソルボタン３０２を押下すると、再生部４０２ｂは、図１０のチャンネル情報テーブル７００を参照し、表中で現在再生中のチャンネルよりも一つ大きいチャンネル識別子を持つチャンネルであるチャンネル名「ＴＶ  Ｊａｐａｎ」のチャンネルの番組に再生を切り変えるため、サービスマネージャ４０４にチャンネル名「ＴＶ  Ｊａｐａｎ」のチャンネル識別子「４」を引き渡す。同時に、再生部４０２ｂは、第２メモリ２０３に記憶されているチャンネル識別子を「４」に書き換える。図１１Ｃは、チャンネル識別子が書き換えられた状態を表す。チャンネル識別子は、第２メモリ２０３に記憶されているので、ＳＴＢ１０４の電源が切られた際も保存されている。【００８８】
更に再生部４０２ｂは、ＳＴＢ１０４の電源が投入された際に、起動されると、第２メモリ２０３に記憶されているチャンネル識別子を読み出す。そして、再生部４０２ｂは、そのチャンネル識別子をサービスマネージャ４０４に引渡す。これにより、ＳＴＢ１０４は、電源投入時に前回の稼動時に再生されていた最後の番組のチャンネルの再生を開始することができる。【００８９】
ＪａｖａＶＭ４０３は、プログラム実行手段として構成され、Ｊａｖａ（登録商標）言語で記述されたプログラムを逐次解析し実行するＪａｖａバーチャルマシンである。Ｊａｖａ言語で記述されたプログラムはバイトコードと呼ばれる、ハードウェアに依存しない中間コードにコンパイルされる。Ｊａｖａバーチャルマシンは、このバイトコードを実行するインタープリタである。また、一部のＪａｖａバーチャルマシンは、バイトコードをＣＰＵ２１１が理解可能な実行形式に翻訳してから、ＣＰＵ２１１に引渡し、実行することも行う。ＪａｖａＶＭ４０３は、カーネル４０１ａに実行するＪａｖａプログラムを指定されて起動される。本実施の形態では、カーネル４０１ａは、実行するＪａｖａプログラムとしてサービスマネージャ４０４を指定する。Ｊａｖａ言語の詳細は、書籍「Ｊａｖａ  Ｌａｎｇｕａｇｅ  Ｓｐｅｃｉｆｉｃａｔｉｏｎ（ＩＳＢＮ  ０−２０１−６３４５１−１）」等の多くの書籍で解説されている。ここでは、その詳細を省略する。また、ＪａｖａＶＭ自体の詳細な動作などは、「Ｊａｖａ  Ｖｉｒｔｕａｌ  Ｍａｃｈｉｎｅ  Ｓｐｅｃｉｆｉｃａｔｉｏｎ（ＩＳＢＮ  ０−２０１−６３４５１―Ｘ）」等の多くの書籍で解説されている。ここでは、その詳細を省略する。【００９０】
サービスマネージャ４０４は、Ｊａｖａ言語で書かれたＪａｖａプログラムであり、ＪａｖａＶＭ４０３によって逐次実行される。サービスマネージャ４０４は、ＪＮＩ（Ｊａｖａ  Ｎａｔｉｖｅ  Ｉｎｔｅｒｆａｃｅ）を通して、Ｊａｖａ言語で記述されていない他のサブプログラムを呼び出したり、または、呼び出されたりすることが可能である。ＪＮＩに関しても、書籍「Ｊａｖａ  Ｎａｔｉｖｅ  Ｉｎｔｅｒｆａｃｅ」等の多くの書籍で解説されている。ここでは、その詳細を省略する。【００９１】
サービスマネージャ４０４は、ＪＮＩを通して、再生部４０２ｂよりチャンネル識別子を受け取る。【００９２】
サービスマネージャ４０４は、最初にＪａｖａライブラリ４０５の中にあるＴｕｎｅｒ４０５ｃに、チャンネル識別子を引き渡し、チューニングを依頼する。Ｔｕｎｅｒ４０５ｃは、第２メモリ２０３が記憶するチャンネル情報テーブル７００を参照し、チューニング情報を獲得する。今、サービスマネージャ４０４がチャンネル識別子「２」をＴｕｎｅｒ４０５ｃに引き渡すと、Ｔｕｎｅｒ４０５ｃは、図１０に示すチャンネル情報テーブル７００の行７１２を参照して、対応するチューニング情報「１５６ＭＨｚ」を獲得する。Ｔｕｎｅｒ４０５ｃは、ＯＳ４０１のライブラリ４０１ｂのチューナ４０１ｂ１を通して、受信部２０４にチューニング情報を引き渡す。受信部２０４は与えられたチューニング情報に従って放送局から送信されてきた信号を復調し、多重分離部２０５に引き渡す。【００９３】
次に、サービスマネージャ４０４は、Ｊａｖａライブラリ４０５の中にあるＣＡ４０５ｄにデスクランブルを依頼する。ＣＡ４０５ｄは、ＯＳ４０１のライブラリ４０１ｂの限定解除部４０１ｂ２を通して復号に必要な情報をデスクランブラ２０６に与える。デスクランブラ２０６は、与えられた情報を元に、受信部２０４から与えられた信号を復号しＴＳデコーダ２０７に引き渡す。【００９４】
次に、サービスマネージャ４０４は、Ｊａｖａライブラリ４０５の中にあるＪＭＦ４０５ａにチャンネル識別子を与え、映像および音声の再生を依頼する。【００９５】
まず、ＪＭＦ４０５ａは、再生すべき映像と音声を特定するためのパケットＩＤをＰＡＴおよびＰＭＴから取得する。ＰＡＴやＰＭＴは、ＭＰＥＧ２規格で規定されている、ＭＰＥＧ２トランスポートストリーム内の番組構成を表現するテーブルであり、ＭＰＥＧ２トランスポートストリームに含まれるパケットのペイロードに埋め込まれて、音声や映像と共に送信されるものである。ＰＡＴは、Ｐｒｏｇｒａｍ  Ａｓｓｏｃｉａｔｉｏｎ  Ｔａｂｌｅの略で、パケットＩＤ「０」のパケットに格納され送信されている。ＪＭＦ４０５ａは、ＰＡＴを取得するため、ＯＳ４０１のライブラリ４０１ｂを通して、多重分離部２０５にパケットＩＤ「０」を指定する。多重分離部２０５がパケットＩＤ「０」でフィルタリングを行い、ＣＰＵ２１１に引き渡すことで、ＪＭＦ４０５ａは、ＰＡＴのパケットを収集する。【００９６】
図１２は、収集したＰＡＴの一例を模式的に表した図である。【００９７】
列９０１は、プログラムナンバーである。列９０２は、パケットＩＤである。列９０２のパケットＩＤはＰＭＴを取得するために用いられる。行９１１〜９１３は、チャンネルのプログラムナンバーとそのプログラムナンバーに対応するパケットＩＤとの組である。ここでは、３つのチャンネルが定義されている。行９１１は、プログラムナンバー「１０１」とパケットＩＤ「５０１」の組が定義されている。今、ＪＭＦ４０５ａに与えられたチャンネル識別子が「２」とすると、ＪＭＦ４０５ａは、図１２のＰＡＴの行９１２を参照して、対応するプログラムナンバー「１０２」を獲得し、次に、図１２のＰＡＴの行９１２を参照し、プログラムナンバー「１０２」に対応するパケットＩＤ「５０２」を獲得する。【００９８】
ＰＭＴは、Ｐｒｏｇｒａｍ  Ｍａｐ  Ｔａｂｌｅの略で、ＰＡＴで規定されたパケットＩＤのパケットに格納され送信されている。ＪＭＦ４０５ａは、ＰＭＴを取得するため、ＯＳ４０１のライブラリ４０１ｂを通して、多重分離部２０５にパケットＩＤを指定する。ここで、指定するパケットＩＤは「５０２」とする。多重分離部２０５がパケットＩＤ「５０２」でフィルタリングを行い、ＣＰＵ２１１に引き渡すことで、ＪＭＦ４０５ａは、ＰＭＴのパケットを収集する。【００９９】
図１３は、収集したＰＭＴの一例を模式的に表した図である。【０１００】
列１００１は、ストリーム種別であり、列１００２は、パケットＩＤである。列１００２で指定されるパケットＩＤのパケットには、ストリーム種別で指定された情報がペイロードに格納され送信されている。列１００３は補足情報である。行１０１１〜１０１４は、それぞれエレメンタリーストリームのパケットＩＤと、送信している情報の種別との組である。行１０１１は、ストリーム種別「音声」とパケットＩＤ「５０１１」の組であり、パケットＩＤ「５０１１」のペイロードには音声が格納されていることを表す。ＪＭＦ４０５ａは、ＰＭＴから再生する映像と音声のパケットＩＤを獲得する。ＪＭＦ４０５ａは、図１３に示すＰＭＴを参照して、行１０１１から音声のパケットＩＤ「５０１１」を獲得し、行１０１２から映像のパケットＩＤ「５０１２」を獲得する。【０１０１】
次に、ＪＭＦ４０５ａは、ＯＳ４０１のライブラリ４０１ｂのＡＶ再生部４０１ｂ３に、獲得した音声のパケットＩＤと映像のパケットＩＤを引き渡す。ＡＶ再生部４０１ｂ３は、受け取った音声のパケットＩＤと映像のパケットＩＤを、ＴＳデコーダ２０７に与える。ＴＳデコーダ２０７は与えられたパケットＩＤでフィルタリングを行う。ここでは、ＪＭＦ４０５ａは、パケットＩＤ「５０１１」のパケットを音声出力部２０８およびＨＤＭＩ部２１０に引き渡し、パケットＩＤ「５０１２」のパケットを映像出力部２０８およびＨＤＭＩ部２１０に引き渡す。音声出力部２０８は、与えられたパケットを適宜変換して（例えばデジタル−アナログ変換）出力する。映像出力部２０８は、与えられたパケットを適宜変換して（例えばデジタル−アナログ変換）出力する。ＨＤＭＩ部２１０は、ＨＤＭＩ仕様に基づき、受け取った音声データおよび映像データのパケットデータを変換して出力する。【０１０２】
最後にサービスマネージャ４０４は、Ｊａｖａライブラリ４０５の中にあるＡＭ４０５ｂにチャンネル識別子を与え、データ放送再生を依頼する。ここで、データ放送再生とは、ＭＰＥＧ２トランスポートストリームに含まれるＪａｖａプログラムを抽出し、ＪａｖａＶＭ４０３に実行させることである。ＭＰＥＧ２トランスポートストリームにＪａｖａプログラムを埋め込む方法は、ＭＰＥＧ規格書  ＩＳＯ／ＩＥＣ１３８１８−６に記述されたＤＳＭＣＣという方式を用いる。ここではＤＳＭＣＣの詳細な説明は省略する。ＤＳＭＣＣ方式は、ＭＰＥＧ２トランスポートストリームのパケットの中に、コンピュータで使用されているディレクトリやファイルで構成されるファイルシステムをエンコードする方法を規定している。また、実行するＪａｖａプログラムの情報はＡＩＴと呼ばれる形式で、ＭＰＥＧ２トランスポートストリームのパケットの中に埋め込まれ送信されている。ＡＩＴは、ＤＶＢ−ＭＨＰ規格（正式には、ＥＴＳＩ  ＴＳ  １０１  ８１２  ＤＶＢ−ＭＨＰ仕様Ｖ１．０．２）の１０章に定義されており、Ａｐｐｌｉｃａｔｉｏｎ  Ｉｎｆｏｒｍａｔｉｏｎ  Ｔａｂｌｅの略である。【０１０３】
ＡＭ４０５ｂは、まず、ＡＩＴを獲得するため、ＪＭＦ４０５ａと同様に、ＰＡＴおよびＰＭＴを取得し、ＡＩＴが格納されているパケットのパケットＩＤを獲得する。今、与えられたチャンネル識別子が「２」で、図１２に示すＰＡＴと図１３に示すＰＭＴが送信されている場合、ＡＭ４０５ｂは、ＪＭＦ４０５ａと同様の手順で、図１３のＰＭＴを獲得する。ＡＭ４０５ｂは、ＰＭＴから、ストリーム種別「データ」および補足情報「ＡＩＴ」に該当するエレメンタリーストリームのパケットＩＤを抽出する。例えば、ＡＭ４０５ｂは、図１３のＰＭＴを参照して、行１０１３のエレメンタリーストリームのパケットＩＤ「５０１３」を獲得する。【０１０４】
ＡＭ４０５ｂは、ＯＳ４０１のライブラリ４０１ｂを通して多重分離部２０５にＡＩＴのパケットＩＤを与える。多重分離部２０５は、与えられたパケットＩＤでフィルタリングを行い、ＣＰＵ２１１に引き渡す。この結果、ＡＭ４０５ｂは、ＡＩＴのパケットを収集することができる。【０１０５】
図１４は、収集したＡＩＴの一例を模式的に表した図である。【０１０６】
列１１０１はＪａｖａプログラムの識別子である。列１１０２はＪａｖａプログラムの制御情報である。制御情報には「ａｕｔｏｓｔａｒｔ」、「ｐｒｅｓｅｎｔ」および「ｋｉｌｌ」などがある。「ａｕｔｏｓｔａｒｔ」は、即時にＳＴＢ１０４がこのプログラムを自動的に実行することを意味し、「ｐｒｅｓｅｎｔ」は、自動実行しないことを意味し、「ｋｉｌｌ」は、プログラムを停止することを意味する。列１１０３は、ＤＳＭＣＣ方式でＪａｖａプログラムを含んでいるパケットＩＤを抽出するためのＤＳＭＣＣ識別子である。列１１０４はＪａｖａプログラムのプログラム名である。行１１１１と１１１２は、Ｊａｖａプログラムの情報の組である。行１１１１で定義されるＪａｖａプログラムは、識別子「３０１」、制御情報「ａｕｔｏｓｔａｒｔ」、ＤＳＭＣＣ識別子「１」、およびプログラム名「ａ／ＴｏｐＸｌｅｔ」の組である。行１１１２で定義されるＪａｖａプログラムは、識別子「３０２」、制御情報「ｐｒｅｓｅｎｔ」、ＤＳＭＣＣ識別子「１」、およびプログラム名「ｂ／ＧａｍｅＸｌｅｔ」の組である。ここで２つのＪａｖａプログラムは同じＤＳＭＣＣ識別子を持つが、これは１つのＤＳＭＣＣ方式でエンコードされたファイルシステム内に２つのＪａｖａプログラムが含まれていることを表す。ここでは、Ｊａｖａプログラムに対して４つの情報しか規定されていないが、実際にはより多くの情報が定義される（ＤＶＢ−ＭＨＰ規格参照）。【０１０７】
ＡＭ４０５ｂは、ＡＩＴの中から「ａｕｔｏｓｔａｒｔ」のＪａｖａプログラムを見つけ出し、対応するＤＳＭＣＣ識別子及びＪａｖａプログラム名を抽出する。ＡＭ４０５ｂは、例えば図１４に示すＡＩＴを参照して、行１１１１のＪａｖａプログラムを抽出し、ＤＳＭＣＣ識別子「１」及びＪａｖａプログラム名「ａ／ＴｏｐＸｌｅｔ」を獲得する。【０１０８】
次に、ＡＭ４０５ｂは、ＡＩＴから取得したＤＳＭＣＣ識別子を用いて、ＪａｖａプログラムをＤＳＭＣＣ方式で格納しているパケットのパケットＩＤをＰＭＴから獲得する。具体的には、ＡＭ４０５ｂは、ＰＭＴの中で、ストリーム種別が「データ」で、補足情報のＤＳＭＣＣ識別子が上述の取得したＤＳＭＣＣ識別子に合致するエレメンタリーストリームのパケットＩＤを取得する。【０１０９】
今、ＡＩＴから取得したＤＳＭＣＣ識別子が「１」であり、ＰＭＴが図１３に示すＰＭＴである場合、ＡＭ４０５ｂは、ＤＳＭＣＣ識別子が「１」である行１０１４のエレメンタリーストリームのパケットＩＤ「５０１４」を取り出す。【０１１０】
ＡＭ４０５ｂは、ＯＳ４０１のライブラリ４０１ｂを通して多重分離部２０５に、ＤＳＭＣＣ方式でデータが埋めこめられたパケットのパケットＩＤを指定する。ここでは、ＡＭ４０５ｂは、パケットＩＤ「５０１４」を指定する。多重分離部２０５は、与えられたパケットＩＤでフィルタリングを行い、パケットをＣＰＵ２１１に引き渡す。この結果、ＡＭ４０５ｂは、必要なパケットを収集することができる。ＡＭ４０５ｂは、収集したパケットから、ＤＳＭＣＣ方式に従ってファイルシステムを復元し、第１メモリ２０２あるいは第２メモリ２０３に保存する。ファイルシステム等のデータを取り出して第１メモリ２０２あるいは第２メモリ２０３に保存することを以降、ダウンロードと呼ぶ。【０１１１】
図１５は、ダウンロードしたファイルシステムの一例を示す図である。なお、図１５中、丸はディレクトリを表し、四角はファイルを表す。【０１１２】
このファイルシステムは、ルートディレクトリ１２０１と、「ａ」で示されるディレクトリ１２０２と、「ｂ」で示されるディレクトリ１２０３と、「ＴｏｐＸｌｅｔ．ｃｌａｓｓ」で示されるファイル１２０４と、「ＧａｍｅＸｌｅｔ．ｃｌａｓｓ」で示されるファイル１２０５とを有する。【０１１３】
ここでは、ＭＰＥＧ２トランスポートストリームからファイルシステムをダウンロードする例を記載したが、ＯＣＡＰ仕様では、ＩＰネットワークを用いたダウンロードなども規定している。また、ＡＩＴではなくＸＡＩＴと呼ばれる情報を用いてファイルシステムの存在位置を特定し、ファイルシステムをダウンロードする方法も規定されている。【０１１４】
次にＡＭ４０５ｂは、第１メモリ２０２あるいは第２メモリ２０３にダウンロードしたファイルシステム中から実行するＪａｖａプログラムをＪａｖａＶＭ４０３に引き渡す。今、実行するＪａｖａプログラム名が「ａ／ＴｏｐＸｌｅｔ」とすると、Ｊａｖａプログラム名の最後に「．ｃｌａｓｓ」を付加したファイル「ａ／ＴｏｐＸｌｅｔ．ｃｌａｓｓ」が実行すべきファイルとなる。「／」はディレクトリやファイル名の区切りである。図１５に示すように、ファイル１２０４が実行すべきＪａｖａプログラムである。次にＡＭ４０５ｂは、ファイル１２０４をＪａｖａＶＭ４０３に引き渡す。【０１１５】
ＪａｖａＶＭ４０３は、引き渡されたＪａｖａプログラムを実行する。【０１１６】
サービスマネージャ４０４は、他のチャンネル識別子を受け取ると、Ｊａｖａライブラリ４０５に含まれる各ライブラリを通して再生している映像および音声と実行しているＪａｖａプログラムとを、同じくＪａｖａライブラリ４０５に含まれる各ライブラリを通して停止し、新たに受け取ったチャンネル識別子に基づいて、映像および音声の再生及びＪａｖａプログラムの実行を行う。【０１１７】
また、サービスマネージャ４０４は、再生部４０２ｂだけでなく、ＪａｖａＶＭ４０３上で実行されるＪａｖａプログラムからチャンネル識別子を受け取る機能も備える。具体的には、サービスマネージャ４０４は、チャンネル識別子を受け取るためのＪａｖａ言語のクラス及びそのメソッドを提供する。サービスマネージャ４０４は、チャンネル識別子を受け取ると、Ｊａｖａライブラリ４０５に含まれる各ライブラリを通して現在再生している映像および音声と実行しているＪａｖａプログラムとを、同じくＪａｖａライブラリ４０５に含まれる各ライブラリを通して停止し、その後、新たに受け取ったチャンネル識別子に基づいて、新しい映像および音声の再生及びＪａｖａプログラムの実行を行う。【０１１８】
Ｊａｖａライブラリ４０５は、第２メモリ２０３に格納されている複数のＪａｖａライブラリの集合である。本実施の形態では、ここでは、Ｊａｖａライブラリ４０５は、ＪＭＦ４０５ａ、ＡＭ４０５ｂ、Ｔｕｎｅｒ４０５ｃ、ＣＡ４０５ｄ、機器制御ライブラリ４０５ｅ、再生Ｌｉｂ４０５ｆ、ＩＯ４０５ｇ、ＡＷＴ４０５ｈ等を含んでいる。【０１１９】
ＪＭＦ４０５ａ、ＡＭ４０５ｂ、Ｔｕｎｅｒ４０５ｃ、およびＣＡ４０５ｄの機能は、既に記述されているので省略する。【０１２０】
再生Ｌｉｂ４０５ｆは、第２メモリ２０３が記憶している、現在再生しているチャンネルの識別子をＪａｖａプログラムに渡すためのＪａｖａ言語のクラスおよびメソッド（以下Ｊａｖａ  ＡＰＩと記述）を提供する。このＪａｖａ  ＡＰＩを利用することで、Ｊａｖａプログラムは、現在再生中のチャンネルを知ることができる。なお、ＡＰＩは、Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｇｒａｍ  Ｉｎｔｅｒｆａｃｅのことである。【０１２１】
ＩＯ４０５ｇは、Ｊａｖａプログラムが第２メモリ２０３にデータを書き込むためのＪａｖａ  ＡＰＩ、あるいは、その書き込んだデータを第２メモリ２０３から読み込むためのＪａｖａ  ＡＰＩをＪａｖａプログラムに提供する。このＡＰＩを利用することで、Ｊａｖａプログラムは、任意のデータを第２メモリ２０３に保存することができる。この保存されたデータはＳＴＢ１０４の電源がオフになっても消えないので、Ｊａｖａプログラムは、ＳＴＢ１０４の電源が投入された後、再びそのデータを読み込むことができる。【０１２２】
ＡＷＴ４０５ｈは、Ｊａｖａプログラムが描画を行ったり、入力部２０１からのキー入力通知を受け取るためのＪａｖａ  ＡＰＩを提供する。具体的には、ＡＷＴ４０５ｈは、「Ｔｈｅ  Ｊａｖａ  ｃｌａｓｓ  Ｌｉｂｒａｒｉｅｓ  Ｓｅｃｏｎｄ  Ｅｄｉｔｉｏｎ，Ｖｏｌｕｍｅ  ２」（ＩＳＢＮ０−２０１−３１００３−１）で既定されるｊａｖａ．ａｗｔパッケージ、ｊａｖａ．ａｗｔ．ｅｖｅｎｔパッケージ及びその他のｊａｖａ．ａｗｔのサブパッケージが相当する。ここでは、詳細な説明を省略する。【０１２３】
ＳＩ４０５ｉは、Ｊａｖａプログラムがチャンネル情報や番組情報表示データを取得するＪａｖａ  ＡＰＩを提供する。具体的には、Ｊａｖａ  ＴＶ仕様などが存在する。また、生のバイナリーデータを放送中のＭＰＥＧ２トランスポートストリームから取得するＭＰＥＧセクションフィルターＡＰＩがＯＣＡＰ仕様の中で定義されており、送信されてきた独自の番組情報表示データをＪａｖａアプリケーションプログラム（以下、Ｊａｖａアプリケーションまたはアプリケーションという）が理解して取り扱うことも出来る。【０１２４】
機器制御ライブラリ４０５ｅは、ＯＳ４０１のライブラリ４０１ｂのＣＥＣ４０１ｂ４を通して、ＨＤＭＩ部２１０を制御し、ＨＤＭＩ部２１０をインターフェースとして用い、ＳＴＢ１０４に接続されている他の機器の制御などを行う。【０１２５】
図１６は、機器制御ライブラリ４０５ｅの内部構成の一例を表すブロック図である。【０１２６】
機器制御ライブラリ４０５ｅは、接続機器管理部１３０１、電源制御部１３０２、音場制御部１３０３、低レベル送信部１３０４、および低レベル受信部１３０５を備える。なお、ここで機器制御ライブラリ４０５ｅは、ＳＴＢ１０４に接続されたアンプ１０２やテレビ１０１などの接続機器を制御する他の機能を含んでいても良い。また、本実施の形態では、機器制御ライブラリ４０５ｅおよびＣＥＣ４０１ｂ４から通信手段および変換手段が構成されている。つまり、機器制御ライブラリ４０５ｅおよびＣＥＣ４０１ｂ４は、Ｊａｖａアプリケーションによってテレビ１０１およびアンプ１０２が制御されるように、Ｊａｖａアプリケーションによって扱われるデータと、ＣＥＣ４０１ｂ４によって通信されるデータとの間の変換を行う。【０１２７】
接続機器管理部１３０１は、ＳＴＢ１０４のＨＤＭＩ部２１０にＨＤＭＩラインで接続されているアンプ１０２やテレビ１０１などの機器を管理する。ＨＤＭＩ対応機器は、ＨＤＭＩラインに接続されると、ＨＤＭＩ−ＣＥＣ規格に基づき物理アドレスが割り当てられる。ＨＤＭＩ対応機器でＨＤＭＩ−ＣＥＣに対応しているアンプ１０２やテレビ１０１などの機器は、更にＨＤＭＩ−ＣＥＣ規格に基づき論理アドレスが割り当てられる。ＨＤＭＩ−ＣＥＣメッセージは、この論理アドレスを用いて送信先を指定する。論理アドレスにより機器の種別、例えば、テレビやＤＶＤプレーヤなど、を特定できるように仕様が規定されている。接続機器管理部１３０１は、接続されているＨＤＭＩ対応機器の物理アドレスおよび論理アドレス、つまりアンプ１０２およびテレビ１０１の物理アドレスおよび論理アドレスを機器管理情報として第１メモリ２０２に格納する。【０１２８】
図１７は、図２Ｂに示された機器接続が行われている場合に、ＳＴＢ１０４の接続機器管理部１３０１が、第１メモリ２０２に格納している機器管理情報の一例を示す図である。【０１２９】
機器管理情報は列１４０１と列１４０２を有し、列１４０１は、接続されている機器の物理アドレスを示し、列１４０２は、接続されている機器の論理アドレスを示す。ここでは、テレビ１０１およびアンプ１０２に対応する２つの情報が機器管理情報として保存されている。行１４１１は、テレビ１０１の情報を表し、この例では、テレビ１０１の物理アドレス「００００」を示すとともに、ＨＤＭＩ−ＣＥＣ規格における定義に基づきテレビを表す「０」を論理アドレスとして示している。行１４１２は、アンプ１０２の情報を表し、この例では、アンプ１０２の物理アドレス「１０００」を示すとともに、ＨＤＭＩ−ＣＥＣ規格における定義に基づきＡｕｄｉｏ  ｓｙｓｔｅｍを表す「５」を論理アドレスとして示している。【０１３０】
接続機器管理部１３０１は、ダウンロードしたＪａｖａアプリケーションに対して、ＡＰＩ（Application Program Interface）を提供する。このＡＰＩによって、接続されている機器の物理アドレス、論理アドレス、および状態を検索することができる。これにより、Ｊａｖａアプリケーションは、接続されているＨＤＭＩ対応機器の情報を獲得することが出来る。【０１３１】
図１８は、接続機器管理部１３０１に備えられるＡＰＩの例を示す図である。【０１３２】
図１８の（１）に示すｇｅｔＤｅｖｉｃｅｓ（）メソッドは、接続されている機器の数に対応するＨＤＭＩＤｅｖｉｃｅオブジェクトを配列で返すＪａｖａ  ＡＰＩである。ここで、１つのＨＤＭＩＤｅｖｉｃｅオブジェクトは、１つの接続機器を表す。ＨＤＭＩＤｅｖｉｃｅオブジェクトは、２つのメソッドを有する。図１８の（２）に示す、その２つのメソッドのうちの１つであるｇｅｔＰｈｙｓｉｃａｌＤｅｖｉｃｅＮｕｍｂｅｒ（）メソッドは、ＨＤＭＩＤｅｖｉｃｅの物理アドレスを取得するＪａｖａ  ＡＰＩである。図１８の（３）に示す、その２つのメソッドのうちの他の１つであるｇｅｔＬｏｇｉｃａｌＤｅｖｉｃｅＮｕｍｂｅｒ（）メソッドは、ＨＤＭＩＤｅｖｉｃｅの論理アドレスを取得するＪａｖａ  ＡＰＩである。【０１３３】
電源制御部１３０２は、ＳＴＢ１０４のＨＤＭＩ部２１０にＨＤＭＩラインで接続されている機器に対して、電源をＯＮまたはＯＦＦするためのＨＤＭＩ−ＣＥＣメッセージを送信する。電源をＯＮするには、ＨＤＭＩ―ＣＥＣ仕様が規定するメッセージ＜Ｕｓｅｒ  Ｃｏｎｔｒｏｌ Ｐｒｅｓｓｅｄ＞[“Ｐｏｗｅｒ”]を接続されている機器に送信する。このメッセージを送信することで、テレビ１０１の電源をＯＮにすることができる。実際には、電源制御部１３０２は、このメッセージを送信する前に、接続されている機器の状態をメッセージの送受信を行うことで確認し、電源がＯＮになっていなければ、電源ＯＮのメッセージを送信する。また、電源制御部１３０２は、電源ＯＮのメッセージを送信した後、接続機器の電源がＯＮになったことを示すメッセージを受け取ることで、接続機器の電源が投入されたことを確認する。【０１３４】
電源制御部１３０２は、ダウンロードしたＪａｖａアプリケーションに対して、ＡＰＩを提供する。ここでは４つのＡＰＩの例を取り上げる。【０１３５】
図１９は、電源制御部１３０２に備えられるＡＰＩの例を示す図である。【０１３６】
図１９の（１）に示すＡｌｌＤｅｖｉｃｅＰｏｗｅｒＯｎ（）は、接続されている全ての機器の電源をＯＮするＪａｖａ  ＡＰＩである。成功するとｔｒｕｅが返り、失敗するとｆａｌｓｅが返る。Ｊａｖａアプリケーションが、このＡＰＩを呼び出すことで、接続されている全てのＨＤＭＩ対応機器の電源をＯＮにすることができる。図２Ｂに示すように、ＳＴＢ１０４上で実行されているＪａｖａアプリケーションがこのＡＰＩを呼び出すと、テレビ１０１およびアンプ１０２の２つの機器の電源を１度に投入することが出来る。【０１３７】
電源制御部１３０２は、接続機器管理部１３０１を参照して、接続されているＨＤＭＩ対応機器に対してそれぞれメッセージを送信するか、全機器に一斉にメッセージを送信するｂｒｏａｄｃａｓｔメッセージ送信を行う。【０１３８】
図１９の（２）に示すＤｅｖｉｃｅＰｏｗｅｒＯｎ（）は、特定の機器の電源をＯＮするＪａｖａ  ＡＰＩである。引数には、機器を表現するＨＤＭＩＤｅｖｉｃｅオブジェクトを与える。あるいは、機器を特定するための情報（機器の物理アドレスや論理アドレス等）を、このＡＰＩに与えてもよい。このＡＰＩを呼び出すことで、指定した機器の電源をＯＮすることができる。【０１３９】
図１９の（３）に示すＡｌｌＤｅｖｉｃｅＰｏｗｅｒＯｆｆ（）は、全ての機器の電源をＯＦＦするＪａｖａ  ＡＰＩである。Ｊａｖａアプリケーションは、このＡＰＩを呼び出すことで、接続されている全ての機器の電源をＯＦＦすることができる。【０１４０】
図１９の（４）に示すＤｅｖｉｃｅＰｏｗｅｒＯｆｆ（）は、特定の機器の電源をＯＦＦするＪａｖａ  ＡＰＩである。引数には、機器を表現するＨＤＭＩＤｅｖｉｃｅオブジェクトを与える。あるいは、機器を特定するための情報（機器の物理アドレスや論理アドレス等）を、このＡＰＩに与えてもよい。このＡＰＩを呼び出すことで、指定した機器の電源をＯＦＦすることができる。【０１４１】
音場制御部１３０３は、テレビ１０１とアンプ１０２にＨＤＭＩ−ＣＥＣメッセージを送信し、シアターモードを実現する。シアターモードは、テレビ１０１の音声出力がミュートされ、かつ、アンプ１０２を介してスピーカ１０３からＳＴＢ１０４の音声が出力されている状態である。【０１４２】
図２０は、音場制御部１３０３が音声出力状態をシアターモードに切り替える処理の流れを示す流れ図である。【０１４３】
音場制御部１３０３は、テレビ１０１に対して、テレビ１０１の音声出力をミュートするように要求するＨＤＭＩ−ＣＥＣコマンドを送信する（ステップＳ１５０４）。この場合、ＨＤＭＩ−ＣＥＣコマンドはアンプ１０２を介してテレビ１０１に伝送されることになるが、これはＨＤＭＩ−ＣＥＣ仕様に従い行われる。【０１４４】
また、音場制御部１３０３は、アンプ１０２に対して、ＳＴＢ１０４から受信した音声をスピーカ１０３へ出力させることを伝えるＨＤＭＩ−ＣＥＣコマンドを送信する（ステップＳ１５０５）。【０１４５】
テレビ１０１は、ステップＳ１５０４で送信されたＨＤＭＩ−ＣＥＣコマンドをＨＤＭＩ−ＣＥＣ通信部１０１ｄで受信して、テレビ１０１からの出力音声をミュートする（ステップＳ１５０６）。【０１４６】
アンプ１０２は、ステップ１１０５で送信されたＨＤＭＩ−ＣＥＣコマンドをＨＤＭＩ−ＣＥＣ通信部１０２ｃで受信して、ＳＴＢ１０４から受信した音声をスピーカ１０３へ出力する（ステップＳ１５０７）。ここで、ＳＴＢ１０４から出力される音声がモノラルであれば、アンプ１０２は、モノラルとしてその音声を出力する。アンプ１０２は、音声がステレオであれば、ステレオとしてその音声を出力し、音声が５．１チャンネルであれば、５．１チャンネルとしてその音声を出力する。また、アンプ１０２は、ステレオの音声を擬似的に５．１チャンネル音声に変換して出力したり、その逆に、５．１チャンネルの音声を擬似的にステレオの音声に変換して出力してもよい。【０１４７】
以上のステップＳ１５０４〜Ｓ１５０７の処理により、音場制御部１３０３は音声出力の状態をシアターモードに切り替える。【０１４８】
また、逆に、音場制御部１３０３は、上述と同様の方法により、シアターモードを終了して、アンプ１０２によるスピーカ１０３からの出力音声を停止し、テレビ１０１から音声出力させるように、音声出力状態を切り替える。【０１４９】
また、音場制御部１３０３は、スピーカ１０３における音声再生方法を制御することが出来る。例えば、音場制御部１３０３は、スピーカ１０３によって形成される音場モードを、スポーツモードやシネマモードやドラマモードや音楽モードなどの視聴しているコンテンツに最適な音場モードに設定することが出来る。ここで、音場制御は、より具体的には、反射音の大きさや、数、残響音の大きさ、残響時間などの残響特性パラメータと、周波数特性パラメータとに基づいた音声信号処理を行うことであり、従来の技術により実現可能である。【０１５０】
音場制御部１３０３は、ダウンロードしたＪａｖａアプリケーションに対して、ＡＰＩを提供する。【０１５１】
図２１は、音場制御部１３０３に備えられるＡＰＩの例を示す図である。【０１５２】
図２１の（１）に示すＨｏｍｅＴｈｅａｔｅｒＯＮ（）メソッドは、シアターモードをＯＮにするＪａｖａ  ＡＰＩである。Ｊａｖａアプリケーションは、このＡＰＩを呼び出すことで、シアターモードをＯＮ、つまりテレビ１０１の音声出力を停止し、アンプによる音声出力を開始することができる。【０１５３】
図２１の（２）に示すＨｏｍｅＴｈｅａｔｅｒＯＦＦ（）メソッドは、シアターモードをＯＦＦにするＪａｖａ  ＡＰＩである。Ｊａｖａアプリケーションは、このＡＰＩを呼び出すことで、シアターモードをＯＦＦにすることができる。【０１５４】
図２１の（３）に示すｓｅｔＰｌａｙＭｏｄｅ（）メソッドは、再生チャンネル数（再生モード）を指定するＪａｖａ  ＡＰＩである。Ｊａｖａアプリケーションは、引数に対応するモードを指定すると、音源に関係なく、音声の再生モードを、指定されたモード、例えばモノラル再生、ステレオ再生、または５．１チャンネル再生に切り替えることが出来る。例えば、音源が５．１チャンネルであっても、Ｊａｖａアプリケーションは、ステレオ再生を行うことが出来る。【０１５５】
図２１の（４）に示すｓｅｔＳｏｕｎｄＭｏｄｅ（）メソッドは、音場モードを設定するＪａｖａ  ＡＰＩである。Ｊａｖａアプリケーションは、このＡＰＩの引数に所望の音場（音場モード）を与えることで、引数に応じた音場モードを指示するＨＤＭＩ−ＣＥＣメッセージをアンプ１０２に送信する。これにより、Ｊａｖａアプリケーションは、アンプ１０２に対してスポーツモードやシネマモードやドラマモードや音楽モードなどの音場モードの設定を実施することが出来る。【０１５６】
低レベル送信部１３０４は、ダウンロードしたＪａｖａアプリケーションに対して、そのアプリケーションがＨＤＭＩ−ＣＥＣメッセージをバイナリー形式で指定して送信するためのＡＰＩを提供する。【０１５７】
図２２は、低レベル送信部１３０４に備えられるＡＰＩの例を示す図である。【０１５８】
図２２の（１）に示すｓｅｎｄ（）メソッドは、データを送信するＪａｖａ  ＡＰＩである。Ｊａｖａアプリケーションが、メッセージであるバイナリー形式のデータ（バイナリーデータ）をこのＡＰＩの引数に与えると、低レベル送信部１３０４は、そのバイナリーデータを送信する。バイナリーデータは、送信先の論理アドレス、またはＢｒｏａｄｃａｓｔ送信などの情報を含む。このバイナリーデータのフォーマットは、ＨＤＭＩ−ＣＥＣ仕様で定義されたコマンドであっても良いし、ＨＤＭＩ−ＣＥＣ仕様で定義されたベンダー独自コマンドのフォーマットに基づき、必要とする情報を含んだフォーマットであってもよい。【０１５９】
図２２の（２）に示すｓｅｎｄ（）メソッドは、特定の機器に対してデータを送信するＪａｖａ  ＡＰＩである。Ｊａｖａアプリケーションは、メッセージの送信先となる機器を表すＨＤＭＩＤｅｖｉｃｅオブジェクトと送信メッセージをこのＡＰＩの引数に与える。【０１６０】
低レベル受信部１３０５は、ダウンロードしたＪａｖａアプリケーションに対して、そのアプリケーションがＨＤＭＩ−ＣＥＣメッセージをバイナリー形式で受け取るためのＡＰＩを提供する。低レベル受信部１３０５は、ダウンロードしたＪａｖａアプリケーションから、予め、受信したＨＤＭＩ−ＣＥＣメッセージを配信するためのリスナー（コールバック関数）を受け付ける。【０１６１】
図２３は、低レベル受信部１３０５に備えられるＡＰＩの例を示す図である。【０１６２】
図２３の（１）に示すａｄｄＬｉｓｔｅｎｅｒ（）メソッドは、リスナーを受け付けるためのＪａｖａ  ＡＰＩである。低レベル受信部１３０５は、ＨＤＭＩ−ＣＥＣメッセージを受信すると、Ｊａｖａアプリケーションが登録したリスナーに配信する。【０１６３】
図２３の（２）に示すｒｅｃｅｉｖｅ（）メソッドは、リスナーに定義された受信メッセージを受け取るためのＪａｖａ  ＡＰＩである。ここで、低レベル受信部１３０５は、リスナーの受付と同時に、メッセージ配信の条件の指定を受け付けても良い。例えば、低レベル受信部１３０５は、物理アドレスや論理アドレス等の指定とメッセージ配信の条件の指定を受付け、その条件に合致するメッセージのみを、Ｊａｖａアプリケーションが登録したリスナーに配信する。【０１６４】
図２３の（３）に示すａｄｄＬｉｓｔｅｎｅｒメソッドは、メッセージ配信の条件とリスナーを受け付けるためのＪａｖａ  ＡＰＩである。低レベル受信部１３０５は、このＡＰＩによって、リスナーとメッセージ配信の条件を表すバイトデータとを受け取る。【０１６５】
次に、ダウンロードされたＪａｖａアプリケーションが、機器制御ライブラリ４０５ｅを用いて、図２Ｂで構成されるホームシアターシステムを制御する例を説明する。【０１６６】
Ｊａｖａアプリケーションは、Ｊａｖａライブラリ４０５やサービスマネージャ４０４の機能を利用して、様々なサービスをＳＴＢ１０４上で実現することが出来る。ダウンロードしたＪａｖａアプリケーションは、図８Ａまたは図８Ｂで示した電子番組表の表示も、ダウンロードＥＰＧアプリケーションとして実行することが出来る。ダウンロードＥＰＧアプリケーションは、ＳＩ４０５ｉを用いて番組情報表示データを取得し、ＡＷＴ４０５ｈを用いてディスプレイ上に電子番組表を表示することが出来る。また、ダウンロードＥＰＧアプリケーションは、ユーザからのキー入力を、同じくＡＷＴ４０５ｈを通して受け取り、電子番組表上のカーソル移動などを実行することができる。番組表上でユーザが番組を選択すると、ダウンロードＥＰＧアプリケーションは、サービスマネージャ４０４にサービス選択（番組選択）を依頼することで、チャンネルの変更を実行する。【０１６７】
ダウンロードＥＰＧアプリケーションは、サービスマネージャ４０４による番組選択と同時に、選択した番組の番組情報を用いて、機器制御ライブラリ４０５ｅを呼び出すことで、テレビ１０１およびアンプ１０２を制御してホームシアターシステムの起動や制御を行うことが出来る。例えば、ダウンロードＥＰＧアプリケーションは、図９に示す番組情報表示データを参照して、ユーザからの指示に従い、行６１２に対応するチャンネルを再生することとする。ダウンロードＥＰＧアプリケーションは、図９に示す行６１２を参照して、この番組の種別が映画であることから、まず、電源制御部１３０２を呼び出し、接続されている機器の全ての電源をＯＮにする。【０１６８】
本実施の形態においては、ダウンロードＥＰＧアプリケーションは、図１９の（１）に示すＡｌｌＤｅｖｉｃｅＰｏｗｅｒＯｎ（）メソッドを呼び出す。この結果、テレビ１０１やアンプ１０２に電源が入っていなければ、それらの電源がＯＮになる。次に、ダウンロードＥＰＧアプリケーションは、音場制御部１３０３を呼び出し、シアターモードを実現する。本実施の形態においては、ダウンロードＥＰＧアプリケーションは、図２１の（１）に示すＨｏｍｅＴｈｅａｔｅｒＯＮ（）メソッドを呼び出すことで、テレビの音声出力を停止し、ＳＴＢ１０４の音声を、アンプ１０２を通してスピーカ１０３から出力する。ダウンロードＥＰＧアプリケーションの、この一連の処理により、ユーザが映画を選んだだけで、自動的にシアターモードが起動し、ユーザはホームシアター環境で映画を視聴することが出来る。更に、ダウンロードＥＰＧアプリケーションは、番組の種別が「映画」であることから、音場制御部１３０３を呼び出し、シネマモードをセットすることが出来る。【０１６９】
本実施の形態においては、ダウンロードＥＰＧアプリケーションは、図２１の（４）に示すｓｅｔＳｏｕｎｄＭｏｄｅ（）メソッドにシネマモードを表す数値（例えば１）を引数に与えることで、シネマモードに設定する。また、番組種別が「スポーツ」の時は、ダウンロードＥＰＧアプリケーションは、音場制御部１３０３を呼び出し、スポーツモードを設定することが出来る。この結果、視聴者は最適な音場で番組を視聴することが可能である。【０１７０】
音声出力状態がシアターモードである状態から、視聴者がニュースのチャンネルを選んだ際は、ダウンロードＥＰＧアプリケーションは、シアターモードを終了させる。本実施の形態においては、ダウンロードＥＰＧアプリケーションは、図２１の（２）に示すＨｏｍｅＴｈｅａｔｅｒＯＦＦ（）メソッドを呼び出すことで、アンプ１０２によるスピーカ１０３からの音声出力を停止し、テレビ１０１からの音声出力を再開する。この結果、通常の音声再生で視聴者はニュースを視聴できる。【０１７１】
一方、視聴者がチャンネルを頻繁に変更するたびに音声出力状態が変更されると、視聴者が不快になる可能性もある。そこで、本実施の形態では、視聴者自身に音声出力状態を選択させてもよい。ダウンロードＥＰＧアプリケーションは、接続機器管理部１３０１を参照し、ホームシアターシステムを構成するテレビ１０１とアンプ１０２の両方がＳＴＢ１０４に接続されているかどうかを判断する。その両方が接続され、視聴者が選択した番組が映画やスポーツであった場合、ダウンロードＥＰＧアプリケーションは、画面上にシアターモードへの変更を促すメッセージを表示する。【０１７２】
図２４は、画面上にシアターモードへの変更を促すメッセージの一例を示す図である。【０１７３】
画面左上にメッセージ「シアター」が表示され、視聴者にシアターモードへの変更を促している。ここで、視聴者が図６に示すシアターボタン３０８を押すと、ダウンロードＥＰＧアプリケーションは、先に記載したとおり、電源のＯＮ、シアターモードの設定、及び音場モード設定を行うことが可能である。なお、シアターボタン３０８は、画面上のグラフィカルユーザインターフェースとして実現することも可能である。【０１７４】
ここで、接続機器管理部１３０１は、ダウンロードＥＰＧアプリケーションがテレビ１０１とアンプ１０２の両方に接続されているかどうかをそのアプリケーションが容易に判断するためのＪａｖａ  ＡＰＩを備える。【０１７５】
図２５は、接続機器管理部１３０１に備えられるＡＰＩの他の例を示す図である。【０１７６】
ＩｓＨｏｍｅＴｈｅａｔｅｒ（）メソッドは、ホームシアターシステムを実現するためのテレビ１０１及びアンプ１０２がＳＴＢ１０４に接続されていることを調べるＪａｖａ  ＡＰＩである。このＡＰＩは、図１７に示された機器管理情報のような、接続されている機器の一覧を参照し、テレビ１０１及びアンプ１０２が接続されているかどうかを調べる。接続機器管理部１３０１は、このようなＡＰＩが呼び出されると、テレビ１０１及びアンプ１０２の両方が接続されており、ホームシアターシステムを構成できる場合は、ｔｒｕｅを返し、構成できない場合はｆａｌｓｅを返す。接続機器管理部１３０１がこのＪａｖａ  ＡＰＩを備えることにより、Ｊａｖａアプリケーションは、容易にホームシアターシステムが実現できるか否かを判断することができる。【０１７７】
一方、再生している番組が映画でも、視聴者はモノラル音声で聞きたいかもしれない。あるいは、ステレオ音声を５．１チャンネル再生したい場合もある。そこで、ダウンロードＥＰＧアプリケーションは、これらの要望を受け付けて、その受け付けた要望に対応する設定を行う。【０１７８】
なお、本実施の形態では、電源制御と音場制御を行なった。これらの制御は、機器制御ライブラリ４０５ｅが複数のＨＤＭＩ−ＣＥＣメッセージの送受信を組み合わせることで実現される。この２つの処理以外にも、本実施の形態のＳＴＢ１０４は、ＨＤＭＩラインを用いて接続されたＤＶＤレコーダに、ＳＴＢ１０４が再生する映像音声を記録するなどの処理を行ってもよい。この場合、機器制御ライブラリ４０５ｅはレコーダ制御部を持ち、レコーダ制御部は、複数のＨＤＭＩ−ＣＥＣメッセージの送受信を組み合わせて所望の機能を実現する。【０１７９】
一方、新しい機能を持ったＨＤＭＩ対応機器が出現すると、その機能を使うための機能が機器制御ライブラリ４０５ｅに無い場合が考えられる。例えば、ＨＤＭＩ−ＣＥＣ規格の論理アドレスで規定されていないＢＤ（Ｂｌｕｅ−ｒａｙ  Ｄｉｓｃ）プレーヤが普及した場合などが考えられる。この際、ダウンロードされたＪａｖａアプリケーションが最新のＨＤＭＩ−ＣＥＣメッセージを把握し、新しい機器との連携を実現することで、新規の機器に対応することが可能となる。これを実現するため、機器連携ライブラリ４０５ｅは、低レベル送信部１３０４と低レベル受信部１３０５を備えている。Ｊａｖａアプリケーションは、これらのＡＰＩを用いて、ＨＤＭＩ−ＣＥＣメッセージを直接送受信することで、新規の機器との連携を実現することができる。【０１８０】
また、ＨＤＭＩ−ＣＥＣでは、同一のベンダーＩＤを知る機器間のメッセージ通信で、独自のメッセージの送受信を認めている。低レベル送信部１３０４と低レベル受信部１３０５は、この独自メッセージの送受信にも使用できる。Ｊａｖａアプリケーションが、接続された機器の独自メッセージを知っていれば、低レベル送信部１３０４と低レベル受信部１３０５を介して、ＨＤＭＩ−ＣＥＣメッセージの送受信を行うことで、機器連携を実現できる。【０１８１】
以下、本発明の中核をなす機器接続ライブラリ４０５ｅの動作をまとめる。【０１８２】
図２６は、接続機器管理部１３０１が備える図１８の（１）に示すＪａｖａ  ＡＰＩに基づく動作を表すフローチャートである。【０１８３】
まず、Ｊａｖａアプリケーションは、ｇｅｔＤｅｖｉｃｅｓ（）メソッドを呼び出する（ステップＳ２２０１）。接続機器管理部１３０１は、第１メモリ２０２が記憶する機器管理情報（接続機器一覧）を取得する（ステップＳ２２０２）。次に、接続機器管理部１３０１は、取得した接続機器一覧に示される各機器に対応するＨＤＭＩＤｅｖｉｃｅオブジェクトを作成する（ステップＳ２２０３）。ＨＤＭＩＤｅｖｉｃｅオブジェクトは内部に、物理アドレス及び論理アドレスを保持する。接続機器管理部１３０１は、作成したＨＤＭＩＤｅｖｉｃｅオブジェクトを配列に格納する（ステップＳ２２０４）。最後に、接続機器管理部１３０１は、ＡＰＩを呼び出したＪａｖａアプリケーションにＨＤＭＩＤｅｖｉｃｅオブジェクトの配列を返す（ステップＳ２２０５）。【０１８４】
図２７は、ＨＤＭＩＤｅｖｉｃｅクラスの定義例を示す図である。【０１８５】
内部メンバ変数ｐａｄｄに物理アドレスが格納され、内部メンバ変数ｌａｄｄに論理アドレスが格納される。【０１８６】
図２８は、接続機器管理部１３０１が備える図１８の（２）に示すＪａｖａ  ＡＰＩに基づく動作を表すフローチャートである。【０１８７】
まず、Ｊａｖａアプリケーションは、ｇｅｔＰｈｙｓｉｃａｌＤｅｖｉｃｅＮｕｍｂｅｒ（）メソッドを呼び出す（ステップＳ２４０１）。ここで、ｇｅｔＰｈｙｓｉｃａｌＤｅｖｉｃｅＮｕｍｂｅｒ（）メソッドが図２７で示されるＨＤＭＩＤｅｖｉｃｅクラスに定義されているとすると、接続機器管理部１３０１は、内部メンバ変数ｐａｄｄに格納されている値をＪａｖａアプリケーションに返す（ステップＳ２４０２）。ここで、ｇｅｔＰｈｙｓｉｃａｌＤｅｖｉｃｅＮｕｍｂｅｒ（）メソッドを実装しているオブジェクトが内部に物理アドレスを保持していない場合は、接続機器管理部１３０１は、第１メモリ２０２を参照して、物理アドレスを取り出してＪａｖａアプリケーションに返しても良い。【０１８８】
図２９は、接続機器管理部１３０１が備える図１８の（３）に示すＪａｖａ  ＡＰＩに基づく動作を表すフローチャートである。【０１８９】
まず、Ｊａｖａアプリケーションは、ｇｅｔＬｏｇｉｃａｌＤｅｖｉｃｅＮｕｍｂｅｒ（）メソッドを呼び出す（ステップＳ２５０１）。ここで、ｇｅｔＬｏｇｉｃａｌＤｅｖｉｃｅＮｕｍｂｅｒ（）メソッドが図２７で示されるＨＤＭＩＤｅｖｉｃｅクラスに定義されているとすると、接続機器管理部１３０１は、内部メンバ変数ｌａｄｄに格納されている値をＪａｖａアプリケーションに返す（ステップＳ２５０２）。ここで、ｇｅｔＬｏｇｉｃａｌＤｅｖｉｃｅＮｕｍｂｅｒ（）メソッドを実装しているオブジェクトが内部に論理アドレスを保持していない場合は、接続機器管理部１３０１は、第１メモリ２０２を参照して、論理アドレスを取り出してＪａｖａアプリケーションに返しても良い。【０１９０】
図３０は、電源制御部１３０２が備える図１９の（１）に示すＪａｖａ  ＡＰＩに基づく動作を表すフローチャートである。【０１９１】
まず、Ｊａｖａアプリケーションは、ＡｌｌＤｅｖｉｃｅＰｏｗｅｒＯｎ（）メソッドを呼び出す（ステップＳ２６０１）。電源制御部１３０２は、第１メモリ２０２が記憶している機器管理情報の中から、１つの接続機器の情報を取り出す（ステップＳ２６０２）。この情報とは、ＨＤＭＩ−ＣＥＣメッセージを作る際に必要となる機器の物理アドレス及び論理アドレスなどである。電源制御部１３０２は、その接続機器に対してＨＤＭＩ−ＣＥＣメッセージ＜Ｇｉｖｅ  Ｄｅｖｉｃｅ  Ｐｏｗｅｒ  Ｓｔａｔｕｓ＞を送信する（ステップＳ２６０３）。次に、電源制御部１３０２は、メッセージを送った接続機器から、ＨＤＭＩ−ＣＥＣメッセージ＜Ｒｅｐｏｒｔ  Ｐｏｗｅｒ  Ｓｔａｔｕｓ＞を受け取る（ステップＳ２６０４）。電源制御部１３０２は、このメッセージを参照し、電源がＯＮになっているかどうかを調べ（ステップＳ２６０５）、電源が入っていなければ、ＨＤＭＩ−ＣＥＣメッセージ＜Ｕｓｅｒ  Ｃｏｎｔｒｏｌ  Ｐｒｅｓｓｅｄ＞［“Ｐｏｗｅｒ”］を接続機器に送信する（ステップＳ２６０６）。【０１９２】
そして電源制御部１３０２は、再度、ＨＤＭＩ−ＣＥＣメッセージ＜Ｇｉｖｅ  Ｄｅｖｉｃｅ  Ｐｏｗｅｒ  Ｓｔａｔｕｓ＞を送信し（ステップＳ２６０７）、ＨＤＭＩ−ＣＥＣメッセージ＜Ｒｅｐｏｒｔ  Ｐｏｗｅｒ  Ｓｔａｔｕｓ＞を受け取る（ステップＳ２６０８）。電源制御部１３０２は、このメッセージを参照し、電源がＯＮになっているかどうかを調べ（ステップＳ２６０９）、ＯＦＦであれば、電源ＯＮの処理に失敗したとして、Ｊａｖａアプリケーションにｆａｌｓｅを返して（ステップＳ２６１０）、全ての処理を終了する。電源制御部１３０２は、全ての機器に対して、ステップＳ２６０２からステップＳ２６０９の処理が終了したか否かを判別し（ステップＳ２６１１）、終了していないと判別すると、ステップＳ２６０２からの制御を繰り返し実行する。一方、電源制御部１３０２は、全ての機器に対して処理が終了したと判別すると、Ｊａｖａアプリケーションにｔｒｕｅを返して（ステップＳ２６１２）、全ての処理を終了する。ここで、ステップＳ２６０７からステップＳ２６０９の処理を、電源がＯＮになるまで一定の回数、あるいは一定の時間だけ繰り返してもよい。【０１９３】
図３１は、電源制御部１３０２が備える図１９の（２）に示すＪａｖａ  ＡＰＩに基づく動作を表すフローチャートである。【０１９４】
まず、Ｊａｖａアプリケーションは、ＤｅｖｉｃｅＰｏｗｅｒＯｎ（）メソッドを呼び出す（ステップＳ２７０１）。電源制御部１３０２は、第１メモリ２０２が記憶している機器管理情報の中から、指定された接続機器の情報を取り出す（ステップＳ２７０２）。この情報とは、ＨＤＭＩ−ＣＥＣメッセージを作る際に必要となる機器の物理アドレス及び論理アドレスなどである。電源制御部１３０２は、その接続機器に対してＨＤＭＩ−ＣＥＣメッセージ＜Ｇｉｖｅ  Ｄｅｖｉｃｅ  Ｐｏｗｅｒ  Ｓｔａｔｕｓ＞を送信する（ステップＳ２７０３）。次に、電源制御部１３０２は、メッセージを送った接続機器から、ＨＤＭＩ−ＣＥＣメッセージ＜Ｒｅｐｏｒｔ  Ｐｏｗｅｒ  Ｓｔａｔｕｓ＞を受け取る（ステップＳ２７０４）。【０１９５】
電源制御部１３０２は、このメッセージを参照し、電源がＯＮになっているかどうかを調べ（ステップＳ２７０５）、電源が入っていなければ、ＨＤＭＩ−ＣＥＣメッセージ＜Ｕｓｅｒ  Ｃｏｎｔｒｏｌ  Ｐｒｅｓｓｅｄ＞［“Ｐｏｗｅｒ”］を接続機器に送信する（ステップＳ２７０６）。そして電源制御部１３０２は、再度、ＨＤＭＩ−ＣＥＣメッセージ＜Ｇｉｖｅ  Ｄｅｖｉｃｅ  Ｐｏｗｅｒ  Ｓｔａｔｕｓ＞を送信し（ステップＳ２７０７）、ＨＤＭＩ−ＣＥＣメッセージ＜Ｒｅｐｏｒｔ  Ｐｏｗｅｒ  Ｓｔａｔｕｓ＞を受け取る（ステップＳ２７０８）。電源制御部１３０２は、このメッセージを参照し、電源がＯＮになっているかどうかを調べ（ステップＳ２７０９）、ＯＦＦであれば、電源ＯＮの処理に失敗したとして、Ｊａｖａアプリケーションにｆａｌｓｅを返して（ステップＳ２７１０）、全ての処理を終了する。一方、ＯＮであれば、電源制御部１３０２は、Ｊａｖａアプリケーションにｔｒｕｅを返して（ステップＳ２７１１）、全ての処理を終了する。ここで、ステップＳ２７０７からステップＳ２７０９の処理を、電源がＯＮになるまで一定の回数、あるいは一定の時間だけ繰り返してもよい。【０１９６】
図３２は、電源制御部１３０２が備える図１９の（３）に示すＪａｖａ  ＡＰＩに基づく動作を表すフローチャートである。【０１９７】
まず、Ｊａｖａアプリケーションは、ＡｌｌＤｅｖｉｃｅＰｏｗｅｒＯｆｆ（）メソッドを呼び出す（ステップＳ２８０１）。電源制御部１３０２は、第１メモリ２０２が記憶している機器管理情報の中から、１つの接続機器の情報を取り出す（ステップＳ２８０２）。この情報とは、ＨＤＭＩ−ＣＥＣメッセージを作る際に必要となる機器の物理アドレス及び論理アドレスなどである。電源制御部１３０２は、その接続機器に対してＨＤＭＩ−ＣＥＣメッセージ＜Ｇｉｖｅ  Ｄｅｖｉｃｅ  Ｐｏｗｅｒ  Ｓｔａｔｕｓ＞を送信する（ステップＳ２８０３）。次に、電源制御部１３０２は、メッセージを送った接続機器から、ＨＤＭＩ−ＣＥＣメッセージ＜Ｒｅｐｏｒｔ  Ｐｏｗｅｒ  Ｓｔａｔｕｓ＞を受け取る（ステップＳ２８０４）。【０１９８】
電源制御部１３０２は、このメッセージを参照し、電源がＯＦＦになっているかどうかを調べ（ステップＳ２８０５）、電源が入っていれば、ＨＤＭＩ−ＣＥＣメッセージ＜Ｕｓｅｒ  Ｃｏｎｔｒｏｌ  Ｐｒｅｓｓｅｄ＞［“Ｐｏｗｅｒ”］を接続機器に送信する（ステップＳ２８０６）。そして電源制御部１３０２は、再度、ＨＤＭＩ−ＣＥＣメッセージ＜Ｇｉｖｅ  Ｄｅｖｉｃｅ  Ｐｏｗｅｒ  Ｓｔａｔｕｓ＞を送信し（ステップＳ２８０７）、ＨＤＭＩ−ＣＥＣメッセージ＜Ｒｅｐｏｒｔ  Ｐｏｗｅｒ  Ｓｔａｔｕｓ＞を受け取る（ステップＳ２８０８）。電源制御部１３０２は、このメッセージを参照し、電源がＯＦＦになっているかどうかを調べ（ステップＳ２８０９）、ＯＮであれば、電源ＯＦＦの処理に失敗したとして、Ｊａｖａアプリケーションにｆａｌｓｅを返して（ステップＳ２８１０）、全ての処理を終了する。電源制御部１３０２は、全ての機器に対して、ステップＳ２８０２からステップＳ２８０９の処理が終了したか否かを判別し（ステップＳ２８１１）、終了していないと判別すると、ステップＳ２８０２からの制御を繰り返し実行する。一方、電源制御部１３０２は、全ての機器に対して処理が終了したと判別すると、Ｊａｖａアプリケーションにｔｒｕｅを返して（ステップＳ２８１２）、全ての処理を終了する。ここで、ステップＳ２８０７からステップＳ２８０９の処理を、電源がＯＦＦになるまで一定の回数、あるいは一定の時間だけ繰り返してもよい。【０１９９】
図３３は、電源制御部１３０２が備える図１９の（４）に示すＪａｖａ  ＡＰＩに基づく動作を表すフローチャートである。【０２００】
まず、Ｊａｖａアプリケーションは、ＤｅｖｉｃｅＰｏｗｅｒＯｆｆ（）メソッドを呼び出す（ステップＳ２９０１）。電源制御部１３０２は、第１メモリ２０２が記憶している機器管理情報の中から、指定された接続機器の情報を取り出す（ステップＳ２９０２）。この情報とは、ＨＤＭＩ−ＣＥＣメッセージを作る際に必要となる機器の物理アドレス及び論理アドレスなどである。電源制御部１３０２は、その接続機器に対してＨＤＭＩ−ＣＥＣメッセージ＜Ｇｉｖｅ  Ｄｅｖｉｃｅ  Ｐｏｗｅｒ  Ｓｔａｔｕｓ＞を送信する（ステップＳ２９０３）。次に、電源制御部１３０２は、メッセージを送った接続機器から、ＨＤＭＩ−ＣＥＣメッセージ＜Ｒｅｐｏｒｔ  Ｐｏｗｅｒ  Ｓｔａｔｕｓ＞を受け取る（ステップＳ２９０４）。【０２０１】
電源制御部１３０２は、このメッセージを参照し、電源がＯＦＦになっているかどうかを調べ（ステップＳ２９０５）、電源が入っていれば、ＨＤＭＩ−ＣＥＣメッセージ＜Ｕｓｅｒ  Ｃｏｎｔｒｏｌ  Ｐｒｅｓｓｅｄ＞［“Ｐｏｗｅｒ”］を接続機器に送信する（ステップＳ２９０６）。そして電源制御部１３０２は、再度、ＨＤＭＩ−ＣＥＣメッセージ＜Ｇｉｖｅ  Ｄｅｖｉｃｅ  Ｐｏｗｅｒ  Ｓｔａｔｕｓ＞を送信し（ステップＳ２９０７）、ＨＤＭＩ−ＣＥＣメッセージ＜Ｒｅｐｏｒｔ  Ｐｏｗｅｒ  Ｓｔａｔｕｓ＞を受け取る（ステップＳ２９０８）。電源制御部１３０２は、このメッセージを参照し、電源がＯＦＦになっているかどうかを調べ（ステップＳ２９０９）、ＯＮであれば、電源ＯＦＦの処理に失敗したとして、Ｊａｖａアプリケーションにｆａｌｓｅを返して（ステップＳ２９１０）、全ての処理を終了する。一方、ＯＦＦであれば、電源制御部１３０２は、Ｊａｖａアプリケーションにｔｒｕｅを返して（ステップＳ２９１１）、全ての処理を終了する。ここで、ステップＳ２９０７からステップＳ２９０９の処理を、電源がＯＦＦになるまで一定の回数、あるいは一定の時間だけ繰り返してもよい。【０２０２】
図３４は、音場制御部１３０３が備える図２１（１）に示すＪａｖａ  ＡＰＩに基づく動作を表すフローチャートである。【０２０３】
まず、Ｊａｖａアプリケーションは、ＨｏｍｅＴｈｅａｔｅｒＯＮ（）メソッドを呼び出す（ステップＳ３００１）。音場制御部１３０３は、接続機器管理部１３０１を参照し、ホームシアターシステムを構成する機器が接続されているかどうか調べる（ステップＳ３００２）。ホームシアターシステムを構成する機器の具体例としては、テレビ１０１とアンプ１０２である。ホームシアターシステムを構成する機器が接続されていなければ、音場制御部１３０３は、Ｊａｖａアプリケーションにｆａｌｓｅを返して処理を終了する（ステップＳ３００８）。一方、ホームシアターシステムを構成する機器が接続されていたら、音場制御部１３０３は、ＡｌｌＤｅｖｉｃｅＰｏｗｅｒＯｎ（）メソッドを呼び出すことで、全ての接続機器の電源をＯＮにする（ステップＳ３００３）。ここで、電源のＯＮに失敗したら、音場制御部１３０３はＪａｖａアプリケーションにｆａｌｓｅを返して処理を終了する（ステップＳ３００８）。次に、音場制御部１３０３は、テレビ１０１に対して音声出力をミュートするように要求するＨＤＭＩ−ＣＥＣメッセージ（コマンド）を送信する（ステップＳ３００４）。次に、音場制御部１３０３は、アンプ１０２に対して、ＳＴＢ１０４からの音声を出力するように要求するＨＤＭＩ−ＣＥＣメッセージ（コマンド）を送る（ステップＳ３００５）。最後に、音場制御部１３０３は、シアターモードになっていることを第１メモリ２０２に記録し（ステップＳ３００６）、Ｊａｖａアプリケーションにｔｒｕｅを返して処理を終了する（ステップＳ３００７）。【０２０４】
ここで、音場制御部１３０３は、ステップＳ３００３で全ての接続機器の電源をＯＮにしているが、ホームシアターシステムを構成する機器だけの電源をＯＮにしてもよい。この場合、図３０のフローチャートにおいて、ステップＳ２６１１では、全機器の処理が終了したか否かを判別する代わりに、ホームシアターシステムを構成する各機器の処理が終了したか否かを判別する。【０２０５】
図３５は、音場制御部１３０３が備える図２１の（２）に示すＪａｖａ  ＡＰＩに基づく動作を表すフローチャートである。【０２０６】
まず、Ｊａｖａアプリケーションは、ＨｏｍｅＴｈｅａｔｅｒＯＦＦ（）メソッドを呼び出す（ステップＳ３１０１）。音場制御部１３０３は、第１メモリ２０２を参照してシアターモードかどうかを調べる（ステップＳ３１０２）。シアターモードでなければ、音場制御部１３０３は、Ｊａｖａアプリケーションにｆａｌｓｅを返して処理を終了する（ステップＳ３１０７）。一方、シアターモードであれば、音場制御部１３０３は、ＤｅｖｉｃｅＰｏｗｅｒＯｆｆ（）メソッドを呼び出すことで、アンプ１０２の電源をＯＦＦにする（ステップＳ３１０３）。次に、音場制御部１３０３は、テレビ１０１に対して、アンプ１０２からの音声を出力するように要求するＨＤＭＩ−ＣＥＣメッセージ（コマンド）を送信する（ステップＳ３１０４）。最後に、音場制御部１３０３は、シアターモードになっていないことを第１メモリ２０２に記録し（ステップＳ３１０５）、Ｊａｖａアプリケーションにｔｒｕｅを返して処理を終了する（ステップＳ３１０６）。【０２０７】
図３６は、音場制御部１３０３が備える図２１の（３）に示すＪａｖａ  ＡＰＩに基づく動作を表すフローチャートである。【０２０８】
まず、Ｊａｖａアプリケーションは、ＳｅｔＰｌａｙＭｏｄｅ（）メソッドを呼び出す（ステップＳ３２０１）。音場制御部１３０３は、第１メモリ２０２を参照してシアターモードかどうかを調べる（ステップＳ３２０２）。シアターモードでなければ、音場制御部１３０３は、Ｊａｖａアプリケーションにｆａｌｓｅを返して処理を終了する（ステップＳ３２０５）。一方、シアターモードであれば、音場制御部１３０３は、Ｊａｖａアプリケーションによって与えられた再生モードに応じてＨＤＭＩ−ＣＥＣメッセージをアンプ１０２に送信する（ステップＳ３２０３）。最後に、音場制御部１３０３は、Ｊａｖａアプリケーションにｔｒｕｅを返して処理を終了する（ステップＳ３２０４）。【０２０９】
図３７は、音場制御部１３０３が備える図２１の（４）に示すＪａｖａ  ＡＰＩに基づく動作を表すフローチャートである。【０２１０】
まず、Ｊａｖａアプリケーションは、ＳｅｔＳｏｕｎｄＭｏｄｅ（）メソッドを呼び出す（ステップＳ３３０１）。音場制御部１３０３は、第１メモリ２０２を参照してシアターモードかどうかを調べる（ステップＳ３３０２）。シアターモードでなければ、音場制御部１３０３は、Ｊａｖａアプリケーションにｆａｌｓｅを返して処理を終了する（ステップＳ３３０５）。一方、シアターモードであれば、音場制御部１３０３は、Ｊａｖａアプリケーションによって与えられた音場モードに応じてＨＤＭＩ−ＣＥＣメッセージをアンプ１０２に送信する（ステップＳ３３０３）。最後に、音場制御部１３０３は、Ｊａｖａアプリケーションにｔｒｕｅを返して処理を終了する（ステップＳ３３０４）。【０２１１】
図３８は、低レベル送信部１３０４が備える図２２の（１）または（２）に示すＪａｖａ  ＡＰＩに基づく動作を表すフローチャートである。【０２１２】
まず、Ｊａｖａアプリケーションは、ｓｅｎｄ（）メソッドを呼び出す（ステップＳ３４０１）。低レベル送信部１３０４は、そのメソッドの呼び出しによって受け取ったバイナリーデータを用いてＨＤＭＩ−ＣＥＣメッセージを作成して送信する（ステップＳ３４０２）。【０２１３】
図３９は、低レベル受信部１３０５が備える図２３の（１）または（３）に示すＪａｖａ  ＡＰＩに基づく動作を表すフローチャートである。【０２１４】
まず、Ｊａｖａアプリケーションは、ａｄｄＬｉｓｔｅｎｅｒ（）メソッドを呼び出す（ステップＳ３５０１）。低レベル受信部１３０５は、そのメソッドの呼び出しによって受け取ったリスナーを第１メモリ２０２に記録する（ステップＳ３５０２）。【０２１５】
図４０は、低レベル受信部１３０５がＨＤＭＩ−ＣＥＣメッセージを受け取った時の動作を表すフローチャートである。【０２１６】
まず、低レベル受信部１３０５はＨＤＭＩ−ＣＥＣメッセージを受け取る（ステップＳ３６０１）。低レベル受信部１３０５は、第１メモリ２０２を参照してリスナーが記録されているか否かを判別する（ステップＳ３６０２）。低レベル受信部１３０５は、記録されていると判別すると、受け取ったＨＤＭＩ−ＣＥＣメッセージをバイナリデータに変換し、リスナーのｒｅｃｅｉｖｅメソッドを呼び出すことで、変換したバイナリーデータを引き渡す。【０２１７】
ここで、低レベル受信部１３０５は、登録したリスナーを削除するｒｅｍｏｖｅＬｉｓｔｅｎｅｒ（）メソッドを備えても良い。図２７に、ＨＤＭＩ対応機器を表現するＨＤＭＩＤｅｖｉｃｅクラス定義の例を示す。ここに、ｓｅｔＬｉｓｔｅｎｅｒ（）メソッドと同様、ｒｅｍｏｖｅＬｉｓｔｅｎｅｒ（）メソッドが定義されている。ｒｅｍｏｖｅＬｉｓｔｅｎｅｒ（）メソッドが呼び出されると、第１メモリ２０２に記憶されているリスナーが削除される。【０２１８】
このように本実施の形態では、Ｊａｖａアプリケーションがテレビ１０１またはアンプ１０２を制御するために制御データを出力すると、つまりＪａｖａ  ＡＰＩのメソッドを呼び出すと、その制御データが、ＣＥＣ４０１ｂ４およびＨＤＭＩ部２１０によって通信されるＨＤＭＩ−ＣＥＣメッセージに変換されてそのテレビ１０１またはアンプ１０２に送信される。したがって、そのテレビ１０１またはアンプ１０２がＨＤＭＩ−ＣＥＣに対応した機器であれば、Ｊａｖａアプリケーションは、ＨＤＭＩ−ＣＥＣを考慮することなく、メソッドを呼び出してテレビ１０１またはアンプ１０２を自由に制御することができる。また、テレビ１０１またはアンプ１０２から送信されたＨＤＭＩ−ＣＥＣメッセージが、Ｊａｖａアプリケーションによって扱われるデータに変換されるため、アプリケーションプログラムは、ＨＤＭＩ−ＣＥＣを考慮することなく機器からメッセージを受け取ることができ、その機器の制御に利用することができる。その結果、本発明では、Ｊａｖａアプリケーションによって各機器を自由に制御することができるため、ユーザによる操作負担を軽減して適切に機器を連携させることができる。【０２１９】
なお、図５に示すＳＴＢ１０４の構成要素のうちの全てまたは一部をＬＳＩ（Large Scale Integration）などの半導体集積回路として構成してもよい。
【産業上の利用可能性】
【０２２０】
本発明の機器連携装置は、ユーザによる操作負担を軽減して適切に機器を連携させることができるという効果を奏し、例えば、ＳＴＢなどの放送受信機や、放送受信可能な携帯電話、携帯端末、車載端末、インターネットを介して音声映像データを受信するパーソナルコンピュータ等に適用することができる。
【図１】
2007072821.tif 000003
【図２Ａ】
2007072821.tif 000004
【図２Ｂ】
2007072821.tif 000005
【図３】
2007072821.tif 000006
【図４】
2007072821.tif 000007
【図５】
2007072821.tif 000008
【図６】
2007072821.tif 000009
【図７】
2007072821.tif 000010
【図８Ａ】
2007072821.tif 000011
【図８Ｂ】
2007072821.tif 000012
【図９】
2007072821.tif 000013
【図１０】
2007072821.tif 000014
【図１１Ａ】
2007072821.tif 000015
【図１１Ｂ】
2007072821.tif 000016
【図１１Ｃ】
2007072821.tif 000017
【図１２】
2007072821.tif 000018
【図１３】
2007072821.tif 000019
【図１４】
2007072821.tif 000020
【図１５】
2007072821.tif 000021
【図１６】
2007072821.tif 000022
【図１７】
2007072821.tif 000023
【図１８】
2007072821.tif 000024
【図１９】
2007072821.tif 000025
【図２０】
2007072821.tif 000026
【図２１】
2007072821.tif 000027
【図２２】
2007072821.tif 000028
【図２３】
2007072821.tif 000029
【図２４】
2007072821.tif 000030
【図２５】
2007072821.tif 000031
【図２６】
2007072821.tif 000032
【図２７】
2007072821.tif 000033
【図２８】
2007072821.tif 000034
【図２９】
2007072821.tif 000035
【図３０】
2007072821.tif 000036
【図３１】
2007072821.tif 000037
【図３２】
2007072821.tif 000038
【図３３】
2007072821.tif 000039
【図３４】
2007072821.tif 000040
【図３５】
2007072821.tif 000041
【図３６】
2007072821.tif 000042
【図３７】
2007072821.tif 000043
【図３８】
2007072821.tif 000044
【図３９】
2007072821.tif 000045
【図４０】
2007072821.tif 000046
【手続補正書】
【提出日】平成20年5月8日(2008.5.8)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
複数の機器の動作を連携させる機器連携装置であって、
アプリケーションプログラムを含む放送波を受信する受信手段と、
前記アプリケーションプログラムを実行するプログラム実行手段と、
複数の機器のそれぞれとの間で、ＨＤＭＩ（High Definition Multimedia Interface）−ＣＥＣ（Consumer Electronics Control）に従った通信を行う通信手段と、
前記プログラム実行手段により実行される前記アプリケーションプログラムによって前記複数の機器が制御されるように、前記アプリケーションプログラムによって扱われるデータと、前記通信手段によって通信されるデータとの間の変換を行う変換手段とを備え、
前記複数の機器は、映像および音声を出力する第１の機器と、音声を出力する第２の機器とを含み、
前記変換手段は、前記第１の機器が音声出力を抑えて映像を出力するとともに前記第２の機器が音声を出力するように指示するデータを、前記アプリケーションプログラムから取得して、前記データを前記ＨＤＭＩ−ＣＥＣに従ったメッセージに変換し、
前記通信手段は、前記メッセージを前記第１および第２の機器に送信する
ことを特徴とする機器連携装置。
【請求項２】
前記変換手段は、前記アプリケーションプログラムから前記データであるバイナリーデータを取得して、前記バイナリーデータを前記ＨＤＭＩ−ＣＥＣに従ったメッセージに変換し、
前記通信手段は、前記メッセージを前記複数の機器のうちの前記第１および第２の機器に送信する
ことを特徴とする請求項１記載の機器連携装置。
【請求項３】
前記通信手段は、前記複数の機器のうちの何れかの機器から、前記ＨＤＭＩ−ＣＥＣに従ったメッセージを受信し、
前記変換手段は、前記通信手段によって受信されたメッセージをバイナリーデータに変換し、前記バイナリーデータを前記アプリケーションプログラムに引き渡す
ことを特徴とする請求項１記載の機器連携装置。
【請求項４】
前記アプリケーションプログラムはＪａｖａ（登録商標）で記述されたプログラムであって、
前記変換手段は、前記アプリケーションプログラムからリスナーの登録を受け付けることで、前記リスナーを登録し、前記リスナーのメソッドを呼び出すことで、前記アプリケーションプログラムに前記バイナリーデータを引き渡す
ことを特徴とする請求項３記載の機器連携装置。
【請求項５】
前記変換手段は、さらに、前記アプリケーションプログラムからリスナーの削除を受け付けることで、登録された前記リスナーを削除する
ことを特徴とする請求項４記載の機器連携装置。
【請求項６】
前記機器連携装置は、さらに、
前記第１および第２の機器が前記通信手段との間で通信可能なように前記通信手段と接続されているか否かを判別し、判別の結果を前記アプリケーションプログラムに通知する通知手段を備える
ことを特徴とする請求項１記載の機器連携装置。
【請求項７】
前記変換手段は、モノラル、ステレオ、および５．１チャンネルの何れかの状態で前記第２の機器から音声が出力されるように指示するデータを、前記アプリケーションプログラムから取得して、前記データを前記ＨＤＭＩ−ＣＥＣに従ったメッセージに変換し、
前記通信手段は、前記メッセージを前記第２の機器に送信する
ことを特徴とする請求項１記載の機器連携装置。
【請求項８】
前記変換手段は、前記第２の機器から出力される音声の音場を指定するデータを、前記アプリケーションプログラムから受け付けると、前記データを前記ＨＤＭＩ−ＣＥＣに従ったメッセージに変換し、
前記通信手段は、前記メッセージを前記第２の機器に送信する
ことを特徴とする請求項１記載の機器連携装置。
【請求項９】
前記変換手段は、
前記アプリケーションプログラムから前記データであるバイナリーデータを取得したときには、前記バイナリーデータを前記ＨＤＭＩ−ＣＥＣに従ったメッセージに変換し、
前記複数の機器のうちの何れかの機器から、前記ＨＤＭＩ−ＣＥＣに従ったメッセージを前記通信手段が受信したときには、前記メッセージをバイナリーデータに変換して前記アプリケーションプログラムに引き渡し、
前記通信手段は、前記変換手段による変換によって生成されたメッセージを前記複数の機器のうちの第１および第２の機器に送信するとともに、前記複数の機器のうちの何れかの機器から、前記ＨＤＭＩ−ＣＥＣに従ったメッセージを受信する
ことを特徴とする請求項１記載の機器連携装置。
【請求項１０】
複数の機器の動作を連携させる機器連携方法であって、
アプリケーションプログラムを含む放送波を受信する受信ステップと、
前記アプリケーションプログラムを実行するプログラム実行ステップと、
複数の機器のそれぞれとの間で、ＨＤＭＩ（High Definition Multimedia Interface）−ＣＥＣ（Consumer Electronics Control）に従った通信を行う通信ステップと、
前記プログラム実行ステップで実行される前記アプリケーションプログラムによって前記複数の機器が制御されるように、前記アプリケーションプログラムによって扱われるデータと、前記通信ステップで通信されるデータとの間の変換を行う変換ステップとを含み、
前記複数の機器は、映像および音声を出力する第１の機器と、音声を出力する第２の機器とを含み、
前記変換ステップでは、前記第１の機器が音声出力を抑えて映像を出力するとともに前記第２の機器が音声を出力するように指示するデータを、前記アプリケーションプログラムから取得して、前記データを前記ＨＤＭＩ−ＣＥＣに従ったメッセージに変換し、
前記通信ステップでは、前記メッセージを前記第１および第２の機器に送信する
ことを特徴とする機器連携方法。
【請求項１１】
複数の機器の動作を連携させるためのプログラムであって、
アプリケーションプログラムを含む放送波を受信する受信ステップと、
前記アプリケーションプログラムを実行するプログラム実行ステップと、
複数の機器のそれぞれとの間で、ＨＤＭＩ（High Definition Multimedia Interface）−ＣＥＣ（Consumer Electronics Control）に従った通信を行う通信ステップと、
前記プログラム実行ステップで実行される前記アプリケーションプログラムによって前記複数の機器が制御されるように、前記アプリケーションプログラムによって扱われるデータと、前記通信ステップで通信されるデータとの間の変換を行う変換ステップとをコンピュータに実行させ、
前記複数の機器は、映像および音声を出力する第１の機器と、音声を出力する第２の機器とを含み、
前記変換ステップでは、前記第１の機器が音声出力を抑えて映像を出力するとともに前記第２の機器が音声を出力するように指示するデータを、前記アプリケーションプログラムから取得して、前記データを前記ＨＤＭＩ−ＣＥＣに従ったメッセージに変換し、
前記通信ステップでは、前記メッセージを前記第１および第２の機器に送信する
ことを特徴とするプログラム。
【請求項１２】
複数の機器の動作を連携させる集積回路であって、
アプリケーションプログラムを含む放送波を受信する受信手段と、
前記アプリケーションプログラムを実行するプログラム実行手段と、
複数の機器のそれぞれとの間で、ＨＤＭＩ（High Definition Multimedia Interface）−ＣＥＣ（Consumer Electronics Control）に従った通信を行う通信手段と、
前記プログラム実行手段により実行される前記アプリケーションプログラムによって前記複数の機器が制御されるように、前記アプリケーションプログラムによって扱われるデータと、前記通信手段によって通信されるデータとの間の変換を行う変換手段とを備え、
前記複数の機器は、映像および音声を出力する第１の機器と、音声を出力する第２の機器とを含み、
前記変換手段は、前記第１の機器が音声出力を抑えて映像を出力するとともに前記第２の機器が音声を出力するように指示するデータを、前記アプリケーションプログラムから取得して、前記データを前記ＨＤＭＩ−ＣＥＣに従ったメッセージに変換し、
前記通信手段は、前記メッセージを前記第１および第２の機器に送信する
ことを特徴とする集積回路。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、例えばテレビやアンプなどの機器の連携を制御する機器連携装置に関する。
【背景技術】
【０００２】
近年、デジタル放送あるいはケーブルテレビ（以下、ＣＡＴＶという）放送を受信するセットトップボックス（以下、ＳＴＢという）、テレビ、アンプ、スピーカ、およびＤＶＤ（Digital Versatile Disk）プレーヤを組み合わせたホームシアターシステムが家庭に本格普及しつつある。これらの機器は、それぞれに対してリモコンを用いて設定を行うことにより、マルチチャンネル音声、例えば５．１チャンネル音声の再生を実現することができる（例えば、非特許文献１参照）。
【０００３】
また、アンプの電源スイッチのオン／オフ操作に連動して、音声をテレビ受信装置だけから出力するか、アンプに接続されているスピーカからも出力するかを切り換える技術（機器連携装置）が提案されている（例えば、特許文献１参照）。
【０００４】
例えば、上記特許文献１の機器連携装置は、テレビ受信装置と組み合わせてサラウンドシステムを構成することが可能なＡＶアンプに備えられている。つまり、上記特許文献１の機器連携装置は、サラウンドシステムの利用と、テレビ受信装置単独の利用との切り換えを行うことができる。
【０００５】
図１は、上記特許文献１のＡＶアンプのブロック図を示す。
【０００６】
このようなＡＶアンプ４０の機器連携装置は、サラウンドシステムの利用時には、ＡＶアンプ４０の電源スイッチ４１がオンにされると、切り換えスイッチ５０をセンタ音声増幅回路４８側に切り換える。その結果、ＡＶアンプ４０に接続された例えばＶＴＲ（Video Tape Recorder）やＬＤ（Laser Disc）などの再生機器、またはテレビ受信装置から音声入力端子４３に供給されている音声信号がＤＳＰ４５を介して音声出力端子４９を経て周囲のスピーカに供給される。また、このようなＡＶアンプ４０の機器連携装置は、テレビ受信装置単独での利用時に、ＡＶアンプ４０の電源スイッチ４１がオフにされると、切り替えスイッチ５０をテレビ音声入力端子５１側に切り換える。その結果、テレビ受信装置の増幅回路で処理されたテレビ音声が、ＡＶアンプ４０を介してテレビ受信装置のスピーカに供給される。
【非特許文献１】Ｈｉｇｈ  Ｄｅｆｉｎｉｔｉｏｎ  Ｍｕｌｔｉｍｅｄｉａ  Ｉｎｔｅｒｆａｃｅ  ｓｐｅｃｉｆｉｃａｔｉｏｎ  Ｖｅｒｓｉｏｎ  １．２
【特許文献１】特開平５−１５３５２０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
しかしながら、上記特許文献１の機器連携装置では、サラウンドシステムの使用および不使用を切り換えるために、わざわざＡＶアンプの電源を操作しなければならないという問題がある。つまり、ユーザは、ＡＶアンプ４０に接続されたスピーカに音声を出力させるときには、ＡＶアンプ４０の電源をオンにしなければならず、そのスピーカ以外のテレビ受信装置に備えられたスピーカに音声を出力させるときには、ＡＶアンプ４０の電源をオフにしなければならない。
【０００８】
そこで、本発明は、かかる問題に鑑みてなされたものであって、ユーザによる操作負担を軽減して適切に機器を連携させる機器連携装置を提供することを目的とする。
【課題を解決するための手段】
【０００９】
上記目的を達成するために、本発明に係る機器連携装置は、複数の機器の動作を連携させる機器連携装置であって、アプリケーションプログラムを含む放送波を受信する受信手段と、前記アプリケーションプログラムを実行するプログラム実行手段と、複数の機器のそれぞれとの間で、ＨＤＭＩ（High Definition Multimedia Interface）−ＣＥＣ（Consumer Electronics Control）に従った通信を行う通信手段と、前記プログラム実行手段により実行される前記アプリケーションプログラムによって前記複数の機器が制御されるように、前記アプリケーションプログラムによって扱われるデータと、前記通信手段によって通信されるデータとの間の変換を行う変換手段とを備えることを特徴とする。
【００１０】
これにより、アプリケーションプログラムが複数の機器のうちの何れかの機器の動作を制御するために制御データを出力すると、その制御データが、通信手段によって通信されるＨＤＭＩ−ＣＥＣメッセージに変換されてその機器に送信されるため、その機器がＨＤＭＩ−ＣＥＣに対応した機器であれば、アプリケーションプログラムは、ＨＤＭＩ−ＣＥＣを考慮することなく、制御データを出力して機器を自由に制御することができる。ここで、アプリケーションプログラムがＪａｖａ（登録商標）で記述されたプログラムである場合には、例えば、そのプログラムは、Ｊａｖａ  ＡＰＩであるメソッドを呼び出すことで上述の制御データを出力する。また、何れかの機器から送信されたＨＤＭＩ−ＣＥＣメッセージが、アプリケーションプログラムによって扱われるデータに変換されるため、アプリケーションプログラムは、ＨＤＭＩ−ＣＥＣを考慮することなく機器からメッセージを受け取ることができ、その機器の制御に利用することができる。その結果、本発明では、アプリケーションプログラムによって各機器を自由に制御することができるため、ユーザによる操作負担を軽減して適切に機器を連携させることができる。
【００１１】
また、前記変換手段は、前記アプリケーションプログラムからバイナリーデータを取得して、前記バイナリーデータを前記ＨＤＭＩ−ＣＥＣに従ったメッセージに変換し、前記通信手段は、前記メッセージを前記複数の機器のうちの何れかの機器に送信することを特徴としてもよい。または、前記通信手段は、前記複数の機器のうちの何れかの機器から、前記ＨＤＭＩ−ＣＥＣに従ったメッセージを受信し、前記変換手段は、前記通信手段によって受信されたメッセージをバイナリーデータに変換し、前記バイナリーデータを前記アプリケーションプログラムに引き渡すことを特徴としてもよい。
【００１２】
例えば、テレビやアンプなどの機器の間で連携した機能を実現させるためのハードウェアやソフトウェアは、予めその機器に組み込まれた状態で出荷される。その後、ハードウェアやソフトウェアに対して改良や変更が行われ、その変更されたハードウェアやソフトウェアが組み込まれた新たな機器が発売される。その結果、新たに発売された機器と既存の機器との間では、連携機能を実現することができない場合が発生する。そこで、本発明では、アプリケーションプログラムによって扱われるバイナリーデータと、通信手段によって通信されるＨＤＭＩ−ＣＥＣメッセージとの間の変換が行われるため、例えば、実行されるアプリケーションプログラムを入れ替えるだけで、機器連携装置そのものを改変することなく、新たに発売された機器を適切に制御して、その新たに発売された機器を含む複数の機器の動作を連携させることができる。
【００１３】
また、前記アプリケーションプログラムはＪａｖａ（登録商標）で記述されたプログラムであって、前記変換手段は、前記アプリケーションプログラムからリスナーの登録を受け付けることで、前記リスナーを登録し、前記リスナーのメソッドを呼び出すことで、前記アプリケーションプログラムに前記バイナリーデータを引き渡すことを特徴としてもよい。
【００１４】
これにより、アプリケーションプログラムは、機器からのメッセージをバイナリーデータで確実に受け取ることができる。
【００１５】
また、前記変換手段は、さらに、前記アプリケーションプログラムからリスナーの削除を受け付けることで、登録された前記リスナーを削除することを特徴としてもよい。
【００１６】
これにより、アプリケーションプログラムは、機器からのメッセージの受け取りを拒否することができる。
【００１７】
また、前記複数の機器は、映像および音声を出力する第１の機器と、音声を出力する第２の機器とを含み、前記変換手段は、前記第１の機器が音声出力を抑えて映像を出力するとともに前記第２の機器が音声を出力するように指示するデータを、前記アプリケーションプログラムから取得して、前記データを前記ＨＤＭＩ−ＣＥＣに従ったメッセージに変換し、前記通信手段は、前記メッセージを前記第１および第２の機器に送信することを特徴としてもよい。
【００１８】
これにより、例えばテレビなどの第１の機器が映像だけを出力して、アンプなどの第２の機器のスピーカが音声を出力するようなシアターモードをアプリケーションプログラムが指示すれば、その指示をテレビとアンプが適切に受け取ることができ、その結果、シアターモードで音声が出力されるように、ユーザによる操作負担を軽減してテレビおよびアンプを適切に連携させることができる。
【００１９】
また、前記機器連携装置は、さらに、前記第１および第２の機器が前記通信手段との間で通信可能なように前記通信手段と接続されているか否かを判別し、判別の結果を前記アプリケーションプログラムに通知する通知手段を備えることを特徴としてもよい。
【００２０】
これにより、アプリケーションプログラムは第１および第２の機器が通信手段に接続されているか否かを知ることができ、その結果、アプリケーションプログラムは、第１および第２の機器が接続されていれば、音声出力状態をシアターモードにすることができることをユーザに通知したり、第１および第２の機器が接続されていなければ、シアターモードの指示を省くことができ、アプリケーションプログラムの処理の自由度を高めることができる。
【００２１】
また、前記変換手段は、モノラル、ステレオ、および５．１チャンネルの何れかの状態で前記第２の機器から音声が出力されるように指示するデータを、前記アプリケーションプログラムから取得して、前記データを前記ＨＤＭＩ−ＣＥＣに従ったメッセージに変換し、前記通信手段は、前記メッセージを前記第２の機器に送信することを特徴としてもよい。
【００２２】
これにより、モノラル、ステレオ、および５．１チャンネルの何れかの再生モードをアプリケーションプログラムが指示すれば、その指示をアンプが適切に受け取ることができ、その結果、指定された再生モードで音声が出力されるように、ユーザによる操作負担を軽減してアンプを適切に操作することができる。
【００２３】
また、前記変換手段は、前記第２の機器から出力される音声の音場を指定するデータを、前記アプリケーションプログラムから受け付けると、前記データを前記ＨＤＭＩ−ＣＥＣに従ったメッセージに変換し、前記通信手段は、前記メッセージを前記第２の機器に送信することを特徴としてもよい。
【００２４】
これにより、例えばシネマモードやスポーツモードなどの音場モードをアプリケーションプログラムが指示すれば、その指示をアンプが適切に受け取ることができ、その結果、指定された音場モードで音声が出力されるように、ユーザによる操作負担を軽減してアンプを適切に操作することができる。
【００２５】
なお、本発明は、このような機器連携装置として実現することができるだけでなく、その方法やプログラム、そのプログラムを格納する記憶媒体、集積回路としても実現することができる。
【発明の効果】
【００２６】
本発明の機器連携は、ユーザによる操作負担を軽減して適切に機器を連携させることができるという作用効果を奏する。
【発明を実施するための最良の形態】
【００２７】
以下、本発明の実施の形態に係る機器連携装置について、図面を用いて説明する。
【００２８】
図２Ａは、本実施の形態における機器連携装置を含むシステムの構成を示す構成図である。
【００２９】
このシステムは、本実施の形態における機器連携装置Ａと、ｎ個の機器Ｂ１，Ｂ２，…，Ｂｎとから構成されている。この機器連携装置Ａは、ユーザによる操作負担を軽減して適切に機器Ｂ１，Ｂ２，…，Ｂｎの動作を連携させる。つまり、本実施の形態における機器連携装置Ａによる機器Ｂ１，Ｂ２，…，Ｂｎの制御によって、これらの機器Ｂ１，Ｂ２，…，Ｂｎが連携した処理を実行する。
【００３０】
例えば、本実施の形態にかかる機器連携装置Ａは、ＣＡＴＶを受信するＳＴＢ（セットトップボックス）として構成され、テレビやアンプをそれぞれ上述の機器として連携させる。このようなＳＴＢ、テレビ、アンプ、およびスピーカからホームシアターシステムが構成される。
【００３１】
図２Ｂは、本実施の形態に係るホームシアターシステムの構成を表すブロック図である。
【００３２】
図２Ｂに示すように、ホームシアターシステムは、テレビ１０１、アンプ１０２、スピーカ１０３、および機器連携装置たるＳＴＢ１０４で構成される。
【００３３】
本実施の形態におけるＳＴＢ１０４、テレビ１０１、およびアンプ１０２は、ＨＤＭＩ（Ｈｉｇｈ  Ｄｅｆｉｎｉｔｉｏｎ  Ｍｕｌｔｉｍｅｄｉａ  Ｉｎｔｅｒｆａｃｅ）−ＣＥＣ（Ｃｏｎｓｕｍｅｒ  Ｅｌｅｃｔｒｏｎｉｃｓ  Ｃｏｎｔｒｏｌ）コマンドを送受信するＨＤＭＩ−ＣＥＣ通信部を保持し、そのコマンドであるＨＤＭＩ−ＣＥＣメッセージを用いて、ＳＴＢ１０４によって受信されたアプリケーションプログラムが自動的に音声出力状態などを制御する。
【００３４】
また、本実施の形態では、ＳＴＢ１０４、テレビ１０１、およびアンプ１０２などの機器間の通信基本機能を、ミドルウエア、具体的にはＪａｖａ（登録商標）ミドルウエアを用いて実現している。個別の機器連携機能を、Ｊａｖａアプリケーションプログラムとして実現することで、常に最新の機器連携機能を実現できる。
【００３５】
なお、ＨＤＭＩ仕様の詳細は、Ｈｉｇｈ  Ｄｅｆｉｎｉｔｉｏｎ  Ｍｕｌｔｉｍｅｄｉａ  Ｉｎｔｅｒｆａｃｅ  ｓｐｅｃｉｆｉｃａｔｉｏｎ  Ｖｅｒｓｉｏｎ  １．２に記載されており、また、ＨＤＭＩ−ＣＥＣ仕様は、同仕様書のＡｐｐｅｎｄｉｘ「ｓｕｐｐｌｅｍｅｎｔａｌ  １  Ｃｏｎｓｕｍｅｒ  Ｅｌｅｃｔｒｏｎｉｃｓ  Ｃｏｎｔｒｏｌ」において規定されている。ＨＤＭＩ規格は、映像／音声の非圧縮デジタルデータを機器間で伝送するための伝送規格であり、伝送にはＨＤＭＩ規格に準拠した一本のケーブルが用いられる。ＨＤＭＩ−ＣＥＣは、そのケーブル（ＨＤＭＩケーブル）を介して機器間で双方向に機器制御コマンドを伝送するための仕様が規定されている。２００５年１１月現在、ｗｗｗ．ｈｄｍｉ．ｏｒｇからＨＤＭＩ仕様書をダウンロードすることで取得できる。
【００３６】
テレビ１０１は、ＨＤＭＩ端子を保持し、アンプ１０２とＨＤＭＩラインで接続されている。テレビ１０１は、アンプ１０２から送られてきた映像・音声を再生することが出来る。また、テレビ１０１は、ＨＤＭＩラインを通して送られてきたＨＤＭＩ−ＣＥＣのメッセージ（コマンド）を受け取り、そのメッセージ（コマンド）に対応する処理を行う。
【００３７】
図３は、テレビ１０１の構成を示す構成図である。
【００３８】
図３に示すように、テレビ１は、メモリ１０１ａと、リモコン受信部１０１ｂと、マイクロコンピュータ（以下、マイコンという）１０１ｃと、ＨＤＭＩ−ＣＥＣ通信部１０１ｄと、チューナ１０１ｅと、デコーダ１０１ｆと、ディスプレイ１０１ｇと、スピーカ１０１ｈとから構成されている。
【００３９】
テレビ１０１は、ユーザによって直接操作されたり、リモートコントロール装置（図示せず）（以下、テレビ用リモコンという）を用いても操作される。
【００４０】
マイコン１０１ｃは、リモコン受信部１０１ｂがテレビ用リモコンから発信されたコマンドを受信すると、そのコマンドに応じた処理を行い、チューナ１０１ｅの選局切換や、デコーダ１０１ｆの処理を制御する。デコーダ１０１ｆは、チューナ１０１ｅやＨＤＭＩ−ＣＥＣ通信部１０１ｄから入力された映像・音声信号を、マイコン１０１ｃの指示に応じて、ディスプレイ１０１ｇやスピーカ１０１ｈに出力する。また、マイコン１０１ｃは、ＨＤＭＩ−ＣＥＣ通信部１０１ｄから入力されたＨＤＭＩ−ＣＥＣコマンドに応じて、各設定や制御を行う。
【００４１】
また、テレビ１０１は、本体フロントパネル等に、ボタン等を有する入力部（図示せず）を具備し、この入力部からの入力によって、テレビ用リモコンを用いた操作と同様の操作を受け付ける。
【００４２】
アンプ１０２は、ＨＤＭＩ端子を保持し、テレビ１０１及びＳＴＢ１０４とＨＤＭＩラインで接続されている。また、アンプ１０２は、スピーカ１０３とスピーカ用ラインで接続されている。アンプ１０２は、ＳＴＢ１０４から映像・音声を受け取る。アンプ１０２は、受け取った映像・音声をテレビ１０１に送信する。また、シネマモード、スポーツモード、音楽モード、ドラマモードなどの所定の音場モードがアンプ１０２に設定されている場合には、アンプ１０２は、ＳＴＢ１０４から受け取った音声信号に、その音場モードに対応する音場特性を付加し、その音声信号をスピーカ１０３に送信する。もちろん、アンプ１０２は、音場特性を付加せずに音声信号を送信してもよい。ここで、音場特性の付加は、より具体的には、反射音の大きさや、数、残響音の大きさ、残響時間などの残響特性パラメータと周波数特性パラメータとに基づいた音声信号処理であり、従来の技術により実現可能である。なお、音場は、スピーカ１０３から出力される音声の状態や質であって、反射音の大きさ、数、残響音の大きさ、残響時間、周波数特性によって、上述のシネマモードやスポーツモードなどの各音場モードに分類される。
【００４３】
アンプ１０２は、ＨＤＭＩラインを通して送られてきたＨＤＭＩ−ＣＥＣのメッセージ（コマンド）を受け取り、そのメッセージ（コマンド）に対応する処理を行う。この処理には、上述の音場モードを設定する処理も含まれる。
【００４４】
図４は、アンプ１０２の構成を示す構成図である。
【００４５】
図４に示すように、アンプ１０２は、ＨＤＭＩ−ＣＥＣ通信部１０２ａと、マクロコンピュータ（以下、マイコンという）１０２ｂと、ＨＤＭＩ−ＣＥＣ通信部１０２ｃと、セレクター１０２ｄと、外部入力部ｅ１０２と、スピーカ出力部１０２ｆと、リモコン受信部１０２ｇとから構成されている。
【００４６】
アンプ１０２は、ユーザによって直接操作されたり、リモートコントロール装置（図示せず）（以下、アンプ用リモコンという）を用いても操作される。
【００４７】
マイコン１０２ｂは、リモコン受信部１０２ｇがアンプ用リモコンから発信されたコマンドを受信すると、そのコマンドに応じた処理を行う。また、マイコン１０２ｂは、ＨＤＭＩ−ＣＥＣ通信部１０２ａまたはＨＤＭＩ−ＣＥＣ通信部１０２ｃにより受信されたＨＤＭＩ−ＣＥＣコマンドに応じた処理を行う。
【００４８】
セレクター１０２ｄは、マイコン１０２ｂからの指示に応じて、ＨＤＭＩ-ＣＥＣ通信部１０２ｃから出力される音声信号と、外部入力部１０２ｅから出力される音声信号とを切り換え、切り換えられた音声信号をスピーカ出力部１０２ｆに出力する。ここで、セレクター１０２ｄは、音声信号に付加された音場特性たるフォーマット（ステレオ音声のフォーマットや、５．１チャンネル音声のフォーマットなど）に応じた態様で、その音声信号をスピーカ３に出力する。
【００４９】
また、アンプ１０２は、本体フロントパネル等に、ボタン等を有する入力部（図示せず）を具備し、この入力部からの入力によって、アンプ用リモコンを用いた操作と同様の操作を受け付ける。
【００５０】
スピーカ１０３は、映画館で臨場感のある音響効果を再現するためのマルチチャンネル音声の再生、例えば５．１チャンネル再生を行うスピーカの集合である。スピーカ１０３は、実際には、６つのスピーカ（図示せず）から構成される。つまり、スピーカ１０３は、ユーザに対して、正面、右前方、左前方、右後方、および左後方に配置される５つのスピーカと、低音出力用スピーカとで構成される。スピーカ３は、アンプ１０２から音声信号を受け取り、出力する。
【００５１】
ＳＴＢ１０４は、ＣＡＴＶ放送の受信・再生を行う。また、ＳＴＢ１０４は、再生した映像音声を出力するためのＨＤＭＩ端子を備えている。
【００５２】
図５は、本実施の形態に係るＳＴＢ１０４の構成を表したブロック図である。
【００５３】
ＳＴＢ１０４は、入力部２０１、第１メモリ２０２、第２メモリ２０３、受信部２０４、多重分離部２０５、デスクランブラ２０６、ＴＳデコーダ２０７、映像出力部２０８、音声出力部２０９、ＨＤＭＩ部２１０、およびＣＰＵ２１１で構成される。
【００５４】
入力部２０１は、フロントパネルやリモコン受光器等で構成され、ユーザからのチャンネルの選択等の指示を受け付ける。
【００５５】
図６は、入力部２０１として構成されたフロントパネルの一例を示す図である。
【００５６】
このフロントパネル３００は、上カーソルボタン３０１、下カーソルボタン３０２、左カーソルボタン３０３、右カーソルボタン３０４、ＯＫボタン３０５、取消ボタン３０６、ＥＰＧボタン３０７、およびシアターボタン３０８の８つのボタンを備えている。ユーザがボタンを押下すると、押下されたボタンの識別子がＣＰＵ２１１に通知される。
【００５７】
第１メモリ２０２は、ＲＡＭ（Random Access Memory）等で構成され、ＣＰＵ２１１が一時的にデータを保存する際に使用される。
【００５８】
第２メモリ２０３は、フラッシュメモリーやハードディスク等、電源供給が停止しても情報を保持可能なデバイスで構成され、ＣＰＵ２１１が実行するプログラムを保存する。第２メモリ２０３を、ＳＤ（Secure Digital：登録商標）メモリーカード等の取り外し可能な記憶デバイスとして構成してもよい。
【００５９】
受信部２０４は、ケーブルテレビ局からのケーブルに接続され、放送波を受信し、ＣＰＵ２１１から指定された周波数にチューニングし、ＭＰＥＧトラスポートストリームを抽出して多重分離部２０５に引き渡す。
【００６０】
多重分離部２０５は、受信部２０４からＭＰＥＧトラスポートストリームを受け取り、ＣＰＵ２１１から指定された情報をそのＭＰＥＧトラスポートストリームから抽出してＣＰＵ２１１に引渡す。また、多重分離部２０５は、ＭＰＥＧトラスポートストリームをそのままデスクランブラ２０６に引き渡す。
【００６１】
デスクランブラ２０６は、多重分離部２０５から与えられたスクランブルされているＭＰＥＧトラスポートストリームをデスクランブル（＝復号）し、ＴＳデコーダ２０７に引き渡す。デスクランブラ２０６は、ＳＴＢ１０４に内蔵されたモジュールでも良いし、北米ケーブル受信機で導入されているＣａｂｌｅＣＡＲＤ（登録商標）でもよい。ＣａｂｌｅＣＡＲＤの仕様は米国ＣａｂｌｅＬａｂｓが策定したＣａｂｌｅＣＡＲＤ  Ｉｎｔｅｒｆａｃｅ  Ｓｐｅｃｉｆｉｃａｔｉｏｎに記載されており、ここでは説明を省略する。
【００６２】
ＴＳデコーダ２０７は、ＣＰＵ２１１から音声データと映像データの識別子を受け取る。さらに、ＴＳデコーダ２０７は、デスクランブラ２０６から受け取ったデスクランブルされたストリームから、受け取った音声データと映像データの識別子に対応する音声データと映像データを抽出する。そして、ＴＳデコーダ２０７は、抽出した映像データを映像出力部２０８に引き渡し、音声データを音声出力部２０９に引き渡す。また、ＴＳデコーダ２０７は、その両方（映像データおよび音声データ）を、ＨＤＭＩ部２１０に引き渡す。
【００６３】
映像出力部２０８は、映像出力端子を含み、受け取った映像データをその映像出力端子に対応した映像データに変換して出力する。映像出力端子の例としては、コンポジットケーブル端子などがある。
【００６４】
音声出力部２０９は、音声出力端子を含み、受け取った音声データをその音声出力端子に対応した音声データに変換して出力する。音声出力端子の例としては、イヤホン端子や、コンポジットケーブル端子などがある。
【００６５】
ＨＤＭＩ部２１０は、ＨＤＭＩ端子を含み、受け取った映像データおよび音声データをＨＤＭＩ仕様に基づいた映像音声データ形式に変換して出力する。また、ＨＤＭＩ部２１０は、ＣＰＵ２１１からＨＤＭＩ−ＣＥＣメッセージ送信の指示を受け取ると、所定のコマンドをＨＤＭＩ仕様に基づいたデータ形式に変換してそのメッセージを出力する。また、ＨＤＭＩ部２１０は、ＨＤＭＩ端子を通して受け取ったＨＤＭＩ−ＣＥＣメッセージをＣＰＵ２１１に引き渡す。
【００６６】
ＣＰＵ２１１は、第２メモリ２０３が記憶するプログラムを実行することで、受信部２０４、多重分離部２０５、デスクランブラ２０６、ＴＳデコーダ２０７、およびＨＤＭＩ部２１０を制御する。
【００６７】
図７は、第２メモリ２０３に記憶され、ＣＰＵ２１１に実行されるプログラムの構成図である。
【００６８】
プログラム４００は、複数のサブプログラムで構成され、ＯＳ４０１、ＥＰＧ４０２、ＪａｖａＶＭ４０３、サービスマネージャ４０４、およびＪａｖａライブラリ４０５で構成される（Ｊａｖａは登録商標）。
【００６９】
ＯＳ４０１は、ＳＴＢ１０４の電源が投入されるときにＣＰＵ２１１が起動するためのサブプログラムである。ＯＳ４０１の「ＯＳ」はオペレーティングシステムの略であり、ＯＳ４０１は例えばＬｉｎｕｘ等である。このようなＯＳ４０１は、他のサブプログラムを並行して実行するカーネル４０１ａ及びライブラリ４０１ｂで構成される。本実施の形態においては、ＯＳ４０１のカーネル４０１ａは、ＥＰＧ４０２とＪａｖａＶＭ４０３をサブプログラムとして実行する。また、ライブラリ４０１ｂは、これらサブプログラムに対して、ＳＴＢ１０４が保持する構成要素を制御するための複数の機能を提供する。
【００７０】
本実施の形態では、ライブラリ４０１ｂは、チューナ４０１ｂ１、限定解除部４０１ｂ２、ＣＥＣ４０１ｂ４、およびＡＶ再生部４０２ｂ３を含む。チューナ４０１ｂ１は、他のサブプログラムやＪａｖａライブラリ４０５のＴｕｎｅｒ４０５ｃから周波数を含むチューニング情報を受け取り、受信部２０４に引き渡す。受信部２０４は与えられたチューニング情報に基づき復調処理を行い、復調したデータを多重分離部２０５に引き渡すことができる。この結果、他のサブプログラム及びＪａｖａライブラリ４０５のＴｕｎｅｒ４０５ｃはライブラリ４０１ｂを通して受信部２０４を制御することができる。
【００７１】
ＣＥＣ４０１ｂ４は、他のサブプログラムやＪａｖａライブラリ４０５の機器制御ライブラリ４０５ｅから必要な情報を受け取り、ＨＤＭＩ−ＣＥＣで規定されるメッセージを作成する。ＣＥＣ４０１ｂ４は、作成されたメッセージをＨＤＭＩ部２１０に引き渡すことで、ＨＤＭＩラインを介して他の機器にＨＤＭＩ−ＣＥＣのメッセージを送信する。また、ＣＥＣ４０１ｂ４は、ＨＤＭＩラインを介して他の機器からＨＤＭＩ−ＣＥＣのメッセージを受け取り、他のサブプログラムやＪａｖａライブラリ４０５の機器制御ライブラリ４０５ｅに通知する。
【００７２】
ＡＶ再生部４０１ｂ３は、他のサブプログラムやＪａｖａライブラリ４０５のＪＭＦ４０５ａから、音声のパケットＩＤと映像のパケットＩＤを受け取る。ＡＶ再生部４０１ｂ３は、その受け取った音声のパケットＩＤと映像のパケットＩＤを、ＴＳデコーダ２０７に与える。この結果、ＴＳデコーダ２０７は与えられたパケットＩＤに基づいて、フィルタリングを行い、映像および音声の再生を実現する。
【００７３】
ＥＰＧ４０２は、ユーザにテレビ番組の一覧を表示するとともに、ユーザからの入力を受け付ける番組表示部４０２ａと、チャンネルの選局を行う再生部４０２ｂとで構成される。ここで、ＥＰＧはＥｌｅｃｔｒｉｃ  Ｐｒｏｇｒａｍ  Ｇｕｉｄｅの略である。ＥＰＧ４０２は、ＳＴＢ１０４の電源が投入されると、カーネル４０１ａによって起動される。起動されたＥＰＧ４０２の内部では、番組表示部４０２ａと再生部４０２ｂが同時に起動される。番組表示部４０２ａは起動されると、ＳＴＢ１０４の入力部２０１を通して、ユーザからの入力を待つ。ここで、入力部２０１が図６で示されるフロントパネル３００として構成されている場合、ユーザがフロントパネル３００のＥＰＧボタン３０７を押下すると、ＥＰＧボタンの識別子がＣＰＵ２１１に通知される。ＣＰＵ２１１上で動作するサブプログラムであるＥＰＧ４０２の番組表示部４０２ａは、この識別子を受け取ると、番組情報表示データを作成してＨＤＭＩ部２１０に出力する。テレビ１０１は、アンプ１０２を介してその番組情報表示データを受け取り、上述のテレビ番組の一覧である電子番組表を表示する。
【００７４】
図８Ａおよび図８Ｂは、テレビ１０１に表示された電子番組表の一例を示す図である。
【００７５】
図８Ａに示すように、テレビ１０１には、電子番組表が格子状に表示されている。列５０１には、時刻情報が表示されている。列５０２には、チャンネル名「チャンネル１」と、列５０１の時刻に対応する時間帯に放映される番組の名称とが表示されている。チャンネル名「チャンネル１」では、９：００〜１０：３０に番組「ニュース９」が放映され、１０：３０〜１２：００に番組「映画ＡＡＡ」が放映されることが表されている。列５０３にも、列５０２と同様、チャンネル名「チャンネル２」と、列５０１の時刻に対応する時間帯に放映される番組の名称とが表示されている。９：００〜１１：００に番組「映画ＢＢＢ」が放映され、１１：００〜１２：００に番組「サッカー」が放映されることが表されている。カーソル５３０は、フロントパネル３００の左カーソルボタン３０３と右カーソルボタン３０４が押下されると移動する。図８Ａの状態で、右カーソルボタン３０４が押下されると、図８Ｂに示すように、カーソル５３０は右に移動する。また、図８Ｂの状態で、左カーソルボタン３０３が押下されると、図８Ａに示すように、カーソル５３０は左に移動する。
【００７６】
図８Ａの状態で、フロントパネル３００のＯＫボタン３０５が押下されると、番組表示部４０２ａは、「チャンネル１」の識別子を再生部４０２ｂに通知する。図８Ｂの状態で、フロントパネル３００のＯＫボタン３０５が押下されると、番組表示部４０２ａは、「チャンネル２」の識別子を再生部４０２ｂに通知する。
【００７７】
また、番組表示部４０２ａは、放送波に重畳された番組情報表示データを、多重分離部２０５を通して定期的に、第２メモリ２０３に記録しておく。一般的に、放送局からの番組情報表示データの取得には時間が掛かる。フロントパネル３００のＥＰＧボタン３０７が押下された時、番組表示部４０２ａは、第２メモリ２０３に予め保存された番組情報表示データを読み出することで、素早く電子番組表を表示することができる。
【００７８】
図９は、第２メモリ２０３に記憶されている番組情報表示データの一例を示す図である。
【００７９】
番組情報表示データに含まれる各番組情報は表形式で格納されている。列６０１は、チャンネルの識別子である。列６０２は、番組名である。列６０３は番組の放送開始時間、列６０４は放送終了時間である。列６０５は、番組の音声種別を表しており、モノラル音声、ステレオ音声、および５．１チャンネル音声をそれぞれ「モノラル」、「ステレオ」、および「５．１」と表記している。列６０６は、番組の種別を表している。通常番組の種別は空欄で示され、映画番組の種別は「映画」で示され、スポーツ番組の種別は「スポ」で表される。行６１１〜６１４の各行は、それぞれ１つの番組情報を表す。この例では、１つの番組情報は、チャンネルの識別子、番組名、放送開始時間、放送終了時間、番組の音声種別、および番組の種別の組となる。例えば、行６１１は、チャンネル識別子が「１」、番組名が「ニュース９」、放送開始時間が「９：００」、放送終了時間が「１０：３０」、音声種別が「モノラル」、番組の種別が「通常」であることを示す組となっている。
【００８０】
再生部４０２ｂは、受け取ったチャンネルの識別子を用いて、そのチャンネルの番組を再生する、すなわちチャンネルを構成する映像と音声を再生する。チャンネルの識別子とチャンネルの関係は、チャンネル情報として、第２メモリ２０３に予め格納されている。
【００８１】
図１０は、第２メモリ２０３に格納されているチャンネル情報の一例を示す図である。
【００８２】
チャンネル情報は表形式で格納されている。つまり、第２メモリ２０３には、表形式で複数のチャンネル情報を示すチャンネル情報テーブル７００が格納されている。列７０１は、チャンネルの識別子である。列７０２は、チャンネル名である。列７０３はチューニング情報である。ここで、チューニング情報は、周波数や転送レート、符号化率などを含み、受信部２０４に与える値である。列７０４はプログラムナンバーである。プログラムナンバーとは、ＭＰＥＧ２規格で規定されているＰＭＴ（Program Map Table）を識別するための番号である。ＰＭＴに関しては、後述する。行７１１〜７１４の各行は、各チャンネルの識別子、チャンネル名、チューニング情報、およびプログラムナンバーの組となる。行７１１は、識別子が「１」、チャンネル名が「チャンネル１」、チューニング情報が周波数「１５０ＭＨｚ」、プログラムナンバーが「１０１」であることを示す組となっている。再生部４０２ｂは、チャンネルの再生を行うため、受け取ったチャンネルの識別子をそのままサービスマネージャ４０４に引き渡す。
【００８３】
また、再生部４０２ｂは、再生中に、ユーザがフロントパネル３００の上カーソルボタン３０１と下カーソルボタン３０２を押下すると、入力部２０１からＣＰＵ２１１を通して、その押下に応じた通知を受け取り、再生している番組のチャンネルを変更する。つまり、ユーザが上カーソルボタン３０１を押下すると、再生部４０２ｂは、現在再生中の番組のチャンネルよりも一つ小さいチャンネル識別子を持つチャンネルの番組を再生し、ユーザが下カーソルボタン３０２を押下すると、現在再生中の番組のチャンネルよりも一つ大きいチャンネル識別子を持つチャンネルの番組を再生する。そして、再生部４０２ｂは、第２メモリ２０３に現在再生中の番組のチャンネル識別子を記録する。
【００８４】
図１１Ａ、図１１Ｂおよび図１１Ｃは、第２メモリ２０３に保存しているチャンネル識別子の例を示す図である。
【００８５】
図１１Ａに示すように、チャンネル識別子「３」が記憶されている場合、図１０に示すように、そのチャンネル識別子は、チャンネル名「ＴＶ  ３」のチャンネルの番組が再生中であることを示す。図１１Ａの状態で、ユーザが上カーソルボタン３０１を押下すると、再生部４０２ｂは、図１０のチャンネル情報テーブル７００を参照し、表中で現在再生中のチャンネルよりも一つ小さいチャンネル識別子を持つチャンネルであるチャンネル名「チャンネル２」のチャンネルの番組に再生を切り変えるため、サービスマネージャ４０４にチャンネル名「チャンネル２」のチャンネル識別子「２」を引き渡す。同時に、再生部４０２ｂは、第２メモリ２０３に記憶されているチャンネル識別子を「２」に書き換える。図１１Ｂは、チャンネル識別子が書き換えられた状態を表す。また、図１１Ａの状態で、ユーザが下カーソルボタン３０２を押下すると、再生部４０２ｂは、図１０のチャンネル情報テーブル７００を参照し、表中で現在再生中のチャンネルよりも一つ大きいチャンネル識別子を持つチャンネルであるチャンネル名「ＴＶ  Ｊａｐａｎ」のチャンネルの番組に再生を切り変えるため、サービスマネージャ４０４にチャンネル名「ＴＶ  Ｊａｐａｎ」のチャンネル識別子「４」を引き渡す。同時に、再生部４０２ｂは、第２メモリ２０３に記憶されているチャンネル識別子を「４」に書き換える。図１１Ｃは、チャンネル識別子が書き換えられた状態を表す。チャンネル識別子は、第２メモリ２０３に記憶されているので、ＳＴＢ１０４の電源が切られた際も保存されている。
【００８６】
更に再生部４０２ｂは、ＳＴＢ１０４の電源が投入された際に、起動されると、第２メモリ２０３に記憶されているチャンネル識別子を読み出す。そして、再生部４０２ｂは、そのチャンネル識別子をサービスマネージャ４０４に引渡す。これにより、ＳＴＢ１０４は、電源投入時に前回の稼動時に再生されていた最後の番組のチャンネルの再生を開始することができる。
【００８７】
ＪａｖａＶＭ４０３は、プログラム実行手段として構成され、Ｊａｖａ（登録商標）言語で記述されたプログラムを逐次解析し実行するＪａｖａバーチャルマシンである。Ｊａｖａ言語で記述されたプログラムはバイトコードと呼ばれる、ハードウェアに依存しない中間コードにコンパイルされる。Ｊａｖａバーチャルマシンは、このバイトコードを実行するインタープリタである。また、一部のＪａｖａバーチャルマシンは、バイトコードをＣＰＵ２１１が理解可能な実行形式に翻訳してから、ＣＰＵ２１１に引渡し、実行することも行う。ＪａｖａＶＭ４０３は、カーネル４０１ａに実行するＪａｖａプログラムを指定されて起動される。本実施の形態では、カーネル４０１ａは、実行するＪａｖａプログラムとしてサービスマネージャ４０４を指定する。Ｊａｖａ言語の詳細は、書籍「Ｊａｖａ  Ｌａｎｇｕａｇｅ  Ｓｐｅｃｉｆｉｃａｔｉｏｎ（ＩＳＢＮ  ０−２０１−６３４５１−１）」等の多くの書籍で解説されている。ここでは、その詳細を省略する。また、ＪａｖａＶＭ自体の詳細な動作などは、「Ｊａｖａ  Ｖｉｒｔｕａｌ  Ｍａｃｈｉｎｅ  Ｓｐｅｃｉｆｉｃａｔｉｏｎ（ＩＳＢＮ  ０−２０１−６３４５１―Ｘ）」等の多くの書籍で解説されている。ここでは、その詳細を省略する。
【００８８】
サービスマネージャ４０４は、Ｊａｖａ言語で書かれたＪａｖａプログラムであり、ＪａｖａＶＭ４０３によって逐次実行される。サービスマネージャ４０４は、ＪＮＩ（Ｊａｖａ  Ｎａｔｉｖｅ  Ｉｎｔｅｒｆａｃｅ）を通して、Ｊａｖａ言語で記述されていない他のサブプログラムを呼び出したり、または、呼び出されたりすることが可能である。ＪＮＩに関しても、書籍「Ｊａｖａ  Ｎａｔｉｖｅ  Ｉｎｔｅｒｆａｃｅ」等の多くの書籍で解説されている。ここでは、その詳細を省略する。
【００８９】
サービスマネージャ４０４は、ＪＮＩを通して、再生部４０２ｂよりチャンネル識別子を受け取る。
【００９０】
サービスマネージャ４０４は、最初にＪａｖａライブラリ４０５の中にあるＴｕｎｅｒ４０５ｃに、チャンネル識別子を引き渡し、チューニングを依頼する。Ｔｕｎｅｒ４０５ｃは、第２メモリ２０３が記憶するチャンネル情報テーブル７００を参照し、チューニング情報を獲得する。今、サービスマネージャ４０４がチャンネル識別子「２」をＴｕｎｅｒ４０５ｃに引き渡すと、Ｔｕｎｅｒ４０５ｃは、図１０に示すチャンネル情報テーブル７００の行７１２を参照して、対応するチューニング情報「１５６ＭＨｚ」を獲得する。Ｔｕｎｅｒ４０５ｃは、ＯＳ４０１のライブラリ４０１ｂのチューナ４０１ｂ１を通して、受信部２０４にチューニング情報を引き渡す。受信部２０４は与えられたチューニング情報に従って放送局から送信されてきた信号を復調し、多重分離部２０５に引き渡す。
【００９１】
次に、サービスマネージャ４０４は、Ｊａｖａライブラリ４０５の中にあるＣＡ４０５ｄにデスクランブルを依頼する。ＣＡ４０５ｄは、ＯＳ４０１のライブラリ４０１ｂの限定解除部４０１ｂ２を通して復号に必要な情報をデスクランブラ２０６に与える。デスクランブラ２０６は、与えられた情報を元に、受信部２０４から与えられた信号を復号しＴＳデコーダ２０７に引き渡す。
【００９２】
次に、サービスマネージャ４０４は、Ｊａｖａライブラリ４０５の中にあるＪＭＦ４０５ａにチャンネル識別子を与え、映像および音声の再生を依頼する。
【００９３】
まず、ＪＭＦ４０５ａは、再生すべき映像と音声を特定するためのパケットＩＤをＰＡＴおよびＰＭＴから取得する。ＰＡＴやＰＭＴは、ＭＰＥＧ２規格で規定されている、ＭＰＥＧ２トランスポートストリーム内の番組構成を表現するテーブルであり、ＭＰＥＧ２トランスポートストリームに含まれるパケットのペイロードに埋め込まれて、音声や映像と共に送信されるものである。ＰＡＴは、Ｐｒｏｇｒａｍ  Ａｓｓｏｃｉａｔｉｏｎ  Ｔａｂｌｅの略で、パケットＩＤ「０」のパケットに格納され送信されている。ＪＭＦ４０５ａは、ＰＡＴを取得するため、ＯＳ４０１のライブラリ４０１ｂを通して、多重分離部２０５にパケットＩＤ「０」を指定する。多重分離部２０５がパケットＩＤ「０」でフィルタリングを行い、ＣＰＵ２１１に引き渡すことで、ＪＭＦ４０５ａは、ＰＡＴのパケットを収集する。
【００９４】
図１２は、収集したＰＡＴの一例を模式的に表した図である。
【００９５】
列９０１は、プログラムナンバーである。列９０２は、パケットＩＤである。列９０２のパケットＩＤはＰＭＴを取得するために用いられる。行９１１〜９１３は、チャンネルのプログラムナンバーとそのプログラムナンバーに対応するパケットＩＤとの組である。ここでは、３つのチャンネルが定義されている。行９１１は、プログラムナンバー「１０１」とパケットＩＤ「５０１」の組が定義されている。今、ＪＭＦ４０５ａに与えられたチャンネル識別子が「２」とすると、ＪＭＦ４０５ａは、図１２のＰＡＴの行９１２を参照して、対応するプログラムナンバー「１０２」を獲得し、次に、図１２のＰＡＴの行９１２を参照し、プログラムナンバー「１０２」に対応するパケットＩＤ「５０２」を獲得する。
【００９６】
ＰＭＴは、Ｐｒｏｇｒａｍ  Ｍａｐ  Ｔａｂｌｅの略で、ＰＡＴで規定されたパケットＩＤのパケットに格納され送信されている。ＪＭＦ４０５ａは、ＰＭＴを取得するため、ＯＳ４０１のライブラリ４０１ｂを通して、多重分離部２０５にパケットＩＤを指定する。ここで、指定するパケットＩＤは「５０２」とする。多重分離部２０５がパケットＩＤ「５０２」でフィルタリングを行い、ＣＰＵ２１１に引き渡すことで、ＪＭＦ４０５ａは、ＰＭＴのパケットを収集する。
【００９７】
図１３は、収集したＰＭＴの一例を模式的に表した図である。
【００９８】
列１００１は、ストリーム種別であり、列１００２は、パケットＩＤである。列１００２で指定されるパケットＩＤのパケットには、ストリーム種別で指定された情報がペイロードに格納され送信されている。列１００３は補足情報である。行１０１１〜１０１４は、それぞれエレメンタリーストリームのパケットＩＤと、送信している情報の種別との組である。行１０１１は、ストリーム種別「音声」とパケットＩＤ「５０１１」の組であり、パケットＩＤ「５０１１」のペイロードには音声が格納されていることを表す。ＪＭＦ４０５ａは、ＰＭＴから再生する映像と音声のパケットＩＤを獲得する。ＪＭＦ４０５ａは、図１３に示すＰＭＴを参照して、行１０１１から音声のパケットＩＤ「５０１１」を獲得し、行１０１２から映像のパケットＩＤ「５０１２」を獲得する。
【００９９】
次に、ＪＭＦ４０５ａは、ＯＳ４０１のライブラリ４０１ｂのＡＶ再生部４０１ｂ３に、獲得した音声のパケットＩＤと映像のパケットＩＤを引き渡す。ＡＶ再生部４０１ｂ３は、受け取った音声のパケットＩＤと映像のパケットＩＤを、ＴＳデコーダ２０７に与える。ＴＳデコーダ２０７は与えられたパケットＩＤでフィルタリングを行う。ここでは、ＪＭＦ４０５ａは、パケットＩＤ「５０１１」のパケットを音声出力部２０８およびＨＤＭＩ部２１０に引き渡し、パケットＩＤ「５０１２」のパケットを映像出力部２０８およびＨＤＭＩ部２１０に引き渡す。音声出力部２０８は、与えられたパケットを適宜変換して（例えばデジタル−アナログ変換）出力する。映像出力部２０８は、与えられたパケットを適宜変換して（例えばデジタル−アナログ変換）出力する。ＨＤＭＩ部２１０は、ＨＤＭＩ仕様に基づき、受け取った音声データおよび映像データのパケットデータを変換して出力する。
【０１００】
最後にサービスマネージャ４０４は、Ｊａｖａライブラリ４０５の中にあるＡＭ４０５ｂにチャンネル識別子を与え、データ放送再生を依頼する。ここで、データ放送再生とは、ＭＰＥＧ２トランスポートストリームに含まれるＪａｖａプログラムを抽出し、ＪａｖａＶＭ４０３に実行させることである。ＭＰＥＧ２トランスポートストリームにＪａｖａプログラムを埋め込む方法は、ＭＰＥＧ規格書  ＩＳＯ／ＩＥＣ１３８１８−６に記述されたＤＳＭＣＣという方式を用いる。ここではＤＳＭＣＣの詳細な説明は省略する。ＤＳＭＣＣ方式は、ＭＰＥＧ２トランスポートストリームのパケットの中に、コンピュータで使用されているディレクトリやファイルで構成されるファイルシステムをエンコードする方法を規定している。また、実行するＪａｖａプログラムの情報はＡＩＴと呼ばれる形式で、ＭＰＥＧ２トランスポートストリームのパケットの中に埋め込まれ送信されている。ＡＩＴは、ＤＶＢ−ＭＨＰ規格（正式には、ＥＴＳＩ  ＴＳ  １０１  ８１２  ＤＶＢ−ＭＨＰ仕様Ｖ１．０．２）の１０章に定義されており、Ａｐｐｌｉｃａｔｉｏｎ  Ｉｎｆｏｒｍａｔｉｏｎ  Ｔａｂｌｅの略である。
【０１０１】
ＡＭ４０５ｂは、まず、ＡＩＴを獲得するため、ＪＭＦ４０５ａと同様に、ＰＡＴおよびＰＭＴを取得し、ＡＩＴが格納されているパケットのパケットＩＤを獲得する。今、与えられたチャンネル識別子が「２」で、図１２に示すＰＡＴと図１３に示すＰＭＴが送信されている場合、ＡＭ４０５ｂは、ＪＭＦ４０５ａと同様の手順で、図１３のＰＭＴを獲得する。ＡＭ４０５ｂは、ＰＭＴから、ストリーム種別「データ」および補足情報「ＡＩＴ」に該当するエレメンタリーストリームのパケットＩＤを抽出する。例えば、ＡＭ４０５ｂは、図１３のＰＭＴを参照して、行１０１３のエレメンタリーストリームのパケットＩＤ「５０１３」を獲得する。
【０１０２】
ＡＭ４０５ｂは、ＯＳ４０１のライブラリ４０１ｂを通して多重分離部２０５にＡＩＴのパケットＩＤを与える。多重分離部２０５は、与えられたパケットＩＤでフィルタリングを行い、ＣＰＵ２１１に引き渡す。この結果、ＡＭ４０５ｂは、ＡＩＴのパケットを収集することができる。
【０１０３】
図１４は、収集したＡＩＴの一例を模式的に表した図である。
【０１０４】
列１１０１はＪａｖａプログラムの識別子である。列１１０２はＪａｖａプログラムの制御情報である。制御情報には「ａｕｔｏｓｔａｒｔ」、「ｐｒｅｓｅｎｔ」および「ｋｉｌｌ」などがある。「ａｕｔｏｓｔａｒｔ」は、即時にＳＴＢ１０４がこのプログラムを自動的に実行することを意味し、「ｐｒｅｓｅｎｔ」は、自動実行しないことを意味し、「ｋｉｌｌ」は、プログラムを停止することを意味する。列１１０３は、ＤＳＭＣＣ方式でＪａｖａプログラムを含んでいるパケットＩＤを抽出するためのＤＳＭＣＣ識別子である。列１１０４はＪａｖａプログラムのプログラム名である。行１１１１と１１１２は、Ｊａｖａプログラムの情報の組である。行１１１１で定義されるＪａｖａプログラムは、識別子「３０１」、制御情報「ａｕｔｏｓｔａｒｔ」、ＤＳＭＣＣ識別子「１」、およびプログラム名「ａ／ＴｏｐＸｌｅｔ」の組である。行１１１２で定義されるＪａｖａプログラムは、識別子「３０２」、制御情報「ｐｒｅｓｅｎｔ」、ＤＳＭＣＣ識別子「１」、およびプログラム名「ｂ／ＧａｍｅＸｌｅｔ」の組である。ここで２つのＪａｖａプログラムは同じＤＳＭＣＣ識別子を持つが、これは１つのＤＳＭＣＣ方式でエンコードされたファイルシステム内に２つのＪａｖａプログラムが含まれていることを表す。ここでは、Ｊａｖａプログラムに対して４つの情報しか規定されていないが、実際にはより多くの情報が定義される（ＤＶＢ−ＭＨＰ規格参照）。
【０１０５】
ＡＭ４０５ｂは、ＡＩＴの中から「ａｕｔｏｓｔａｒｔ」のＪａｖａプログラムを見つけ出し、対応するＤＳＭＣＣ識別子及びＪａｖａプログラム名を抽出する。ＡＭ４０５ｂは、例えば図１４に示すＡＩＴを参照して、行１１１１のＪａｖａプログラムを抽出し、ＤＳＭＣＣ識別子「１」及びＪａｖａプログラム名「ａ／ＴｏｐＸｌｅｔ」を獲得する。
【０１０６】
次に、ＡＭ４０５ｂは、ＡＩＴから取得したＤＳＭＣＣ識別子を用いて、ＪａｖａプログラムをＤＳＭＣＣ方式で格納しているパケットのパケットＩＤをＰＭＴから獲得する。具体的には、ＡＭ４０５ｂは、ＰＭＴの中で、ストリーム種別が「データ」で、補足情報のＤＳＭＣＣ識別子が上述の取得したＤＳＭＣＣ識別子に合致するエレメンタリーストリームのパケットＩＤを取得する。
【０１０７】
今、ＡＩＴから取得したＤＳＭＣＣ識別子が「１」であり、ＰＭＴが図１３に示すＰＭＴである場合、ＡＭ４０５ｂは、ＤＳＭＣＣ識別子が「１」である行１０１４のエレメンタリーストリームのパケットＩＤ「５０１４」を取り出す。
【０１０８】
ＡＭ４０５ｂは、ＯＳ４０１のライブラリ４０１ｂを通して多重分離部２０５に、ＤＳＭＣＣ方式でデータが埋めこめられたパケットのパケットＩＤを指定する。ここでは、ＡＭ４０５ｂは、パケットＩＤ「５０１４」を指定する。多重分離部２０５は、与えられたパケットＩＤでフィルタリングを行い、パケットをＣＰＵ２１１に引き渡す。この結果、ＡＭ４０５ｂは、必要なパケットを収集することができる。ＡＭ４０５ｂは、収集したパケットから、ＤＳＭＣＣ方式に従ってファイルシステムを復元し、第１メモリ２０２あるいは第２メモリ２０３に保存する。ファイルシステム等のデータを取り出して第１メモリ２０２あるいは第２メモリ２０３に保存することを以降、ダウンロードと呼ぶ。
【０１０９】
図１５は、ダウンロードしたファイルシステムの一例を示す図である。なお、図１５中、丸はディレクトリを表し、四角はファイルを表す。
【０１１０】
このファイルシステムは、ルートディレクトリ１２０１と、「ａ」で示されるディレクトリ１２０２と、「ｂ」で示されるディレクトリ１２０３と、「ＴｏｐＸｌｅｔ．ｃｌａｓｓ」で示されるファイル１２０４と、「ＧａｍｅＸｌｅｔ．ｃｌａｓｓ」で示されるファイル１２０５とを有する。
【０１１１】
ここでは、ＭＰＥＧ２トランスポートストリームからファイルシステムをダウンロードする例を記載したが、ＯＣＡＰ仕様では、ＩＰネットワークを用いたダウンロードなども規定している。また、ＡＩＴではなくＸＡＩＴと呼ばれる情報を用いてファイルシステムの存在位置を特定し、ファイルシステムをダウンロードする方法も規定されている。
【０１１２】
次にＡＭ４０５ｂは、第１メモリ２０２あるいは第２メモリ２０３にダウンロードしたファイルシステム中から実行するＪａｖａプログラムをＪａｖａＶＭ４０３に引き渡す。今、実行するＪａｖａプログラム名が「ａ／ＴｏｐＸｌｅｔ」とすると、Ｊａｖａプログラム名の最後に「．ｃｌａｓｓ」を付加したファイル「ａ／ＴｏｐＸｌｅｔ．ｃｌａｓｓ」が実行すべきファイルとなる。「／」はディレクトリやファイル名の区切りである。図１５に示すように、ファイル１２０４が実行すべきＪａｖａプログラムである。次にＡＭ４０５ｂは、ファイル１２０４をＪａｖａＶＭ４０３に引き渡す。
【０１１３】
ＪａｖａＶＭ４０３は、引き渡されたＪａｖａプログラムを実行する。
【０１１４】
サービスマネージャ４０４は、他のチャンネル識別子を受け取ると、Ｊａｖａライブラリ４０５に含まれる各ライブラリを通して再生している映像および音声と実行しているＪａｖａプログラムとを、同じくＪａｖａライブラリ４０５に含まれる各ライブラリを通して停止し、新たに受け取ったチャンネル識別子に基づいて、映像および音声の再生及びＪａｖａプログラムの実行を行う。
【０１１５】
また、サービスマネージャ４０４は、再生部４０２ｂだけでなく、ＪａｖａＶＭ４０３上で実行されるＪａｖａプログラムからチャンネル識別子を受け取る機能も備える。具体的には、サービスマネージャ４０４は、チャンネル識別子を受け取るためのＪａｖａ言語のクラス及びそのメソッドを提供する。サービスマネージャ４０４は、チャンネル識別子を受け取ると、Ｊａｖａライブラリ４０５に含まれる各ライブラリを通して現在再生している映像および音声と実行しているＪａｖａプログラムとを、同じくＪａｖａライブラリ４０５に含まれる各ライブラリを通して停止し、その後、新たに受け取ったチャンネル識別子に基づいて、新しい映像および音声の再生及びＪａｖａプログラムの実行を行う。
【０１１６】
Ｊａｖａライブラリ４０５は、第２メモリ２０３に格納されている複数のＪａｖａライブラリの集合である。本実施の形態では、ここでは、Ｊａｖａライブラリ４０５は、ＪＭＦ４０５ａ、ＡＭ４０５ｂ、Ｔｕｎｅｒ４０５ｃ、ＣＡ４０５ｄ、機器制御ライブラリ４０５ｅ、再生Ｌｉｂ４０５ｆ、ＩＯ４０５ｇ、ＡＷＴ４０５ｈ等を含んでいる。
【０１１７】
ＪＭＦ４０５ａ、ＡＭ４０５ｂ、Ｔｕｎｅｒ４０５ｃ、およびＣＡ４０５ｄの機能は、既に記述されているので省略する。
【０１１８】
再生Ｌｉｂ４０５ｆは、第２メモリ２０３が記憶している、現在再生しているチャンネルの識別子をＪａｖａプログラムに渡すためのＪａｖａ言語のクラスおよびメソッド（以下Ｊａｖａ  ＡＰＩと記述）を提供する。このＪａｖａ  ＡＰＩを利用することで、Ｊａｖａプログラムは、現在再生中のチャンネルを知ることができる。なお、ＡＰＩは、Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｇｒａｍ  Ｉｎｔｅｒｆａｃｅのことである。
【０１１９】
ＩＯ４０５ｇは、Ｊａｖａプログラムが第２メモリ２０３にデータを書き込むためのＪａｖａ  ＡＰＩ、あるいは、その書き込んだデータを第２メモリ２０３から読み込むためのＪａｖａ  ＡＰＩをＪａｖａプログラムに提供する。このＡＰＩを利用することで、Ｊａｖａプログラムは、任意のデータを第２メモリ２０３に保存することができる。この保存されたデータはＳＴＢ１０４の電源がオフになっても消えないので、Ｊａｖａプログラムは、ＳＴＢ１０４の電源が投入された後、再びそのデータを読み込むことができる。
【０１２０】
ＡＷＴ４０５ｈは、Ｊａｖａプログラムが描画を行ったり、入力部２０１からのキー入力通知を受け取るためのＪａｖａ  ＡＰＩを提供する。具体的には、ＡＷＴ４０５ｈは、「Ｔｈｅ  Ｊａｖａ  ｃｌａｓｓ  Ｌｉｂｒａｒｉｅｓ  Ｓｅｃｏｎｄ  Ｅｄｉｔｉｏｎ，Ｖｏｌｕｍｅ  ２」（ＩＳＢＮ０−２０１−３１００３−１）で既定されるｊａｖａ．ａｗｔパッケージ、ｊａｖａ．ａｗｔ．ｅｖｅｎｔパッケージ及びその他のｊａｖａ．ａｗｔのサブパッケージが相当する。ここでは、詳細な説明を省略する。
【０１２１】
ＳＩ４０５ｉは、Ｊａｖａプログラムがチャンネル情報や番組情報表示データを取得するＪａｖａ  ＡＰＩを提供する。具体的には、Ｊａｖａ  ＴＶ仕様などが存在する。また、生のバイナリーデータを放送中のＭＰＥＧ２トランスポートストリームから取得するＭＰＥＧセクションフィルターＡＰＩがＯＣＡＰ仕様の中で定義されており、送信されてきた独自の番組情報表示データをＪａｖａアプリケーションプログラム（以下、Ｊａｖａアプリケーションまたはアプリケーションという）が理解して取り扱うことも出来る。
【０１２２】
機器制御ライブラリ４０５ｅは、ＯＳ４０１のライブラリ４０１ｂのＣＥＣ４０１ｂ４を通して、ＨＤＭＩ部２１０を制御し、ＨＤＭＩ部２１０をインターフェースとして用い、ＳＴＢ１０４に接続されている他の機器の制御などを行う。
【０１２３】
図１６は、機器制御ライブラリ４０５ｅの内部構成の一例を表すブロック図である。
【０１２４】
機器制御ライブラリ４０５ｅは、接続機器管理部１３０１、電源制御部１３０２、音場制御部１３０３、低レベル送信部１３０４、および低レベル受信部１３０５を備える。なお、ここで機器制御ライブラリ４０５ｅは、ＳＴＢ１０４に接続されたアンプ１０２やテレビ１０１などの接続機器を制御する他の機能を含んでいても良い。また、本実施の形態では、機器制御ライブラリ４０５ｅおよびＣＥＣ４０１ｂ４から通信手段および変換手段が構成されている。つまり、機器制御ライブラリ４０５ｅおよびＣＥＣ４０１ｂ４は、Ｊａｖａアプリケーションによってテレビ１０１およびアンプ１０２が制御されるように、Ｊａｖａアプリケーションによって扱われるデータと、ＣＥＣ４０１ｂ４によって通信されるデータとの間の変換を行う。
【０１２５】
接続機器管理部１３０１は、ＳＴＢ１０４のＨＤＭＩ部２１０にＨＤＭＩラインで接続されているアンプ１０２やテレビ１０１などの機器を管理する。ＨＤＭＩ対応機器は、ＨＤＭＩラインに接続されると、ＨＤＭＩ−ＣＥＣ規格に基づき物理アドレスが割り当てられる。ＨＤＭＩ対応機器でＨＤＭＩ−ＣＥＣに対応しているアンプ１０２やテレビ１０１などの機器は、更にＨＤＭＩ−ＣＥＣ規格に基づき論理アドレスが割り当てられる。ＨＤＭＩ−ＣＥＣメッセージは、この論理アドレスを用いて送信先を指定する。論理アドレスにより機器の種別、例えば、テレビやＤＶＤプレーヤなど、を特定できるように仕様が規定されている。接続機器管理部１３０１は、接続されているＨＤＭＩ対応機器の物理アドレスおよび論理アドレス、つまりアンプ１０２およびテレビ１０１の物理アドレスおよび論理アドレスを機器管理情報として第１メモリ２０２に格納する。
【０１２６】
図１７は、図２Ｂに示された機器接続が行われている場合に、ＳＴＢ１０４の接続機器管理部１３０１が、第１メモリ２０２に格納している機器管理情報の一例を示す図である。
【０１２７】
機器管理情報は列１４０１と列１４０２を有し、列１４０１は、接続されている機器の物理アドレスを示し、列１４０２は、接続されている機器の論理アドレスを示す。ここでは、テレビ１０１およびアンプ１０２に対応する２つの情報が機器管理情報として保存されている。行１４１１は、テレビ１０１の情報を表し、この例では、テレビ１０１の物理アドレス「００００」を示すとともに、ＨＤＭＩ−ＣＥＣ規格における定義に基づきテレビを表す「０」を論理アドレスとして示している。行１４１２は、アンプ１０２の情報を表し、この例では、アンプ１０２の物理アドレス「１０００」を示すとともに、ＨＤＭＩ−ＣＥＣ規格における定義に基づきＡｕｄｉｏ  ｓｙｓｔｅｍを表す「５」を論理アドレスとして示している。
【０１２８】
接続機器管理部１３０１は、ダウンロードしたＪａｖａアプリケーションに対して、ＡＰＩ（Application Program Interface）を提供する。このＡＰＩによって、接続されている機器の物理アドレス、論理アドレス、および状態を検索することができる。これにより、Ｊａｖａアプリケーションは、接続されているＨＤＭＩ対応機器の情報を獲得することが出来る。
【０１２９】
図１８は、接続機器管理部１３０１に備えられるＡＰＩの例を示す図である。
【０１３０】
図１８の（１）に示すｇｅｔＤｅｖｉｃｅｓ（）メソッドは、接続されている機器の数に対応するＨＤＭＩＤｅｖｉｃｅオブジェクトを配列で返すＪａｖａ  ＡＰＩである。ここで、１つのＨＤＭＩＤｅｖｉｃｅオブジェクトは、１つの接続機器を表す。ＨＤＭＩＤｅｖｉｃｅオブジェクトは、２つのメソッドを有する。図１８の（２）に示す、その２つのメソッドのうちの１つであるｇｅｔＰｈｙｓｉｃａｌＤｅｖｉｃｅＮｕｍｂｅｒ（）メソッドは、ＨＤＭＩＤｅｖｉｃｅの物理アドレスを取得するＪａｖａ  ＡＰＩである。図１８の（３）に示す、その２つのメソッドのうちの他の１つであるｇｅｔＬｏｇｉｃａｌＤｅｖｉｃｅＮｕｍｂｅｒ（）メソッドは、ＨＤＭＩＤｅｖｉｃｅの論理アドレスを取得するＪａｖａ  ＡＰＩである。
【０１３１】
電源制御部１３０２は、ＳＴＢ１０４のＨＤＭＩ部２１０にＨＤＭＩラインで接続されている機器に対して、電源をＯＮまたはＯＦＦするためのＨＤＭＩ−ＣＥＣメッセージを送信する。電源をＯＮするには、ＨＤＭＩ―ＣＥＣ仕様が規定するメッセージ＜Ｕｓｅｒ  Ｃｏｎｔｒｏｌ Ｐｒｅｓｓｅｄ＞[“Ｐｏｗｅｒ”]を接続されている機器に送信する。このメッセージを送信することで、テレビ１０１の電源をＯＮにすることができる。実際には、電源制御部１３０２は、このメッセージを送信する前に、接続されている機器の状態をメッセージの送受信を行うことで確認し、電源がＯＮになっていなければ、電源ＯＮのメッセージを送信する。また、電源制御部１３０２は、電源ＯＮのメッセージを送信した後、接続機器の電源がＯＮになったことを示すメッセージを受け取ることで、接続機器の電源が投入されたことを確認する。
【０１３２】
電源制御部１３０２は、ダウンロードしたＪａｖａアプリケーションに対して、ＡＰＩを提供する。ここでは４つのＡＰＩの例を取り上げる。
【０１３３】
図１９は、電源制御部１３０２に備えられるＡＰＩの例を示す図である。
【０１３４】
図１９の（１）に示すＡｌｌＤｅｖｉｃｅＰｏｗｅｒＯｎ（）は、接続されている全ての機器の電源をＯＮするＪａｖａ  ＡＰＩである。成功するとｔｒｕｅが返り、失敗するとｆａｌｓｅが返る。Ｊａｖａアプリケーションが、このＡＰＩを呼び出すことで、接続されている全てのＨＤＭＩ対応機器の電源をＯＮにすることができる。図２Ｂに示すように、ＳＴＢ１０４上で実行されているＪａｖａアプリケーションがこのＡＰＩを呼び出すと、テレビ１０１およびアンプ１０２の２つの機器の電源を１度に投入することが出来る。
【０１３５】
電源制御部１３０２は、接続機器管理部１３０１を参照して、接続されているＨＤＭＩ対応機器に対してそれぞれメッセージを送信するか、全機器に一斉にメッセージを送信するｂｒｏａｄｃａｓｔメッセージ送信を行う。
【０１３６】
図１９の（２）に示すＤｅｖｉｃｅＰｏｗｅｒＯｎ（）は、特定の機器の電源をＯＮするＪａｖａ  ＡＰＩである。引数には、機器を表現するＨＤＭＩＤｅｖｉｃｅオブジェクトを与える。あるいは、機器を特定するための情報（機器の物理アドレスや論理アドレス等）を、このＡＰＩに与えてもよい。このＡＰＩを呼び出すことで、指定した機器の電源をＯＮすることができる。
【０１３７】
図１９の（３）に示すＡｌｌＤｅｖｉｃｅＰｏｗｅｒＯｆｆ（）は、全ての機器の電源をＯＦＦするＪａｖａ  ＡＰＩである。Ｊａｖａアプリケーションは、このＡＰＩを呼び出すことで、接続されている全ての機器の電源をＯＦＦすることができる。
【０１３８】
図１９の（４）に示すＤｅｖｉｃｅＰｏｗｅｒＯｆｆ（）は、特定の機器の電源をＯＦＦするＪａｖａ  ＡＰＩである。引数には、機器を表現するＨＤＭＩＤｅｖｉｃｅオブジェクトを与える。あるいは、機器を特定するための情報（機器の物理アドレスや論理アドレス等）を、このＡＰＩに与えてもよい。このＡＰＩを呼び出すことで、指定した機器の電源をＯＦＦすることができる。
【０１３９】
音場制御部１３０３は、テレビ１０１とアンプ１０２にＨＤＭＩ−ＣＥＣメッセージを送信し、シアターモードを実現する。シアターモードは、テレビ１０１の音声出力がミュートされ、かつ、アンプ１０２を介してスピーカ１０３からＳＴＢ１０４の音声が出力されている状態である。
【０１４０】
図２０は、音場制御部１３０３が音声出力状態をシアターモードに切り替える処理の流れを示す流れ図である。
【０１４１】
音場制御部１３０３は、テレビ１０１に対して、テレビ１０１の音声出力をミュートするように要求するＨＤＭＩ−ＣＥＣコマンドを送信する（ステップＳ１５０４）。この場合、ＨＤＭＩ−ＣＥＣコマンドはアンプ１０２を介してテレビ１０１に伝送されることになるが、これはＨＤＭＩ−ＣＥＣ仕様に従い行われる。
【０１４２】
また、音場制御部１３０３は、アンプ１０２に対して、ＳＴＢ１０４から受信した音声をスピーカ１０３へ出力させることを伝えるＨＤＭＩ−ＣＥＣコマンドを送信する（ステップＳ１５０５）。
【０１４３】
テレビ１０１は、ステップＳ１５０４で送信されたＨＤＭＩ−ＣＥＣコマンドをＨＤＭＩ−ＣＥＣ通信部１０１ｄで受信して、テレビ１０１からの出力音声をミュートする（ステップＳ１５０６）。
【０１４４】
アンプ１０２は、ステップ１１０５で送信されたＨＤＭＩ−ＣＥＣコマンドをＨＤＭＩ−ＣＥＣ通信部１０２ｃで受信して、ＳＴＢ１０４から受信した音声をスピーカ１０３へ出力する（ステップＳ１５０７）。ここで、ＳＴＢ１０４から出力される音声がモノラルであれば、アンプ１０２は、モノラルとしてその音声を出力する。アンプ１０２は、音声がステレオであれば、ステレオとしてその音声を出力し、音声が５．１チャンネルであれば、５．１チャンネルとしてその音声を出力する。また、アンプ１０２は、ステレオの音声を擬似的に５．１チャンネル音声に変換して出力したり、その逆に、５．１チャンネルの音声を擬似的にステレオの音声に変換して出力してもよい。
【０１４５】
以上のステップＳ１５０４〜Ｓ１５０７の処理により、音場制御部１３０３は音声出力の状態をシアターモードに切り替える。
【０１４６】
また、逆に、音場制御部１３０３は、上述と同様の方法により、シアターモードを終了して、アンプ１０２によるスピーカ１０３からの出力音声を停止し、テレビ１０１から音声出力させるように、音声出力状態を切り替える。
【０１４７】
また、音場制御部１３０３は、スピーカ１０３における音声再生方法を制御することが出来る。例えば、音場制御部１３０３は、スピーカ１０３によって形成される音場モードを、スポーツモードやシネマモードやドラマモードや音楽モードなどの視聴しているコンテンツに最適な音場モードに設定することが出来る。ここで、音場制御は、より具体的には、反射音の大きさや、数、残響音の大きさ、残響時間などの残響特性パラメータと、周波数特性パラメータとに基づいた音声信号処理を行うことであり、従来の技術により実現可能である。
【０１４８】
音場制御部１３０３は、ダウンロードしたＪａｖａアプリケーションに対して、ＡＰＩを提供する。
【０１４９】
図２１は、音場制御部１３０３に備えられるＡＰＩの例を示す図である。
【０１５０】
図２１の（１）に示すＨｏｍｅＴｈｅａｔｅｒＯＮ（）メソッドは、シアターモードをＯＮにするＪａｖａ  ＡＰＩである。Ｊａｖａアプリケーションは、このＡＰＩを呼び出すことで、シアターモードをＯＮ、つまりテレビ１０１の音声出力を停止し、アンプによる音声出力を開始することができる。
【０１５１】
図２１の（２）に示すＨｏｍｅＴｈｅａｔｅｒＯＦＦ（）メソッドは、シアターモードをＯＦＦにするＪａｖａ  ＡＰＩである。Ｊａｖａアプリケーションは、このＡＰＩを呼び出すことで、シアターモードをＯＦＦにすることができる。
【０１５２】
図２１の（３）に示すｓｅｔＰｌａｙＭｏｄｅ（）メソッドは、再生チャンネル数（再生モード）を指定するＪａｖａ  ＡＰＩである。Ｊａｖａアプリケーションは、引数に対応するモードを指定すると、音源に関係なく、音声の再生モードを、指定されたモード、例えばモノラル再生、ステレオ再生、または５．１チャンネル再生に切り替えることが出来る。例えば、音源が５．１チャンネルであっても、Ｊａｖａアプリケーションは、ステレオ再生を行うことが出来る。
【０１５３】
図２１の（４）に示すｓｅｔＳｏｕｎｄＭｏｄｅ（）メソッドは、音場モードを設定するＪａｖａ  ＡＰＩである。Ｊａｖａアプリケーションは、このＡＰＩの引数に所望の音場（音場モード）を与えることで、引数に応じた音場モードを指示するＨＤＭＩ−ＣＥＣメッセージをアンプ１０２に送信する。これにより、Ｊａｖａアプリケーションは、アンプ１０２に対してスポーツモードやシネマモードやドラマモードや音楽モードなどの音場モードの設定を実施することが出来る。
【０１５４】
低レベル送信部１３０４は、ダウンロードしたＪａｖａアプリケーションに対して、そのアプリケーションがＨＤＭＩ−ＣＥＣメッセージをバイナリー形式で指定して送信するためのＡＰＩを提供する。
【０１５５】
図２２は、低レベル送信部１３０４に備えられるＡＰＩの例を示す図である。
【０１５６】
図２２の（１）に示すｓｅｎｄ（）メソッドは、データを送信するＪａｖａ  ＡＰＩである。Ｊａｖａアプリケーションが、メッセージであるバイナリー形式のデータ（バイナリーデータ）をこのＡＰＩの引数に与えると、低レベル送信部１３０４は、そのバイナリーデータを送信する。バイナリーデータは、送信先の論理アドレス、またはＢｒｏａｄｃａｓｔ送信などの情報を含む。このバイナリーデータのフォーマットは、ＨＤＭＩ−ＣＥＣ仕様で定義されたコマンドであっても良いし、ＨＤＭＩ−ＣＥＣ仕様で定義されたベンダー独自コマンドのフォーマットに基づき、必要とする情報を含んだフォーマットであってもよい。
【０１５７】
図２２の（２）に示すｓｅｎｄ（）メソッドは、特定の機器に対してデータを送信するＪａｖａ  ＡＰＩである。Ｊａｖａアプリケーションは、メッセージの送信先となる機器を表すＨＤＭＩＤｅｖｉｃｅオブジェクトと送信メッセージをこのＡＰＩの引数に与える。
【０１５８】
低レベル受信部１３０５は、ダウンロードしたＪａｖａアプリケーションに対して、そのアプリケーションがＨＤＭＩ−ＣＥＣメッセージをバイナリー形式で受け取るためのＡＰＩを提供する。低レベル受信部１３０５は、ダウンロードしたＪａｖａアプリケーションから、予め、受信したＨＤＭＩ−ＣＥＣメッセージを配信するためのリスナー（コールバック関数）を受け付ける。
【０１５９】
図２３は、低レベル受信部１３０５に備えられるＡＰＩの例を示す図である。
【０１６０】
図２３の（１）に示すａｄｄＬｉｓｔｅｎｅｒ（）メソッドは、リスナーを受け付けるためのＪａｖａ  ＡＰＩである。低レベル受信部１３０５は、ＨＤＭＩ−ＣＥＣメッセージを受信すると、Ｊａｖａアプリケーションが登録したリスナーに配信する。
【０１６１】
図２３の（２）に示すｒｅｃｅｉｖｅ（）メソッドは、リスナーに定義された受信メッセージを受け取るためのＪａｖａ  ＡＰＩである。ここで、低レベル受信部１３０５は、リスナーの受付と同時に、メッセージ配信の条件の指定を受け付けても良い。例えば、低レベル受信部１３０５は、物理アドレスや論理アドレス等の指定とメッセージ配信の条件の指定を受付け、その条件に合致するメッセージのみを、Ｊａｖａアプリケーションが登録したリスナーに配信する。
【０１６２】
図２３の（３）に示すａｄｄＬｉｓｔｅｎｅｒメソッドは、メッセージ配信の条件とリスナーを受け付けるためのＪａｖａ  ＡＰＩである。低レベル受信部１３０５は、このＡＰＩによって、リスナーとメッセージ配信の条件を表すバイトデータとを受け取る。
【０１６３】
次に、ダウンロードされたＪａｖａアプリケーションが、機器制御ライブラリ４０５ｅを用いて、図２Ｂで構成されるホームシアターシステムを制御する例を説明する。
【０１６４】
Ｊａｖａアプリケーションは、Ｊａｖａライブラリ４０５やサービスマネージャ４０４の機能を利用して、様々なサービスをＳＴＢ１０４上で実現することが出来る。ダウンロードしたＪａｖａアプリケーションは、図８Ａまたは図８Ｂで示した電子番組表の表示も、ダウンロードＥＰＧアプリケーションとして実行することが出来る。ダウンロードＥＰＧアプリケーションは、ＳＩ４０５ｉを用いて番組情報表示データを取得し、ＡＷＴ４０５ｈを用いてディスプレイ上に電子番組表を表示することが出来る。また、ダウンロードＥＰＧアプリケーションは、ユーザからのキー入力を、同じくＡＷＴ４０５ｈを通して受け取り、電子番組表上のカーソル移動などを実行することができる。番組表上でユーザが番組を選択すると、ダウンロードＥＰＧアプリケーションは、サービスマネージャ４０４にサービス選択（番組選択）を依頼することで、チャンネルの変更を実行する。
【０１６５】
ダウンロードＥＰＧアプリケーションは、サービスマネージャ４０４による番組選択と同時に、選択した番組の番組情報を用いて、機器制御ライブラリ４０５ｅを呼び出すことで、テレビ１０１およびアンプ１０２を制御してホームシアターシステムの起動や制御を行うことが出来る。例えば、ダウンロードＥＰＧアプリケーションは、図９に示す番組情報表示データを参照して、ユーザからの指示に従い、行６１２に対応するチャンネルを再生することとする。ダウンロードＥＰＧアプリケーションは、図９に示す行６１２を参照して、この番組の種別が映画であることから、まず、電源制御部１３０２を呼び出し、接続されている機器の全ての電源をＯＮにする。
【０１６６】
本実施の形態においては、ダウンロードＥＰＧアプリケーションは、図１９の（１）に示すＡｌｌＤｅｖｉｃｅＰｏｗｅｒＯｎ（）メソッドを呼び出す。この結果、テレビ１０１やアンプ１０２に電源が入っていなければ、それらの電源がＯＮになる。次に、ダウンロードＥＰＧアプリケーションは、音場制御部１３０３を呼び出し、シアターモードを実現する。本実施の形態においては、ダウンロードＥＰＧアプリケーションは、図２１の（１）に示すＨｏｍｅＴｈｅａｔｅｒＯＮ（）メソッドを呼び出すことで、テレビの音声出力を停止し、ＳＴＢ１０４の音声を、アンプ１０２を通してスピーカ１０３から出力する。ダウンロードＥＰＧアプリケーションの、この一連の処理により、ユーザが映画を選んだだけで、自動的にシアターモードが起動し、ユーザはホームシアター環境で映画を視聴することが出来る。更に、ダウンロードＥＰＧアプリケーションは、番組の種別が「映画」であることから、音場制御部１３０３を呼び出し、シネマモードをセットすることが出来る。
【０１６７】
本実施の形態においては、ダウンロードＥＰＧアプリケーションは、図２１の（４）に示すｓｅｔＳｏｕｎｄＭｏｄｅ（）メソッドにシネマモードを表す数値（例えば１）を引数に与えることで、シネマモードに設定する。また、番組種別が「スポーツ」の時は、ダウンロードＥＰＧアプリケーションは、音場制御部１３０３を呼び出し、スポーツモードを設定することが出来る。この結果、視聴者は最適な音場で番組を視聴することが可能である。
【０１６８】
音声出力状態がシアターモードである状態から、視聴者がニュースのチャンネルを選んだ際は、ダウンロードＥＰＧアプリケーションは、シアターモードを終了させる。本実施の形態においては、ダウンロードＥＰＧアプリケーションは、図２１の（２）に示すＨｏｍｅＴｈｅａｔｅｒＯＦＦ（）メソッドを呼び出すことで、アンプ１０２によるスピーカ１０３からの音声出力を停止し、テレビ１０１からの音声出力を再開する。この結果、通常の音声再生で視聴者はニュースを視聴できる。
【０１６９】
一方、視聴者がチャンネルを頻繁に変更するたびに音声出力状態が変更されると、視聴者が不快になる可能性もある。そこで、本実施の形態では、視聴者自身に音声出力状態を選択させてもよい。ダウンロードＥＰＧアプリケーションは、接続機器管理部１３０１を参照し、ホームシアターシステムを構成するテレビ１０１とアンプ１０２の両方がＳＴＢ１０４に接続されているかどうかを判断する。その両方が接続され、視聴者が選択した番組が映画やスポーツであった場合、ダウンロードＥＰＧアプリケーションは、画面上にシアターモードへの変更を促すメッセージを表示する。
【０１７０】
図２４は、画面上にシアターモードへの変更を促すメッセージの一例を示す図である。
【０１７１】
画面左上にメッセージ「シアター」が表示され、視聴者にシアターモードへの変更を促している。ここで、視聴者が図６に示すシアターボタン３０８を押すと、ダウンロードＥＰＧアプリケーションは、先に記載したとおり、電源のＯＮ、シアターモードの設定、及び音場モード設定を行うことが可能である。なお、シアターボタン３０８は、画面上のグラフィカルユーザインターフェースとして実現することも可能である。
【０１７２】
ここで、接続機器管理部１３０１は、ダウンロードＥＰＧアプリケーションがテレビ１０１とアンプ１０２の両方に接続されているかどうかをそのアプリケーションが容易に判断するためのＪａｖａ  ＡＰＩを備える。
【０１７３】
図２５は、接続機器管理部１３０１に備えられるＡＰＩの他の例を示す図である。
【０１７４】
ＩｓＨｏｍｅＴｈｅａｔｅｒ（）メソッドは、ホームシアターシステムを実現するためのテレビ１０１及びアンプ１０２がＳＴＢ１０４に接続されていることを調べるＪａｖａ  ＡＰＩである。このＡＰＩは、図１７に示された機器管理情報のような、接続されている機器の一覧を参照し、テレビ１０１及びアンプ１０２が接続されているかどうかを調べる。接続機器管理部１３０１は、このようなＡＰＩが呼び出されると、テレビ１０１及びアンプ１０２の両方が接続されており、ホームシアターシステムを構成できる場合は、ｔｒｕｅを返し、構成できない場合はｆａｌｓｅを返す。接続機器管理部１３０１がこのＪａｖａ  ＡＰＩを備えることにより、Ｊａｖａアプリケーションは、容易にホームシアターシステムが実現できるか否かを判断することができる。
【０１７５】
一方、再生している番組が映画でも、視聴者はモノラル音声で聞きたいかもしれない。あるいは、ステレオ音声を５．１チャンネル再生したい場合もある。そこで、ダウンロードＥＰＧアプリケーションは、これらの要望を受け付けて、その受け付けた要望に対応する設定を行う。
【０１７６】
なお、本実施の形態では、電源制御と音場制御を行なった。これらの制御は、機器制御ライブラリ４０５ｅが複数のＨＤＭＩ−ＣＥＣメッセージの送受信を組み合わせることで実現される。この２つの処理以外にも、本実施の形態のＳＴＢ１０４は、ＨＤＭＩラインを用いて接続されたＤＶＤレコーダに、ＳＴＢ１０４が再生する映像音声を記録するなどの処理を行ってもよい。この場合、機器制御ライブラリ４０５ｅはレコーダ制御部を持ち、レコーダ制御部は、複数のＨＤＭＩ−ＣＥＣメッセージの送受信を組み合わせて所望の機能を実現する。
【０１７７】
一方、新しい機能を持ったＨＤＭＩ対応機器が出現すると、その機能を使うための機能が機器制御ライブラリ４０５ｅに無い場合が考えられる。例えば、ＨＤＭＩ−ＣＥＣ規格の論理アドレスで規定されていないＢＤ（Ｂｌｕｅ−ｒａｙ  Ｄｉｓｃ）プレーヤが普及した場合などが考えられる。この際、ダウンロードされたＪａｖａアプリケーションが最新のＨＤＭＩ−ＣＥＣメッセージを把握し、新しい機器との連携を実現することで、新規の機器に対応することが可能となる。これを実現するため、機器連携ライブラリ４０５ｅは、低レベル送信部１３０４と低レベル受信部１３０５を備えている。Ｊａｖａアプリケーションは、これらのＡＰＩを用いて、ＨＤＭＩ−ＣＥＣメッセージを直接送受信することで、新規の機器との連携を実現することができる。
【０１７８】
また、ＨＤＭＩ−ＣＥＣでは、同一のベンダーＩＤを知る機器間のメッセージ通信で、独自のメッセージの送受信を認めている。低レベル送信部１３０４と低レベル受信部１３０５は、この独自メッセージの送受信にも使用できる。Ｊａｖａアプリケーションが、接続された機器の独自メッセージを知っていれば、低レベル送信部１３０４と低レベル受信部１３０５を介して、ＨＤＭＩ−ＣＥＣメッセージの送受信を行うことで、機器連携を実現できる。
【０１７９】
以下、本発明の中核をなす機器接続ライブラリ４０５ｅの動作をまとめる。
【０１８０】
図２６は、接続機器管理部１３０１が備える図１８の（１）に示すＪａｖａ  ＡＰＩに基づく動作を表すフローチャートである。
【０１８１】
まず、Ｊａｖａアプリケーションは、ｇｅｔＤｅｖｉｃｅｓ（）メソッドを呼び出す（ステップＳ２２０１）。接続機器管理部１３０１は、第１メモリ２０２が記憶する機器管理情報（接続機器一覧）を取得する（ステップＳ２２０２）。次に、接続機器管理部１３０１は、取得した接続機器一覧に示される各機器に対応するＨＤＭＩＤｅｖｉｃｅオブジェクトを作成する（ステップＳ２２０３）。ＨＤＭＩＤｅｖｉｃｅオブジェクトは内部に、物理アドレス及び論理アドレスを保持する。接続機器管理部１３０１は、作成したＨＤＭＩＤｅｖｉｃｅオブジェクトを配列に格納する（ステップＳ２２０４）。最後に、接続機器管理部１３０１は、ＡＰＩを呼び出したＪａｖａアプリケーションにＨＤＭＩＤｅｖｉｃｅオブジェクトの配列を返す（ステップＳ２２０５）。
【０１８２】
図２７は、ＨＤＭＩＤｅｖｉｃｅクラスの定義例を示す図である。
【０１８３】
内部メンバ変数ｐａｄｄに物理アドレスが格納され、内部メンバ変数ｌａｄｄに論理アドレスが格納される。
【０１８４】
図２８は、接続機器管理部１３０１が備える図１８の（２）に示すＪａｖａ  ＡＰＩに基づく動作を表すフローチャートである。
【０１８５】
まず、Ｊａｖａアプリケーションは、ｇｅｔＰｈｙｓｉｃａｌＤｅｖｉｃｅＮｕｍｂｅｒ（）メソッドを呼び出す（ステップＳ２４０１）。ここで、ｇｅｔＰｈｙｓｉｃａｌＤｅｖｉｃｅＮｕｍｂｅｒ（）メソッドが図２７で示されるＨＤＭＩＤｅｖｉｃｅクラスに定義されているとすると、接続機器管理部１３０１は、内部メンバ変数ｐａｄｄに格納されている値をＪａｖａアプリケーションに返す（ステップＳ２４０２）。ここで、ｇｅｔＰｈｙｓｉｃａｌＤｅｖｉｃｅＮｕｍｂｅｒ（）メソッドを実装しているオブジェクトが内部に物理アドレスを保持していない場合は、接続機器管理部１３０１は、第１メモリ２０２を参照して、物理アドレスを取り出してＪａｖａアプリケーションに返しても良い。
【０１８６】
図２９は、接続機器管理部１３０１が備える図１８の（３）に示すＪａｖａ  ＡＰＩに基づく動作を表すフローチャートである。
【０１８７】
まず、Ｊａｖａアプリケーションは、ｇｅｔＬｏｇｉｃａｌＤｅｖｉｃｅＮｕｍｂｅｒ（）メソッドを呼び出す（ステップＳ２５０１）。ここで、ｇｅｔＬｏｇｉｃａｌＤｅｖｉｃｅＮｕｍｂｅｒ（）メソッドが図２７で示されるＨＤＭＩＤｅｖｉｃｅクラスに定義されているとすると、接続機器管理部１３０１は、内部メンバ変数ｌａｄｄに格納されている値をＪａｖａアプリケーションに返す（ステップＳ２５０２）。ここで、ｇｅｔＬｏｇｉｃａｌＤｅｖｉｃｅＮｕｍｂｅｒ（）メソッドを実装しているオブジェクトが内部に論理アドレスを保持していない場合は、接続機器管理部１３０１は、第１メモリ２０２を参照して、論理アドレスを取り出してＪａｖａアプリケーションに返しても良い。
【０１８８】
図３０は、電源制御部１３０２が備える図１９の（１）に示すＪａｖａ  ＡＰＩに基づく動作を表すフローチャートである。
【０１８９】
まず、Ｊａｖａアプリケーションは、ＡｌｌＤｅｖｉｃｅＰｏｗｅｒＯｎ（）メソッドを呼び出す（ステップＳ２６０１）。電源制御部１３０２は、第１メモリ２０２が記憶している機器管理情報の中から、１つの接続機器の情報を取り出す（ステップＳ２６０２）。この情報とは、ＨＤＭＩ−ＣＥＣメッセージを作る際に必要となる機器の物理アドレス及び論理アドレスなどである。電源制御部１３０２は、その接続機器に対してＨＤＭＩ−ＣＥＣメッセージ＜Ｇｉｖｅ  Ｄｅｖｉｃｅ  Ｐｏｗｅｒ  Ｓｔａｔｕｓ＞を送信する（ステップＳ２６０３）。次に、電源制御部１３０２は、メッセージを送った接続機器から、ＨＤＭＩ−ＣＥＣメッセージ＜Ｒｅｐｏｒｔ  Ｐｏｗｅｒ  Ｓｔａｔｕｓ＞を受け取る（ステップＳ２６０４）。電源制御部１３０２は、このメッセージを参照し、電源がＯＮになっているかどうかを調べ（ステップＳ２６０５）、電源が入っていなければ、ＨＤＭＩ−ＣＥＣメッセージ＜Ｕｓｅｒ  Ｃｏｎｔｒｏｌ  Ｐｒｅｓｓｅｄ＞［“Ｐｏｗｅｒ”］を接続機器に送信する（ステップＳ２６０６）。
【０１９０】
そして電源制御部１３０２は、再度、ＨＤＭＩ−ＣＥＣメッセージ＜Ｇｉｖｅ  Ｄｅｖｉｃｅ  Ｐｏｗｅｒ  Ｓｔａｔｕｓ＞を送信し（ステップＳ２６０７）、ＨＤＭＩ−ＣＥＣメッセージ＜Ｒｅｐｏｒｔ  Ｐｏｗｅｒ  Ｓｔａｔｕｓ＞を受け取る（ステップＳ２６０８）。電源制御部１３０２は、このメッセージを参照し、電源がＯＮになっているかどうかを調べ（ステップＳ２６０９）、ＯＦＦであれば、電源ＯＮの処理に失敗したとして、Ｊａｖａアプリケーションにｆａｌｓｅを返して（ステップＳ２６１０）、全ての処理を終了する。電源制御部１３０２は、全ての機器に対して、ステップＳ２６０２からステップＳ２６０９の処理が終了したか否かを判別し（ステップＳ２６１１）、終了していないと判別すると、ステップＳ２６０２からの制御を繰り返し実行する。一方、電源制御部１３０２は、全ての機器に対して処理が終了したと判別すると、Ｊａｖａアプリケーションにｔｒｕｅを返して（ステップＳ２６１２）、全ての処理を終了する。ここで、ステップＳ２６０７からステップＳ２６０９の処理を、電源がＯＮになるまで一定の回数、あるいは一定の時間だけ繰り返してもよい。
【０１９１】
図３１は、電源制御部１３０２が備える図１９の（２）に示すＪａｖａ  ＡＰＩに基づく動作を表すフローチャートである。
【０１９２】
まず、Ｊａｖａアプリケーションは、ＤｅｖｉｃｅＰｏｗｅｒＯｎ（）メソッドを呼び出す（ステップＳ２７０１）。電源制御部１３０２は、第１メモリ２０２が記憶している機器管理情報の中から、指定された接続機器の情報を取り出す（ステップＳ２７０２）。この情報とは、ＨＤＭＩ−ＣＥＣメッセージを作る際に必要となる機器の物理アドレス及び論理アドレスなどである。電源制御部１３０２は、その接続機器に対してＨＤＭＩ−ＣＥＣメッセージ＜Ｇｉｖｅ  Ｄｅｖｉｃｅ  Ｐｏｗｅｒ  Ｓｔａｔｕｓ＞を送信する（ステップＳ２７０３）。次に、電源制御部１３０２は、メッセージを送った接続機器から、ＨＤＭＩ−ＣＥＣメッセージ＜Ｒｅｐｏｒｔ  Ｐｏｗｅｒ  Ｓｔａｔｕｓ＞を受け取る（ステップＳ２７０４）。
【０１９３】
電源制御部１３０２は、このメッセージを参照し、電源がＯＮになっているかどうかを調べ（ステップＳ２７０５）、電源が入っていなければ、ＨＤＭＩ−ＣＥＣメッセージ＜Ｕｓｅｒ  Ｃｏｎｔｒｏｌ  Ｐｒｅｓｓｅｄ＞［“Ｐｏｗｅｒ”］を接続機器に送信する（ステップＳ２７０６）。そして電源制御部１３０２は、再度、ＨＤＭＩ−ＣＥＣメッセージ＜Ｇｉｖｅ  Ｄｅｖｉｃｅ  Ｐｏｗｅｒ  Ｓｔａｔｕｓ＞を送信し（ステップＳ２７０７）、ＨＤＭＩ−ＣＥＣメッセージ＜Ｒｅｐｏｒｔ  Ｐｏｗｅｒ  Ｓｔａｔｕｓ＞を受け取る（ステップＳ２７０８）。電源制御部１３０２は、このメッセージを参照し、電源がＯＮになっているかどうかを調べ（ステップＳ２７０９）、ＯＦＦであれば、電源ＯＮの処理に失敗したとして、Ｊａｖａアプリケーションにｆａｌｓｅを返して（ステップＳ２７１０）、全ての処理を終了する。一方、ＯＮであれば、電源制御部１３０２は、Ｊａｖａアプリケーションにｔｒｕｅを返して（ステップＳ２７１１）、全ての処理を終了する。ここで、ステップＳ２７０７からステップＳ２７０９の処理を、電源がＯＮになるまで一定の回数、あるいは一定の時間だけ繰り返してもよい。
【０１９４】
図３２は、電源制御部１３０２が備える図１９の（３）に示すＪａｖａ  ＡＰＩに基づく動作を表すフローチャートである。
【０１９５】
まず、Ｊａｖａアプリケーションは、ＡｌｌＤｅｖｉｃｅＰｏｗｅｒＯｆｆ（）メソッドを呼び出す（ステップＳ２８０１）。電源制御部１３０２は、第１メモリ２０２が記憶している機器管理情報の中から、１つの接続機器の情報を取り出す（ステップＳ２８０２）。この情報とは、ＨＤＭＩ−ＣＥＣメッセージを作る際に必要となる機器の物理アドレス及び論理アドレスなどである。電源制御部１３０２は、その接続機器に対してＨＤＭＩ−ＣＥＣメッセージ＜Ｇｉｖｅ  Ｄｅｖｉｃｅ  Ｐｏｗｅｒ  Ｓｔａｔｕｓ＞を送信する（ステップＳ２８０３）。次に、電源制御部１３０２は、メッセージを送った接続機器から、ＨＤＭＩ−ＣＥＣメッセージ＜Ｒｅｐｏｒｔ  Ｐｏｗｅｒ  Ｓｔａｔｕｓ＞を受け取る（ステップＳ２８０４）。
【０１９６】
電源制御部１３０２は、このメッセージを参照し、電源がＯＦＦになっているかどうかを調べ（ステップＳ２８０５）、電源が入っていれば、ＨＤＭＩ−ＣＥＣメッセージ＜Ｕｓｅｒ  Ｃｏｎｔｒｏｌ  Ｐｒｅｓｓｅｄ＞［“Ｐｏｗｅｒ”］を接続機器に送信する（ステップＳ２８０６）。そして電源制御部１３０２は、再度、ＨＤＭＩ−ＣＥＣメッセージ＜Ｇｉｖｅ  Ｄｅｖｉｃｅ  Ｐｏｗｅｒ  Ｓｔａｔｕｓ＞を送信し（ステップＳ２８０７）、ＨＤＭＩ−ＣＥＣメッセージ＜Ｒｅｐｏｒｔ  Ｐｏｗｅｒ  Ｓｔａｔｕｓ＞を受け取る（ステップＳ２８０８）。電源制御部１３０２は、このメッセージを参照し、電源がＯＦＦになっているかどうかを調べ（ステップＳ２８０９）、ＯＮであれば、電源ＯＦＦの処理に失敗したとして、Ｊａｖａアプリケーションにｆａｌｓｅを返して（ステップＳ２８１０）、全ての処理を終了する。電源制御部１３０２は、全ての機器に対して、ステップＳ２８０２からステップＳ２８０９の処理が終了したか否かを判別し（ステップＳ２８１１）、終了していないと判別すると、ステップＳ２８０２からの制御を繰り返し実行する。一方、電源制御部１３０２は、全ての機器に対して処理が終了したと判別すると、Ｊａｖａアプリケーションにｔｒｕｅを返して（ステップＳ２８１２）、全ての処理を終了する。ここで、ステップＳ２８０７からステップＳ２８０９の処理を、電源がＯＦＦになるまで一定の回数、あるいは一定の時間だけ繰り返してもよい。
【０１９７】
図３３は、電源制御部１３０２が備える図１９の（４）に示すＪａｖａ  ＡＰＩに基づく動作を表すフローチャートである。
【０１９８】
まず、Ｊａｖａアプリケーションは、ＤｅｖｉｃｅＰｏｗｅｒＯｆｆ（）メソッドを呼び出す（ステップＳ２９０１）。電源制御部１３０２は、第１メモリ２０２が記憶している機器管理情報の中から、指定された接続機器の情報を取り出す（ステップＳ２９０２）。この情報とは、ＨＤＭＩ−ＣＥＣメッセージを作る際に必要となる機器の物理アドレス及び論理アドレスなどである。電源制御部１３０２は、その接続機器に対してＨＤＭＩ−ＣＥＣメッセージ＜Ｇｉｖｅ  Ｄｅｖｉｃｅ  Ｐｏｗｅｒ  Ｓｔａｔｕｓ＞を送信する（ステップＳ２９０３）。次に、電源制御部１３０２は、メッセージを送った接続機器から、ＨＤＭＩ−ＣＥＣメッセージ＜Ｒｅｐｏｒｔ  Ｐｏｗｅｒ  Ｓｔａｔｕｓ＞を受け取る（ステップＳ２９０４）。
【０１９９】
電源制御部１３０２は、このメッセージを参照し、電源がＯＦＦになっているかどうかを調べ（ステップＳ２９０５）、電源が入っていれば、ＨＤＭＩ−ＣＥＣメッセージ＜Ｕｓｅｒ  Ｃｏｎｔｒｏｌ  Ｐｒｅｓｓｅｄ＞［“Ｐｏｗｅｒ”］を接続機器に送信する（ステップＳ２９０６）。そして電源制御部１３０２は、再度、ＨＤＭＩ−ＣＥＣメッセージ＜Ｇｉｖｅ  Ｄｅｖｉｃｅ  Ｐｏｗｅｒ  Ｓｔａｔｕｓ＞を送信し（ステップＳ２９０７）、ＨＤＭＩ−ＣＥＣメッセージ＜Ｒｅｐｏｒｔ  Ｐｏｗｅｒ  Ｓｔａｔｕｓ＞を受け取る（ステップＳ２９０８）。電源制御部１３０２は、このメッセージを参照し、電源がＯＦＦになっているかどうかを調べ（ステップＳ２９０９）、ＯＮであれば、電源ＯＦＦの処理に失敗したとして、Ｊａｖａアプリケーションにｆａｌｓｅを返して（ステップＳ２９１０）、全ての処理を終了する。一方、ＯＦＦであれば、電源制御部１３０２は、Ｊａｖａアプリケーションにｔｒｕｅを返して（ステップＳ２９１１）、全ての処理を終了する。ここで、ステップＳ２９０７からステップＳ２９０９の処理を、電源がＯＦＦになるまで一定の回数、あるいは一定の時間だけ繰り返してもよい。
【０２００】
図３４は、音場制御部１３０３が備える図２１（１）に示すＪａｖａ  ＡＰＩに基づく動作を表すフローチャートである。
【０２０１】
まず、Ｊａｖａアプリケーションは、ＨｏｍｅＴｈｅａｔｅｒＯＮ（）メソッドを呼び出す（ステップＳ３００１）。音場制御部１３０３は、接続機器管理部１３０１を参照し、ホームシアターシステムを構成する機器が接続されているかどうか調べる（ステップＳ３００２）。ホームシアターシステムを構成する機器の具体例としては、テレビ１０１とアンプ１０２である。ホームシアターシステムを構成する機器が接続されていなければ、音場制御部１３０３は、Ｊａｖａアプリケーションにｆａｌｓｅを返して処理を終了する（ステップＳ３００８）。一方、ホームシアターシステムを構成する機器が接続されていたら、音場制御部１３０３は、ＡｌｌＤｅｖｉｃｅＰｏｗｅｒＯｎ（）メソッドを呼び出すことで、全ての接続機器の電源をＯＮにする（ステップＳ３００３）。ここで、電源のＯＮに失敗したら、音場制御部１３０３はＪａｖａアプリケーションにｆａｌｓｅを返して処理を終了する（ステップＳ３００８）。次に、音場制御部１３０３は、テレビ１０１に対して音声出力をミュートするように要求するＨＤＭＩ−ＣＥＣメッセージ（コマンド）を送信する（ステップＳ３００４）。次に、音場制御部１３０３は、アンプ１０２に対して、ＳＴＢ１０４からの音声を出力するように要求するＨＤＭＩ−ＣＥＣメッセージ（コマンド）を送る（ステップＳ３００５）。最後に、音場制御部１３０３は、シアターモードになっていることを第１メモリ２０２に記録し（ステップＳ３００６）、Ｊａｖａアプリケーションにｔｒｕｅを返して処理を終了する（ステップＳ３００７）。
【０２０２】
ここで、音場制御部１３０３は、ステップＳ３００３で全ての接続機器の電源をＯＮにしているが、ホームシアターシステムを構成する機器だけの電源をＯＮにしてもよい。この場合、図３０のフローチャートにおいて、ステップＳ２６１１では、全機器の処理が終了したか否かを判別する代わりに、ホームシアターシステムを構成する各機器の処理が終了したか否かを判別する。
【０２０３】
図３５は、音場制御部１３０３が備える図２１の（２）に示すＪａｖａ  ＡＰＩに基づく動作を表すフローチャートである。
【０２０４】
まず、Ｊａｖａアプリケーションは、ＨｏｍｅＴｈｅａｔｅｒＯＦＦ（）メソッドを呼び出す（ステップＳ３１０１）。音場制御部１３０３は、第１メモリ２０２を参照してシアターモードかどうかを調べる（ステップＳ３１０２）。シアターモードでなければ、音場制御部１３０３は、Ｊａｖａアプリケーションにｆａｌｓｅを返して処理を終了する（ステップＳ３１０７）。一方、シアターモードであれば、音場制御部１３０３は、ＤｅｖｉｃｅＰｏｗｅｒＯｆｆ（）メソッドを呼び出すことで、アンプ１０２の電源をＯＦＦにする（ステップＳ３１０３）。次に、音場制御部１３０３は、テレビ１０１に対して、アンプ１０２からの音声を出力するように要求するＨＤＭＩ−ＣＥＣメッセージ（コマンド）を送信する（ステップＳ３１０４）。最後に、音場制御部１３０３は、シアターモードになっていないことを第１メモリ２０２に記録し（ステップＳ３１０５）、Ｊａｖａアプリケーションにｔｒｕｅを返して処理を終了する（ステップＳ３１０６）。
【０２０５】
図３６は、音場制御部１３０３が備える図２１の（３）に示すＪａｖａ  ＡＰＩに基づく動作を表すフローチャートである。
【０２０６】
まず、Ｊａｖａアプリケーションは、ＳｅｔＰｌａｙＭｏｄｅ（）メソッドを呼び出す（ステップＳ３２０１）。音場制御部１３０３は、第１メモリ２０２を参照してシアターモードかどうかを調べる（ステップＳ３２０２）。シアターモードでなければ、音場制御部１３０３は、Ｊａｖａアプリケーションにｆａｌｓｅを返して処理を終了する（ステップＳ３２０５）。一方、シアターモードであれば、音場制御部１３０３は、Ｊａｖａアプリケーションによって与えられた再生モードに応じてＨＤＭＩ−ＣＥＣメッセージをアンプ１０２に送信する（ステップＳ３２０３）。最後に、音場制御部１３０３は、Ｊａｖａアプリケーションにｔｒｕｅを返して処理を終了する（ステップＳ３２０４）。
【０２０７】
図３７は、音場制御部１３０３が備える図２１の（４）に示すＪａｖａ  ＡＰＩに基づく動作を表すフローチャートである。
【０２０８】
まず、Ｊａｖａアプリケーションは、ＳｅｔＳｏｕｎｄＭｏｄｅ（）メソッドを呼び出す（ステップＳ３３０１）。音場制御部１３０３は、第１メモリ２０２を参照してシアターモードかどうかを調べる（ステップＳ３３０２）。シアターモードでなければ、音場制御部１３０３は、Ｊａｖａアプリケーションにｆａｌｓｅを返して処理を終了する（ステップＳ３３０５）。一方、シアターモードであれば、音場制御部１３０３は、Ｊａｖａアプリケーションによって与えられた音場モードに応じてＨＤＭＩ−ＣＥＣメッセージをアンプ１０２に送信する（ステップＳ３３０３）。最後に、音場制御部１３０３は、Ｊａｖａアプリケーションにｔｒｕｅを返して処理を終了する（ステップＳ３３０４）。
【０２０９】
図３８は、低レベル送信部１３０４が備える図２２の（１）または（２）に示すＪａｖａ  ＡＰＩに基づく動作を表すフローチャートである。
【０２１０】
まず、Ｊａｖａアプリケーションは、ｓｅｎｄ（）メソッドを呼び出す（ステップＳ３４０１）。低レベル送信部１３０４は、そのメソッドの呼び出しによって受け取ったバイナリーデータを用いてＨＤＭＩ−ＣＥＣメッセージを作成して送信する（ステップＳ３４０２）。
【０２１１】
図３９は、低レベル受信部１３０５が備える図２３の（１）または（３）に示すＪａｖａ  ＡＰＩに基づく動作を表すフローチャートである。
【０２１２】
まず、Ｊａｖａアプリケーションは、ａｄｄＬｉｓｔｅｎｅｒ（）メソッドを呼び出す（ステップＳ３５０１）。低レベル受信部１３０５は、そのメソッドの呼び出しによって受け取ったリスナーを第１メモリ２０２に記録する（ステップＳ３５０２）。
【０２１３】
図４０は、低レベル受信部１３０５がＨＤＭＩ−ＣＥＣメッセージを受け取った時の動作を表すフローチャートである。
【０２１４】
まず、低レベル受信部１３０５はＨＤＭＩ−ＣＥＣメッセージを受け取る（ステップＳ３６０１）。低レベル受信部１３０５は、第１メモリ２０２を参照してリスナーが記録されているか否かを判別する（ステップＳ３６０２）。低レベル受信部１３０５は、記録されていると判別すると、受け取ったＨＤＭＩ−ＣＥＣメッセージをバイナリデータに変換し、リスナーのｒｅｃｅｉｖｅメソッドを呼び出すことで、変換したバイナリーデータを引き渡す。
【０２１５】
ここで、低レベル受信部１３０５は、登録したリスナーを削除するｒｅｍｏｖｅＬｉｓｔｅｎｅｒ（）メソッドを備えても良い。図２７に、ＨＤＭＩ対応機器を表現するＨＤＭＩＤｅｖｉｃｅクラス定義の例を示す。ここに、ｓｅｔＬｉｓｔｅｎｅｒ（）メソッドと同様、ｒｅｍｏｖｅＬｉｓｔｅｎｅｒ（）メソッドが定義されている。ｒｅｍｏｖｅＬｉｓｔｅｎｅｒ（）メソッドが呼び出されると、第１メモリ２０２に記憶されているリスナーが削除される。
【０２１６】
このように本実施の形態では、Ｊａｖａアプリケーションがテレビ１０１またはアンプ１０２を制御するために制御データを出力すると、つまりＪａｖａ  ＡＰＩのメソッドを呼び出すと、その制御データが、ＣＥＣ４０１ｂ４およびＨＤＭＩ部２１０によって通信されるＨＤＭＩ−ＣＥＣメッセージに変換されてそのテレビ１０１またはアンプ１０２に送信される。したがって、そのテレビ１０１またはアンプ１０２がＨＤＭＩ−ＣＥＣに対応した機器であれば、Ｊａｖａアプリケーションは、ＨＤＭＩ−ＣＥＣを考慮することなく、メソッドを呼び出してテレビ１０１またはアンプ１０２を自由に制御することができる。また、テレビ１０１またはアンプ１０２から送信されたＨＤＭＩ−ＣＥＣメッセージが、Ｊａｖａアプリケーションによって扱われるデータに変換されるため、アプリケーションプログラムは、ＨＤＭＩ−ＣＥＣを考慮することなく機器からメッセージを受け取ることができ、その機器の制御に利用することができる。その結果、本発明では、Ｊａｖａアプリケーションによって各機器を自由に制御することができるため、ユーザによる操作負担を軽減して適切に機器を連携させることができる。
【０２１７】
なお、図５に示すＳＴＢ１０４の構成要素のうちの全てまたは一部をＬＳＩ（Large Scale Integration）などの半導体集積回路として構成してもよい。
【産業上の利用可能性】
【０２１８】
本発明の機器連携装置は、ユーザによる操作負担を軽減して適切に機器を連携させることができるという効果を奏し、例えば、ＳＴＢなどの放送受信機や、放送受信可能な携帯電話、携帯端末、車載端末、インターネットを介して音声映像データを受信するパーソナルコンピュータ等に適用することができる。
【図面の簡単な説明】
【０２１９】
【図１】図１は、従来のアンプの構成図である。
【図２Ａ】図２Ａは、本発明の実施の形態に係る機器連携装置を含むシステムの構成を示す構成図である。
【図２Ｂ】図２Ｂは、本発明の実施の形態に係るホームシアターシステムの構成図である。
【図３】図３は、本発明の実施の形態に係るテレビの構成を示す構成図である。
【図４】図４は、本発明の実施の形態に係るアンプの構成を示す構成図である。
【図５】図５は、本発明の実施の形態に係るＳＴＢの構成図である。
【図６】図６は、本発明の実施の形態に係る入力部として構成されたフロントパネルの外観の一例を示す図である。
【図７】図７は、本発明の実施の形態に係るプログラムの構成図である。
【図８Ａ】図８Ａは、本発明の実施の形態に係る電子番組表の一例を示す図である。
【図８Ｂ】図８Ｂは、本発明の実施の形態に係る電子番組表の一例を示す図である。
【図９】図９は、本発明の実施の形態に係る第２メモリが保存する番組情報表示データの一例を示す図である。
【図１０】図１０は、本発明の実施の形態に係る第２メモリが保存するチャンネル情報の一例を示す図である。
【図１１Ａ】図１１Ａは、本発明の実施の形態に係る第２メモリが保存するチャンネル識別子の一例を示す図である。
【図１１Ｂ】図１１Ｂは、本発明の実施の形態に係る第２メモリが保存するチャンネル識別子の他の例を示す図である。
【図１１Ｃ】図１１Ｃは、本発明の実施の形態に係る第２メモリが保存するチャンネル識別子のさらに他の例を示す図である。
【図１２】図１２は、本発明の実施の形態に係るＰＡＴの一例を示す図である。
【図１３】図１３は、本発明の実施の形態に係るＰＭＴの一例を示す図である。
【図１４】図１４は、本発明の実施の形態に係るＡＩＴの一例を示す図である。
【図１５】図１５は、本発明の実施の形態に係るファイルシステムの一例を示す図である。
【図１６】図１６は、本発明の実施の形態に係る機器制御ライブラリの内部構成図である。
【図１７】図１７は、本発明の実施の形態に係る機器管理情報の一例を示す図である。
【図１８】図１８は、本発明の実施の形態に係る機器接続管理部が備えるＪａｖａ  ＡＰＩの一例を示す図である。
【図１９】図１９は、本発明の実施の形態に係る電源制御部が備えるＪａｖａ  ＡＰＩの一例を示す図である。
【図２０】図２０は、本発明の実施の形態に係る音場制御部が音声出力状態をシアターモードに切り替える処理の流れを示す流れ図である。
【図２１】図２１は、本発明の実施の形態に係る音場制御部が備えるＪａｖａ  ＡＰＩの一例を示す図である。
【図２２】図２２は、本発明の実施の形態に係る低レベル送信部が備えるＪａｖａ  ＡＰＩの一例を示す図である。
【図２３】図２３は、本発明の実施の形態に係る低レベル受信部が備えるＪａｖａ  ＡＰＩの一例を示す図である。
【図２４】図２４は、本発明の実施の形態に係る画面表示の一例を示す図である。
【図２５】図２５は、本発明の実施の形態に係る機器接続管理部が備えるＪａｖａ  ＡＰＩの他の例を示す図である。
【図２６】図２６は、本発明の実施の形態に係る接続機器管理部が備えるＪａｖａ  ＡＰＩに基づく動作を表すフローチャートである。
【図２７】図２７は、本発明の実施の形態に係る機器制御ライブラリで使用されるＪａｖａクラスの定義の一例を示す図である。
【図２８】図２８は、本発明の実施の形態に係る接続機器管理部が備える他のＪａｖａ  ＡＰＩに基づく動作を表すフローチャートである。
【図２９】図２９は、本発明の実施の形態に係る接続機器管理部が備えるさらに他のＪａｖａ  ＡＰＩに基づく動作を表すフローチャートである。
【図３０】図３０は、本発明の実施の形態に係る電源制御部が備えるＪａｖａ  ＡＰＩに基づく動作を表すフローチャートである。
【図３１】図３１は、本発明の実施の形態に係る電源制御部が備える他のＪａｖａ  ＡＰＩに基づく動作を表すフローチャートである。
【図３２】図３２は、本発明の実施の形態に係る電源制御部が備えるさらに他のＪａｖａ  ＡＰＩに基づく動作を表すフローチャートである。
【図３３】図３３は、本発明の実施の形態に係る電源制御部が備えるさらに他のＪａｖａ  ＡＰＩに基づく動作を表すフローチャートである。
【図３４】図３４は、本発明の実施の形態に係る音場制御部が備えるＪａｖａ  ＡＰＩに基づく動作を表すフローチャートである。
【図３５】図３５は、本発明の実施の形態に係る音場制御部が備える他のＪａｖａ  ＡＰＩに基づく動作を表すフローチャートである。
【図３６】図３６は、本発明の実施の形態に係る音場制御部が備えるさらに他のＪａｖａ  ＡＰＩに基づく動作を表すフローチャートである。
【図３７】図３７は、本発明の実施の形態に係る音場制御部が備えるさらに他のＪａｖａ  ＡＰＩに基づく動作を表すフローチャートである。
【図３８】図３８は、本発明の実施の形態に係る低レベル送信部が備えるＪａｖａ  ＡＰＩに基づく動作を表すフローチャートである。
【図３９】図３９は、本発明の実施の形態に係る低レベル受信部が備えるＪａｖａ  ＡＰＩに基づく動作を表すフローチャートである。
【図４０】図４０は、本発明の実施の形態に係る低レベル受信部がＨＤＭＩ−ＣＥＣメッセージを受け取ったときの動作を表すフローチャートである。
【符号の説明】
【０２２０】
１０４    ＳＴＢ
２０１    入力手段
２０２    第１メモリ
２０３    第２メモリ
２０４    受信部
２０５    多重分離部
２０６    デスクランブラ
２０７    ＴＳデコーダ
２０８    映像出力部
２０９    音声出力部
２１０    ＨＤＭＩ部
２１１    ＣＰＵ
【手続補正３】
【補正対象書類名】図面
【補正対象項目名】全図
【補正方法】変更
【補正の内容】
【図１】
2007072821.tif 000047
【図２Ａ】
2007072821.tif 000048
【図２Ｂ】
2007072821.tif 000049
【図３】
2007072821.tif 000050
【図４】
2007072821.tif 000051
【図５】
2007072821.tif 000052
【図６】
2007072821.tif 000053
【図７】
2007072821.tif 000054
【図８Ａ】
2007072821.tif 000055
【図８Ｂ】
2007072821.tif 000056
【図９】
2007072821.tif 000057
【図１０】
2007072821.tif 000058
【図１１Ａ】
2007072821.tif 000059
【図１１Ｂ】
2007072821.tif 000060
【図１１Ｃ】
2007072821.tif 000061
【図１２】
2007072821.tif 000062
【図１３】
2007072821.tif 000063
【図１４】
2007072821.tif 000064
【図１５】
2007072821.tif 000065
【図１６】
2007072821.tif 000066
【図１７】
2007072821.tif 000067
【図１８】
2007072821.tif 000068
【図１９】
2007072821.tif 000069
【図２０】
2007072821.tif 000070
【図２１】
2007072821.tif 000071
【図２２】
2007072821.tif 000072
【図２３】
2007072821.tif 000073
【図２４】
2007072821.tif 000074
【図２５】
2007072821.tif 000075
【図２６】
2007072821.tif 000076
【図２７】
2007072821.tif 000077
【図２８】
2007072821.tif 000078
【図２９】
2007072821.tif 000079
【図３０】
2007072821.tif 000080
【図３１】
2007072821.tif 000081
【図３２】
2007072821.tif 000082
【図３３】
2007072821.tif 000083
【図３４】
2007072821.tif 000084
【図３５】
2007072821.tif 000085
【図３６】
2007072821.tif 000086
【図３７】
2007072821.tif 000087
【図３８】
2007072821.tif 000088
【図３９】
2007072821.tif 000089
【図４０】
2007072821.tif 000090
【国際調査報告】
2007072821.tif 000091
2007072821.tif 000092
2007072821.tif 000093
2007072821.tif 000094