(57)【要約】【課題】  Ｊａｖａプログラムを実行する際には、ＪａｖａＶＭの起動やダウンロードといった一般的に時間を要する処理を必要とする。このため、情報機器に電源を投入後、しばらくの間、何も表示されない時間が続き、ユーザーに不安を与えるという問題が発生する。とくに、ＣＰＵ処理速度があまり高速でない情報家電では、この現象が顕著である。【解決手段】  Ｊａｖａプログラムが本来行うべき機能の一部を組み込みプログラムで実現してＪａｖａプログラムの起動処理中に実行することにより見かけ上の起動時間を短縮し、さらに、Ｊａｖａプログラムの起動が完了した時点でＪａｖａプログラムがそれまでの組み込みプログラムの動作状況を矛盾無く引き継いで動作するための組み込みプログラムとＪａｖａプログラムの連絡手段を提供する。【選択図】  図１２
2005056416.tif 000002
【特許請求の範囲】
【請求項１】
Ｊａｖａプログラムを実行するＪａｖａＶＭと、
前記Ｊａｖａプログラムの一部の機能である部分機能を備える組み込みプログラムを有するプログラム実行装置において、
前記組み込みプログラムと前記ＪａｖａＶＭを実行する実行手段と、
前記組み込みプログラムが動作したことにより引き起こされた情報を前記Ｊａｖａプログラムに提供する情報提供手段を備える
ことを特徴とするプログラム実行装置。
【請求項２】
前記プログラム実行装置は更に、
前記情報提供手段は、前記Ｊａｖａプログラムが前記情報提供手段を使用するまでに、前記組み込みプログラムが動作したことにより引き起こされた情報を前記Ｊａｖａプログラムに提供する
ことを特徴とする請求項１記載のプログラム実行装置。
【請求項３】
前記プログラム実行装置は更に、
前記情報提供手段は、前記Ｊａｖａプログラムが起動する前までに、前記組み込みプログラムが動作したことにより引き起こされた情報を前記Ｊａｖａプログラムに提供する
ことを特徴とする請求項１記載のプログラム実行装置。
【請求項４】
前記プログラム実行装置は更に、
前記情報提供手段は、前記組み込みプログラムが停止する前までに、前記組み込みプログラムが動作したことにより引き起こされた情報を前記Ｊａｖａプログラムに提供する
ことを特徴とする請求項１記載のプログラム実行装置。
【請求項５】
前記プログラム実行装置は更に、
前記Ｊａｖａプログラムが前記組み込みプログラムの停止を指示するための組み込みプログラム停止指示手段を備える
ことを特徴とする請求項１記載のプログラム実行装置。
【請求項６】
Ｊａｖａプログラムを実行するＪａｖａＶＭと、
入力を受け付ける入力手段と、
放送を受信する受信手段と、
前記受信手段が受信した放送に含まれるチャンネルを再生するチャンネル再生手段と、
前記入力手段からの指示に基づき、再生すべきチャンネルを前記チャンネル再生手段に指示する再生プログラムと、
前記再生プログラムと前記ＪａｖａＶＭを実行する実行手段と、
前記再生プログラムが最後に指示したチャンネルを前記Ｊａｖａプログラムに提供する情報提供手段とを備える
ことを特徴とするプログラム実行装置。
【請求項７】
前記プログラム実行装置は更に、
前記Ｊａｖａプログラムを記憶する第１記憶手段と、
前記再生プログラムを記憶する第２記憶手段と備える
ことを特徴とする請求項６記載のプログラム実行装置。
【請求項８】
前記プログラム実行装置は更に、
前記チャンネル再生手段は、チャンネルに含まれる映像と音声を再生する
ことを特徴とする請求項６記載のプログラム実行装置。
【請求項９】
前記プログラム実行装置は更に、
チャンネルに含まれる映像と音声とＪａｖａプログラムを再生するサービス再生手段を備える
ことを特徴とする請求項６記載のプログラム実行装置。
【請求項１０】
前記プログラム実行装置は更に、
前記サービス再生手段は、その一部又は全部をＪａｖａＶＭによって実行され、前記Ｊａｖａプログラムから再生すべきサービスを受け付ける
ことを特徴とする請求項９記載のプログラム実行装置。
【請求項１１】
前記プログラム実行装置は更に、
前記サービス再生手段は、前記再生プログラムから再生すべきサービスを受け付け、
前記再生プログラムは、前記サービス再生手段が再生すべきサービスを受け付けない時は、前記チャンネル再生手段を用いてチャンネルを再生し、
前記サービス再生手段が再生すべきサービスを受け付ける時は、前記サービス再生手段を用いてチャンネルを再生する
ことを特徴とする請求項１０記載のプログラム実行装置。
【請求項１２】
前記プログラム実行装置は更に、
前記サービス再生手段が再生すべきサービスの受け付けを開始したことを通知するサービス受付開始通知手段を備える
ことを特徴とする請求項９記載のプログラム実行装置。
【請求項１３】
Ｊａｖａプログラムを実行するＪａｖａＶＭと、
入力を受け付ける入力手段と、
放送を受信する受信手段と、
前記受信手段が受信した放送に含まれるチャンネルの映像・音声を再生するチャンネル再生手段と、
前記受信手段が受信した放送に含まれるチャンネルの映像・音声及びデータを再生するサービス再生手段と、
再生すべきチャンネルの識別子を受け付け、前記サービス再生手段がチャンネルの再生が可能なとき前記サービス再生手段を用いてチャンネルを再生し、
前記サービス再生手段がチャンネルの再生が不可能なとき前記チャンネル再生手段を用いてチャンネルを再生するチャンネル識別子受付手段と、
前記入力手段からの指示に基づき、再生すべきチャンネルの識別子を前記チャンネル識別子受付手段に指示する再生プログラムと、
前記再生プログラムと前記ＪａｖａＶＭを実行する実行手段と、
前記再生プログラムが最後にチャンネル識別子受付手段に指示したチャンネルを前記Ｊａｖａプログラムに提供する情報提供手段とを備える
ことを特徴とするプログラム実行装置。
【請求項１４】
前記プログラム実行装置は更に、
前記チャンネル識別子受付手段が受け付けたチャンネルの識別子を記憶するチャンネル識別子記憶手段を備え、
前記チャンネル識別子受付手段は、前記サービス再生手段がチャンネルの再生が可能になった時に、前記チャンネル識別子記憶手段に記憶したチャンネルの識別子を前記サービス再生手段に与え、チャンネルの再生を行う
ことを特徴とする請求項１３記載のプログラム実行装置。
【請求項１５】
コンピュータ読み取り可能な記録媒体であって、
Ｊａｖａプログラムを実行するＪａｖａＶＭと、
前記Ｊａｖａプログラムの一部の機能である部分機能を備える組み込みプログラムと、
前記組み込みプログラムと前記ＪａｖａＶＭを実行する実行手段と、
前記組み込みプログラムが動作したことにより引き起こされた情報を前記Ｊａｖａプログラムに提供する情報提供手段の各機能を発揮するプログラムを記録したコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラムをダウンロードして実行するプログラム実行装置に関する。特に、既存のプログラムが実行していた機能をダウンロードしたプログラムが引き継いで実行することに関する。
【背景技術】
【０００２】
現在、Ｊａｖａ（登録商標）プログラムは様々な情報機器上で実行されている。デジタルＴＶ、パーソナルコンピュータ上や携帯電話などにＪａｖａＶＭと呼ばれるＪａｖａプログラムを実行する仮想マシンが搭載され、Ｊａｖａプログラムを実行している。
【０００３】
従来のデジタルテレビにおけるＪａｖａプログラムを実行する機能は、特許文献１に記載されている。図３０は、デジタルＴＶ受信機を通して読み込まれたアプリケーションを管理するために、アプリケーションマネージャが実装されたＪａｖａプログラムを実行する従来のデジタルテレビの構成図の一例である。デジタルＴＶ受信機３００２は、放送データストリーム３０２１を信号モニタ３０１３で受信する。信号モニタ３０１３は放送データストリーム３０２１中のＪａｖａプログラムであるアプリケーションの有無を、信号データ３０２２を通してアプリケーションマネージャ３０１２に通知する。アプリケーションマネージャ３０１２は、信号データ３０２２を用いてアプリケーションを読み込み実行する。アプリケーションが実行されると、ディスプレイ情報がディスプレイコンテキスト３０２３の形でディスプレイマネージャ３０１１から提供される。また、ディスプレイマネージャ３０１１は適切なディスプレイ情報をテレビモニタ３００１に提供する。
【０００４】
アプリケーションマネージャ３０１２は、ルール３０１４に従って動作し、アプリケーションの状態をロード状態、一時停止状態、アクティブ状態、抹消状態に遷移させる。ルールは、例えば、「１度に１つのアプリケーションのみをアクティブにする」「１度に１つのアプリケーションだけが表示できる」等である。
【特許文献１】特表２００３−５０４７５３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、従来の技術においては、Ｊａｖａプログラムを実行して、その機能を実際にユーザに提供できるまでに時間を要するという課題がある。これには，いくつかの要因がある。まず、Ｊａｖａプログラムを実行するためには、それに先んじてＪａｖａＶＭを起動しておく必要があるが、一般にＪａｖａＶＭの起動には時間を要する点が挙げられる。また、Ｊａｖａプログラムをダウンロード完了するまでの待ち時間も必要である。デジタルＴＶや情報機器などがＪａｖａプログラムの起動を決定してから実際に起動完了するまでには、これらの処理時間や待ち時間が含まれるため時間を要する。特にＪａｖａプログラムが電源投入時に自動的にダウンロードされて実行されるような情報機器においては、電源を投入後、しばらくの間、何も表示されない時間が続き、ユーザーに不安を与えるという問題が発生する。とくに、ＣＰＵ処理速度があまり高速でないデジタルＴＶなどの情報家電では、この現象が顕著である。
【０００６】
本発明は、Ｊａｖａプログラムが本来行うべき機能の一部を組み込みプログラムで実現してＪａｖａプログラムの起動処理中に実行することにより見かけ上の起動時間を短縮し、さらに、Ｊａｖａプログラムの起動が完了した時点でＪａｖａプログラムがそれまでの組み込みプログラムの動作状況を矛盾なく、引き継いで動作するための組み込みプログラムとＪａｖａプログラムの連絡手段を提供することを目的とする。
【課題を解決するための手段】
【０００７】
前記従来の課題を解決するために、Ｊａｖａプログラムを実行するＪａｖａＶＭと、前記Ｊａｖａプログラムの一部の機能である部分機能を備える組み込みプログラムを有するプログラム実行装置において、前記組み込みプログラムと前記ＪａｖａＶＭを実行する実行手段と、前記組み込みプログラムが動作したことにより引き起こされた情報を前記Ｊａｖａプログラムに提供する情報提供手段を備えることとしている。
【発明の効果】
【０００８】
本発明によれば、Ｊａｖａプログラムを実行するＪａｖａＶＭと、前記Ｊａｖａプログラムの一部の機能である部分機能を備える組み込みプログラムを有するプログラム実行装置において、前記組み込みプログラムと前記ＪａｖａＶＭを実行する実行手段と、前記組み込みプログラムが動作したことにより引き起こされた情報を前記Ｊａｖａプログラムに提供する情報提供手段を備えることにより、Ｊａｖａプログラムが起動する前に、その一部の機能を組み込みプログラムが実行し、その機能をＪａｖａプログラムが継承することができるので、本来Ｊａｖａプログラムが提供する機能を短時間にユーザーに提供することが出来る。
【０００９】
また、前記プログラム実行装置は更に、前記情報提供手段は、前記Ｊａｖａプログラムが前記情報提供手段を使用するまでに、前記組み込みプログラムが動作したことにより引き起こされた情報を前記Ｊａｖａプログラムに提供することにより、組み込みプログラムが引き起こした状況をＪａｖａプログラムが引き継ぐことが出来る。
【００１０】
また、前記プログラム実行装置は更に、前記情報提供手段は、前記Ｊａｖａプログラムが起動する前までに、前記組み込みプログラムが動作したことにより引き起こされた情報を前記Ｊａｖａプログラムに提供することすることにより、組み込みプログラムが引き起こした状況をＪａｖａプログラムが引き継ぐことが出来る。
【００１１】
また、前記プログラム実行装置は更に、前記情報提供手段は、前記組み込みプログラムが停止する前までに、前記組み込みプログラムが動作したことにより引き起こされた情報を前記Ｊａｖａプログラムに提供することとすることにより、組み込みプログラムが引き起こした状況をＪａｖａプログラムが引き継ぐことが出来る。
【００１２】
また、前記プログラム実行装置は更に、前記Ｊａｖａプログラムが前記組み込みプログラムの停止を指示するための組み込みプログラム停止指示手段を備えることにより、Ｊａｖａプログラムが明示的に組み込みプログラムを停止することが出来るので、同じまたは類似の機能を持つＪａｖａプログラムと組み込みプログラムが平行して動作しユーザーを混乱させることを防ぐことが出来る。
【００１３】
また、Ｊａｖａプログラムを実行するＪａｖａＶＭと、入力を受け付ける入力手段と、放送を受信する受信手段と、前記受信手段が受信した放送に含まれるチャンネルを再生するチャンネル再生手段と、前記入力手段からの指示に基づき、再生すべきチャンネルを前記チャンネル再生手段に指示する再生プログラムと、前記再生プログラムと前記ＪａｖａＶＭを実行する実行手段と、前記再生プログラムが最後に指示したチャンネルを前記Ｊａｖａプログラムに提供する情報提供手段とを備えることにより、Ｊａｖａプログラムが起動する前に、再生されているチャンネルをＪａｖａプログラムが継承することができるので、本来Ｊａｖａプログラムが行うチャンネルの再生を短時間にユーザーに提供することが出来る。
【００１４】
また、前記プログラム実行装置は更に、前記Ｊａｖａプログラムを記憶する第１記憶手段と、前記再生プログラムを記憶する第２記憶手段と備えることにより、記憶したＪａｖａプログラム及び再生プログラムを何度も実行することができる。あるいは、入れ替えることが出来る。
【００１５】
また、前記プログラム実行装置は更に、前記チャンネル再生手段は、チャンネルに含まれる映像と音声を再生することにより、ユーザーに映像と音声の再生を提供することができる。
【００１６】
また、前記プログラム実行装置は更に、チャンネルに含まれる映像と音声とＪａｖａプログラムを再生するサービス再生手段を備えることにより、ユーザーに映像と音声とＪａｖａプログラムの再生を提供することができる。
【００１７】
また、前記プログラム実行装置は更に、前記サービス再生手段は、その一部又は全部をＪａｖａＶＭによって実行され、前記Ｊａｖａプログラムから再生すべきサービスを受け付けることにより、Ｊａｖａプログラムがチャンネルの再生を行うことが出来る。
【００１８】
また、前記プログラム実行装置は更に、前記サービス再生手段は、前記再生プログラムから再生すべきサービスを受け付け、前記再生プログラムは、前記サービス再生手段が再生すべきサービスを受け付けない時は、前記チャンネル再生手段を用いてチャンネルを再生し、前記サービス再生手段が再生すべきサービスを受け付ける時は、前記サービス再生手段を用いてチャンネルを再生することにより、ＪａｖａＶＭが起動する前でサービス再生手段が使用できないときに、映像と音声の再生を行うことが出来る。
【００１９】
また、前記プログラム実行装置は更に、前記サービス再生手段が再生すべきサービスの受け付けを開始したことを通知するサービス受付開始通知手段を備えることにより、サービス再生手段は、Ｊａｖａプログラムを含む再生を開始することが出来る。
【００２０】
また、Ｊａｖａプログラムを実行するＪａｖａＶＭと、入力を受け付ける入力手段と、放送を受信する受信手段と、前記受信手段が受信した放送に含まれるチャンネルの映像・音声を再生するチャンネル再生手段と、前記受信手段が受信した放送に含まれるチャンネルの映像・音声及びデータを再生するサービス再生手段と、再生すべきチャンネルの識別子を受け付け、前記サービス再生手段がチャンネルの再生が可能なとき前記サービス再生手段を用いてチャンネルを再生し、前記サービス再生手段がチャンネルの再生が不可能なとき前記チャンネル再生手段を用いてチャンネルを再生するチャンネル識別子受付手段と、前記入力手段からの指示に基づき、再生すべきチャンネルの識別子を前記チャンネル識別子受付手段に指示する再生プログラムと、前記再生プログラムと前記ＪａｖａＶＭを実行する実行手段と、前記再生プログラムが最後にチャンネル識別子受付手段に指示したチャンネルを前記Ｊａｖａプログラムに提供する情報提供手段とを備えることにより、再生プログラムは、同一の処理を行えばよく、コードサイズも小さく容易に実装することが出来る。
【００２１】
また、前記プログラム実行装置は更に、前記チャンネル識別子受付手段が受け付けたチャンネルの識別子を記憶するチャンネル識別子記憶手段を備え、前記チャンネル識別子受付手段は、前記サービス再生手段がチャンネルの再生が可能になった時に、前記チャンネル識別子記憶手段に記憶したチャンネルの識別子を前記サービス再生手段に与え、チャンネルの再生を行うことにより、ＪａｖａＶＭが起動せずサービス再生手段が使用できない時に再生を開始できなかったチャンネルに含まれるＪａｖａプログラムの再生を開始することが出来る。
【００２２】
また、コンピュータ読み取り可能な記録媒体であって、  Ｊａｖａプログラムを実行するＪａｖａＶＭと、前記Ｊａｖａプログラムの一部の機能である部分機能を備える組み込みプログラムと、前記組み込みプログラムと前記ＪａｖａＶＭを実行する実行手段と、前記組み込みプログラムが動作したことにより引き起こされた情報を前記Ｊａｖａプログラムに提供する情報提供手段の各機能を発揮するプログラムを記録したコンピュータ読み取り可能な記録媒体とすることにより可搬性を高めることが出来る。
【発明を実施するための最良の形態】
【００２３】
（実施の形態１）
本発明に係るケーブルテレビシステムの実施の形態を、図面を参照しながら説明する。図１は、ケーブルシステムを構成する装置の関係を表したブロック図であり、ヘッドエンド１０１及び３個の端末装置Ａ１１１、端末装置Ｂ１１２、端末装置Ｃ１１３で構成される。本実施の形態では、１つのヘッドエンドに対して３つの端末装置が結合されているが、任意の数の端末装置をヘッドエンドに結合しても、本発明は実施可能である。
【００２４】
ヘッドエンド１０１は、複数の端末装置に対して映像・音声・データ等の放送信号を送信するとともに、端末装置からのデータ送信を受信する。これを実現するため、ヘッドエンド１０１と端末装置Ａ１１１、端末装置Ｂ１１２、端末装置Ｃ１１３間の伝送に用いられる周波数帯域は、分割して用いられる。図２は、周波数帯域の分割の一例を示す表である。周波数帯域は、Ｏｕｔ  Ｏｆ  Ｂａｎｄ（略称ＯＯＢ）とＩｎ−Ｂａｎｄの２種類に大別される。５〜１３０ＭＨｚがＯＯＢに割り当てられ、主にヘッドエンド１０１と端末装置Ａ１１１、端末装置Ｂ１１２、端末装置Ｃ１１３間のデータのやり取りに使用される。１３０ＭＨｚ〜８６４ＭＨｚはＩｎ−Ｂａｎｄに割り当てられ、主として、映像・音声を含む放送チャンネルに使用される。ＯＯＢではＱＰＳＫ変調方式が、Ｉｎ−ＢａｎｄはＱＡＭ６４変調方式が使用される。変調方式技術については、本発明に関与が薄い公知技術であるので、詳細な説明は省略する。図３は、ＯＯＢ周波数帯域の更に詳細な使用の一例である。７０ＭＨｚ〜７４ＭＨｚはヘッドエンド１０１からのデータ送信に使用され、全ての端末装置Ａ１１１、端末装置Ｂ１１２、端末装置Ｃ１１３が、ヘッドエンド１０１から同じデータを受け取ることになる。一方、１０．０ＭＨｚ〜１０．１ＭＨｚは端末装置Ａ１１１からヘッドエンド１０１へのデータ送信に使用され、１０．１ＭＨｚ〜１０．２ＭＨｚは端末装置Ｂ１１２からヘッドエンド１０１へのデータ送信に使用され、１０．２ＭＨｚ〜１０．３ＭＨｚは端末装置Ｃ１１３からヘッドエンド１０１へのデータ送信に使用される。これにより、各端末装置固有のデータを各端末装置Ａ１１１、端末装置Ｂ１１２、端末装置Ｃ１１３からヘッドエンド１０１に送信することができる。図４は、Ｉｎ−Ｂａｎｄの周波数帯に対する使用の一例である。１５０〜１５６ＭＨｚと１５６〜１６２ＭＨｚはそれぞれテレビチャンネル１とテレビチャンネル２に割り当てられ、以降、６ＭＨｚ間隔でテレビチャンネルが割り当てられている。３１０ＭＨｚ以降は、１ＭＨｚ単位でラジオチャンネルに割り当てられている。これらの各チャンネルはアナログ放送として使用してもデジタル放送として使用してもよい。デジタル放送の場合は、ＭＰＥＧ２仕様に基づいたトランスポートパケット形式で伝送され、音声や映像に加え、各種データ放送用データも送信することができる。
【００２５】
ヘッドエンド１０１は、これらの周波数帯域に適切な放送信号を送信するため、ＱＰＳＫ変調部やＱＡＭ変調部等を有する。また、端末装置からのデータを受信するため、ＱＰＳＫ復調器を有する。また、ヘッドエンド１０１は、これら変調部及び復調部に関連する様々な機器を有すると考えられる。しかし、本発明は主として端末装置に関わるので、詳細な説明は省略する。
【００２６】
端末装置Ａ１１１、端末装置Ｂ１１２、端末装置Ｃ１１３は、ヘッドエンド１０１からの放送信号を受信し再生する。また、ヘッドエンド１０１に対して、各端末装置固有のデータを送信する。３つの、端末装置は本実施の形態では同じ構成を取る。
【００２７】
図５は、端末装置のハードウエア構成を表すブロック図である。５００は端末装置であり、ＱＡＭ復調部５０１、ＱＰＳＫ復調部５０２、ＱＰＳＫ変調部５０３、ＴＳデコーダ５０５、オーディオデコーダ５０６、スピーカ５０７、ビデオデコーダ５０８、ディスプレイ５０９、２次記憶部５１０、１次記憶部５１１、ＲＯＭ５１２、入力部５１３、ＣＰＵ５１４で構成される。また端末装置５００には、ＰＯＤ５０４が着脱できる。
【００２８】
図６は、端末装置５００の外観の一例である薄型テレビである。
６０１は、薄型テレビの筐体であり、ＰＯＤ５０４を除く、端末装置５００の構成要素をすべてを内蔵している。
【００２９】
６０２はディスプレイであり、図５におけるディスプレイ５０９に相当する。
６０３は複数のボタンで構成されるフロントパネル部であり、図５の入力部５１３に相当する。
【００３０】
６０４は信号入力端子であり、ヘッドエンド１０１との信号の送受信を行うためにケーブル線を接続する。信号入力端子は、図５のＱＡＭ復調部５０１、ＱＰＳＫ復調部５０２、ＱＰＳＫ変調部５０３と接続されている。
【００３１】
６０５は、図５のＰＯＤ５０４に相当するＰＯＤカードである。ＰＯＤ５０４は、図６のＰＯＤカード６０５のように、端末装置５００とは独立した形態を取り、端末装置５００に着脱可能となっている。ＰＯＤ５０４の詳細は後述する。
【００３２】
６０６はＰＯＤカード６０５を挿入する挿入スロットである。
図５を参照して、ＱＡＭ復調部５０１は、ＣＰＵ５１４から指定された周波数を含むチューニング情報で、ヘッドエンド１０１でＱＡＭ変調され送信されてきた信号を復調し、ＰＯＤ５０４に引き渡す。
【００３３】
ＱＰＳＫ復調部５０２は、ＣＰＵ５１４から指定された周波数を含むチューニング情報で、ヘッドエンド１０１でＱＰＳＫ変調され送信されてきた信号を復調し、ＰＯＤ５０４に引き渡す。
【００３４】
ＱＰＳＫ変調部５０３は、ＣＰＵ５１４から指定された周波数を含む変調情報で、ＰＯＤ５０４から渡された信号をＱＰＳＫ変調し、ヘッドエンド１０１に送信する。
ＰＯＤ５０４は、図６のように端末装置本体５００から着脱可能な形態をしている。端末本体５００とＰＯＤ５０４の接続インターフェースは、ＯｐｅｎＣａｂｌｅ（ＴＭ）  ＨＯＳＴ−ＰＯＤ  Ｉｎｔｅｒｆａｃｅ  Ｓｐｅｃｉｆｉｃａｔｉｏｎ（ＯＣ−ＳＰ−ＨＯＳＴＰＯＤ−ＩＦ−Ｉ１２−０３０２１０）及び、この仕様書から参照されている仕様書で定義されている。ここでは、詳細は省略し、本発明に関する部分のみを解説する。
【００３５】
図７は、ＰＯＤ５０４の内部構成を表すブロック図である。ＰＯＤ５０４は、第１デスクランブラ部７０１、第２デスクランブラ部７０２、スクランブラ部７０３、第１記憶部７０４、第２記憶部７０５、ＣＰＵ７０６で構成される。
【００３６】
第１デスクランブラ部７０１は、ＣＰＵ７０６からの指示により、端末装置５００のＱＡＭ復調部５０１から暗号化された信号を受け取り、復号を行う。そして、復号された信号を端末装置５００のＴＳデコーダ５０５に送る。デコードに必要な鍵などの情報はＣＰＵ７０６から適宜与えられる。具体的には、ヘッドエンド１０１はいくつかの有料チャンネルを放送している。ユーザーが、この有料チャンネルを購買すると、第１デスクランブラ部７０１は、ＣＰＵ７０６から鍵等の必要な情報を受け取りデスクランブルすることで、ユーザーは有料チャンネルを閲覧することができる。鍵などの必要な情報が与えられない場合は、第１デスクランブラ部７０１は、デスクランブルを行わず、受け取った信号をそのまま、ＴＳデコーダ５０５に送る。
【００３７】
第２デスクランブラ部７０２は、ＣＰＵ７０６からの指示により、端末装置５００のＱＰＳＫ復調部５０２から暗号化された信号を受け取り、復号を行う。そして、復号されたデータをＣＰＵ７０６に引き渡す。
【００３８】
スクランブラ部７０３は、ＣＰＵ７０６からの指示により、ＣＰＵ７０６から受け取ったデータを暗号化し、端末装置５００のＱＰＳＫ変調部５０３に送る。
第１記憶部７０４は、具体的にはＲＡＭ等の一次記憶メモリーで構成され、ＣＰＵ７０６が処理を行う際、一時的にデータを保存するために使用される。
【００３９】
第２記憶部７０５は、具体的にはフラッシュＲＯＭ等の２次記憶メモリーで構成され、ＣＰＵ７０６が実行するプログラムを格納し、また、電源ＯＦＦになっても消去されては困るデータの保存に使用される。
【００４０】
ＣＰＵ７０６は、第２記憶部７０５が記憶するプログラムを実行する。プログラムは複数のサブプログラムで構成される。図８は、第２記憶部７０５が記憶するプログラムの一例である。図８では、プログラム８００は、メインプログラム８０１、初期化サブプログラム８０２、ネットワークサブプログラム８０３、再生サブプログラム８０４、ＰＰＶサブプログラム８０５等複数のサブプログラムで構成されている。
【００４１】
ここでＰＰＶとはＰａｙ  Ｐｅｒ  Ｖｉｅｗの略であり、映画など特定の番組を有料で視聴できるようにするサービスである。ユーザーが暗証番号を入力すると、購入したことがヘッドエンド１０１に通知され、スクランブルが解除され、視聴することが出来る。この視聴により、ユーザーは後日、購入代金を支払うものである。
【００４２】
メインプログラム８０１は、ＣＰＵ７０６が電源投入時に最初に起動するサブプログラムであり、他のサブプログラムの制御を行う。
初期化サブプログラム８０２は、電源投入時にメインプログラム８０１によって起動され、端末装置５００との情報交換等を行い、初期化処理を行う。初期化処理の詳細は、ＯｐｅｎＣａｂｌｅ（ＴＭ）  ＨＯＳＴ−ＰＯＤ  Ｉｎｔｅｒｆａｃｅ  Ｓｐｅｃｉｆｉｃａｔｉｏｎ（ＯＣ−ＳＰ−ＨＯＳＴＰＯＤ−ＩＦ−Ｉ１２−０３０２１０）及び、この仕様書から参照されている仕様書で定義されている。また、仕様書に定義されていない初期化処理も行う。ここでは、その一部を紹介する。電源が投入されると、初期化サブプログラム８０２は、第２記憶部７０５が記憶する第１の周波数を端末装置５００のＣＰＵ５１４を通して、ＱＰＳＫ復調部５０２に通知する。ＱＰＳＫ復調部５０２は、与えられた第１の周波数でチューニングを行い、信号を第２デスクランブラ部７０２に送る。また、初期化サブプログラム８０２は、第２記憶部７０５が記憶する第１の鍵等の復号情報を第２デスクランブラ部７０２に与える。その結果、第２デスクランブラ部７０２は、デスクランブルを行い、初期化サブプログラム８０２を実行するＣＰＵ７０６に引き渡す。よって、初期化サブプログラム８０２は情報を受け取ることができる。本実施の形態では、初期化サブプログラム８０２はネットワークサブプログラム８０３を通して情報を受け取ることとする。詳細は後述する。
【００４３】
また、初期化サブプログラム８０２は、第２記憶部７０５が記憶する第２の周波数を端末装置５００のＣＰＵ５１４を通して、ＱＰＳＫ変調部５０３に通知する。初期化サブプログラム８０２は第２記憶部７０５が記憶する暗号化情報をスクランブラ部７０３に与える。初期化サブプログラム８０２が送信したい情報を、ネットワークサブプログラム８０３を介して、スクランブラ部７０３に与えると、スクランブラ部７０３は、与えられた暗号化情報を用いて、データを暗号化し、端末装置５００のＱＰＳＫ変調部５０３に与える。ＱＰＳＫ変調部５０３は、与えられた暗号化された情報を変調し、ヘッドエンド１０１に送信する。
【００４４】
この結果、初期化サブプログラム８０２は、端末装置５００、第２デスクランブラ部７０２、スクランブラ部７０３、ネットワークサブプログラム８０３を通して、ヘッドエンド１０１と双方向通信を行うことができる。
【００４５】
ネットワークサブプログラム８０３は、メインプログラム８０１、初期化サブプログラム８０２等の複数のサブプログラムから使用される、ヘッドエンド１０１との双方向通信を行うためのサブプログラムである。具体的には、ネットワークサブプログラム８０３を使用する他のサブプログラムに対して、ＴＣＰ／ＩＰによって、ヘッドエンド１０１と双方向通信を行っているように振舞う。ＴＣＰ／ＩＰは、複数の装置間で情報交換を行うためのプロトコルを規定した公知の技術であり、詳細な説明は省略する。ネットワークサブプログラム８０３は、電源投入時に初期化サブプログラム８０２に起動されると、予め第２記憶部７０５が記憶しているＰＯＤ５０４を識別する識別子であるＭＡＣアドレス（Ｍｅｄｉａ  Ａｃｃｅｓｓ  Ｃｏｎｔｒｏｌアドレスの略）を、端末装置５００を通してヘッドエンド１０１に通知し、ＩＰアドレスの取得を要求する。ヘッドエンド１０１は、端末装置５００を介してＰＯＤ５０４にＩＰアドレスを通知し、ネットワークサブプログラム８０３は、ＩＰアドレスを第１記憶部７０４に記憶する。以降、ヘッドエンド１０１とＰＯＤ５０４は、このＩＰアドレスを、ＰＯＤ５０４の識別子として使用し、通信を行う。
【００４６】
再生サブプログラム８０４は、第２記憶部７０５が記憶する第２の鍵等の復号情報や、端末装置５００から与えられる第３の鍵等の復号情報を第１デスクランブラ部７０１に与えて、デスクランブルを可能にする。また、ネットワークサブプログラム８０３を通して、第１デスクランブラ部７０１に入力されている信号が、ＰＰＶチャンネルであることの情報を受け取る。ＰＰＶチャンネルと知ったときは、ＰＰＶサブプログラム８０５を起動する。
【００４７】
ＰＰＶサブプログラム８０５は、起動されると、端末装置５００に番組の購入を促すメッセージを表示し、ユーザーの入力を受け取る。具体的には、端末装置５００のＣＰＵ５１４に画面に表示したい情報を送ると、端末装置５００のＣＰＵ５１４上で動作するプログラムが、端末装置５００のディスプレイ５０９上にメッセージを表示する。ユーザーは、端末装置５００の入力部５１３を通して暗証番号を入力すると、端末装置５００のＣＰＵ５１４が、それを受け取り、ＰＯＤ５０４のＣＰＵ７０６上で動作するＰＰＶサブプログラム８０５に通知する。ＰＰＶサブプログラム８０５は、受け取った暗証番号をネットワークサブプログラム８０３を通してヘッドエンド１０１に送信する。ヘッドエンド１０１は、暗証番号が正しければ、復号に必要な第４の鍵などの復号化情報をネットワークサブプログラム８０３を介して、ＰＰＶサブプログラム８０５に通知する。ＰＰＶサブプログラム８０５は受け取った第４の鍵などの復号化情報を第１デスクランブラ部７０１に与え、第１デスクランブラ部７０１は、入力されている信号をデスクランブルする。
【００４８】
図５を参照して、ＴＳデコーダ５０５は、ＰＯＤ５０４から受け取った信号のフィルタリングを実施し、必要なデータをオーディオデコーダ５０６及びビデオデコーダ５０８、ＣＰＵ５１４に引き渡す。ここで、ＰＯＤ５０４から来る信号はＭＰＥＧ２トランスポートストリームである。ＭＰＥＧ２トランスポートストリームの詳細はＭＰＥＧ規格書  ＩＳＯ／ＩＥＣ１３８１８−１に記載されており、本実施の形態では詳細は省略する。ＭＰＥＧ２トランスポートストリームは、複数の固定長パケットで構成され、各パケットには、パケットＩＤが振られている。図９はパケットの構成図である。９００はパケットであり、固定長の１８８バイトで構成される。先頭４バイトがヘッダー９０１で、パケットの識別情報を格納しており、残り１８４バイトがペイロード９０２で、送信したい情報を含んでいる。９０３は、ヘッダー９０１の内訳である。先頭から１２ビット目〜２４ビット目までの１３ビットにパケットＩＤが含まれている。図１０は送られてくる複数のパケットの列を表現した模式図である。パケット１００１は、ヘッダーにパケットＩＤ「１」を持ち、ペイロードには映像Ａの１番目の情報が入っている。パケット１００２は、ヘッダーにパケットＩＤ「２」を持ち、ペイロードには音声Ａの１番目の情報が入っている。パケット１００３は、ヘッダーにパケットＩＤ「３」を持ち、ペイロードには音声Ｂの１番目の情報が入っている。
【００４９】
パケット１００４は、ヘッダーにパケットＩＤ「１」を持ち、ペイロードには映像Ａの２番目の情報が入っており、これはパケット１００１の続きになっている。同様にパケット１００５、１０２６、１０２７も他のパケットの後続データを格納している。このように、同じパケットＩＤを持つ、パケットのペイロードの内容を連結すると、連続した映像や音声を再現することができる。
【００５０】
図１０を参照して、ＣＰＵ５１４がパケットＩＤ「１」と出力先として「ビデオデコーダ５０８」をＴＳデコーダ５０５に指示すると、ＴＳデコーダ５０５はＰＯＤ５０４から受け取ったＭＰＥＧ２トランスポートストリームからパケットＩＤ「１」のパケットを抽出し、ビデオデコーダ５０８に引き渡す。図１０においては、映像データのみをビデオデコーダ５０８に引き渡すことになる。同時に、ＣＰＵ５１４がパケットＩＤ「２」と「オーディオデコーダ５０６」をＴＳデコーダ５０５に指示すると、ＴＳデコーダ５０５はＰＯＤ５０４から受け取ったＭＰＥＧ２トランスポートストリームからパケットＩＤ「２」のパケットを抽出し、オーディオデコーダ５０６に引き渡す。図１０においては、音声データのみをオーディオデコーダ５０６に引き渡すことになる。
【００５１】
このパケットＩＤに応じて必要なパケットだけを取り出す処理が、ＴＳデコーダ５０５が行うフィルタリングである。ＴＳデコーダ５０５はＣＰＵ５１４から指示された複数のフィルタリングを同時に実行することができる。
【００５２】
図５を参照して、オーディオデコーダ５０６は、ＴＳデコーダ５０５から与えられたＭＰＥＧ２トランスポートストリームのパケットに埋め込まれたオーディオデータを連結し、デジタル−アナログ変換を行いスピーカ５０７に出力する。
【００５３】
スピーカ５０７は、オーディオデコーダ５０６から与えられた信号を音声出力する。
ビデオデコーダ５０８は、ＴＳデコーダ５０５から与えられたＭＰＥＧ２トランスポートストリームのパケットに埋め込まれたビデオデータを連結し、デジタル−アナログ変換を行いディスプレイ５０９に出力する。
【００５４】
ディスプレイ５０９は、具体的にはブラウン管や液晶等で構成され、ビデオデコーダ５０８から与えられたビデオ信号を出力したり、ＣＰＵ５１４から指示されたメッセージを表示したりする。
【００５５】
２次記憶部５１０は、具体的には、フラッシュメモリーやハードディスク等で構成され、ＣＰＵ５１４から指示されたデータやプログラムを保存したり削除したりする。また、保存されているデータやプログラムはＣＰＵ５１４に参照される。保存されているデータやプログラムは、端末装置５００の電源が切断された状態でも保存しつづける。
【００５６】
１次記憶部５１１は、具体的には、ＲＡＭ等で構成され、ＣＰＵ５１４から指示されたデータやプログラムを一次的に保存したり削除したりする。また、保存されているデータやプログラムはＣＰＵ５１４に参照される。保存されているデータやプログラムは、端末装置５００の電源が切断された際に、抹消される。
【００５７】
ＲＯＭ５１２は、書き換え不可能なメモリーデバイスであり、具体的にはＲＯＭやＣＤ−ＲＯＭ、ＤＶＤなどで構成される。ＲＯＭ５１２は、ＣＰＵ５１４が実行するプログラムが格納されている。
【００５８】
入力部５１３は、具体的には、フロントパネルやリモコンで構成され、ユーザーからの入力を受け付ける。図１１は、フロントパネルで入力部５１３を構成した場合の一例である。１１００はフロントパネルであり、図６のフロントパネル部６０３に相当する。フロントパネル１１００は７つのボタン、上カーソルボタン１１０１、下カーソルボタン１１０２、左カーソルボタン１１０３、右カーソルボタン１１０４、ＯＫボタン１１０５、取消ボタン１１０６、ＥＰＧボタン１１０７を備えている。ユーザーがボタンを押下すると、押下されたボタンの識別子が、ＣＰＵ５１４に通知される。
【００５９】
ＣＰＵ５１４は、ＲＯＭ５１２が記憶するプログラムを実行する。実行するプログラムの指示に従い、ＱＡＭ復調部５０１、ＱＰＳＫ復調部５０２、ＱＰＳＫ変調部５０３、ＰＯＤ５０４、ＴＳデコーダ５０５、ディスプレイ５０９、２次記憶部５１０、１次記憶部５１１、ＲＯＭ５１２を制御する。
【００６０】
図１２は、ＲＯＭ５１２に記憶され、ＣＰＵ５１４に実行されるプログラムの構成図の一例である。
プログラム１２００は、複数のサブプログラムで構成され、具体的にはＯＳ１２０１、ＥＰＧ１２０２、ＪａｖａＶＭ１２０３、サービスマネージャ１２０４、Ｊａｖａライブラリ１２０５で構成される。
【００６１】
ＯＳ１２０１は、端末装置５００の電源が投入されると、ＣＰＵ５１４が起動するサブプログラムである。ＯＳ１２０１は、オペレーティングシステムの略であり、Ｌｉｎｕｘ等が一例である。ＯＳ１２０１は、他のサブプログラムを平行して実行するカーネル１２０１ａ及びライブラリ１２０１ｂで構成される公知の技術の総称であり、詳細な説明は省略する。本実施の形態においては、ＯＳ１２０１のカーネル１２０１ａは、ＥＰＧ１２０２とＪａｖａＶＭ１２０３をサブプログラムとして実行する。また、ライブラリ１２０１ｂは、これらサブプログラムに対して、端末装置５００が保持する構成要素を制御するための複数の機能を提供する。
【００６２】
本実施の形態では、ライブラリ１２０１ｂは機能の一例として、チューナ１２０１ｂ１、限定受信１２０１ｂ２、ＡＶ再生１２０２ｂ３を含む。チューナ１２０１ｂ１は、他のサブプログラムやＪａｖａライブラリ１２０５のＴｕｎｅｒ１２０５ｃから周波数を含むチューニング情報を受け取り、それをＱＡＭ復調部５０１に引き渡す。ＱＡＭ復調部５０１は与えられたチューニング情報に基づき復調処理を行い、復調したデータをＰＯＤ５０４に引き渡すことができる。この結果、他のサブプログラム及びＪａｖａライブラリ１２０５のＴｕｎｅｒ１２０５ｃはライブラリ１２０１ｂを通してＱＡＭ復調器を制御することができる。
【００６３】
限定受信１２０１ｂ２は、他のサブプログラムやＪａｖａライブラリ１２０５のＣＡ１２０５ｄから復号に必要な情報を受け取り、ＰＯＤ５０４に与える。この結果、ＰＯＤ５０４は、与えられた情報を元に、ＱＡＭ復調部５０１から与えられた信号を復号しＴＳデコーダ５０５に引き渡す。
【００６４】
ＡＶ再生１２０２ｂ３は、他のサブプログラムやＪａｖａライブラリ１２０５のＪＭＦ１２０５ａから，音声のパケットＩＤと映像のパケットＩＤを受け取る。受け取った音声のパケットＩＤと出力先としてオーディオデコーダ５０６の組と、受け取った映像のパケットＩＤと出力先としてビデオデコーダ５０８の組を、ＴＳデコーダ５０５に与える。この結果、ＴＳデコーダ５０５は与えられたパケットＩＤと出力先に基づいて、フィルタリングを行い、映像・音声の再生を実現する。  ＥＰＧ１２０２は、ユーザーに番組一覧を表示及び、ユーザーからの入力を受け付ける番組表示部１２０２ａと、チャンネル選局を行う再生部１２０２ｂで構成される。ここで、ＥＰＧはＥｌｅｃｔｒｉｃ  Ｐｒｏｇｒａｍ  Ｇｕｉｄｅの略である。ＥＰＧ１２０２は、端末装置５００の電源が投入されると、カーネル１２０１ａによって起動される。起動されたＥＰＧ１２０２の内部では、番組表示部１２０２ａと再生部１２０２ｂが同時に起動される。番組表示部１２０２ａは起動されると、端末装置５００の入力部５１３を通して、ユーザーからの入力を待つ。ここで、入力部５１３が図１１で示されるフロントパネルで構成されている場合、ユーザーが、入力部５１３のＥＰＧボタン１１０７を押下すると、ＥＰＧボタンの識別子がＣＰＵ５１４に通知される。ＣＰＵ５１４上で動作するサブプログラムであるＥＰＧ１２０２の番組表示部１２０２ａは、この識別子を受け取り、番組情報をディスプレイ５０９に表示する。図１３（１）及び（２）は、ディスプレイ５０９に表示された番組表の一例である。図１３（１）を参照して、ディスプレイ５０９には、格子状に番組情報が表示されている。列１３０１には、時刻情報が表示されている。列１３０２には、チャンネル名「チャンネル１」と、列１３０１の時刻に対応する時間帯に放映される番組が表示されている。「チャンネル１」では、９：００〜１０：３０に番組「ニュース９」が放映され、１０：３０〜１２：００は「映画ＡＡＡ」が放映されることを表す。列１３０３も列１３０２同様、チャンネル名「チャンネル２」と、列１３０１の時刻に対応する時間帯に放映される番組が表示されている。９：００〜１１：００に番組「映画ＢＢＢ」が放映され、１１：００〜１２：００は「ニュース１１」が放映される。１３３０は、カーソルである。カーソル１３３０は、フロントパネル１１００の左カーソル１１０３と右カーソル１１０４を押下すると移動する。図１３（１）の状態で、右カーソル１１０４を押下すると、カーソル１３３０は右に移動し、図１３（２）のようになる。また、図１３（２）の状態で、左カーソル１１０３を押下すると、カーソル１３３０は左に移動し、図１３（１）のようになる。
【００６５】
図１３（１）の状態で、フロントパネル１１００のＯＫボタン１１０５が押下されると、番組表示部１２０２ａは、「チャンネル１」の識別子を再生部１２０２ｂに通知する。図１３（２）の状態で、フロントパネル１１００のＯＫボタン１１０５が押下されると、番組表示部１２０２ａは、「チャンネル２」の識別子を再生部１２０２ｂに通知する。
【００６６】
また、番組表示部１２０２ａは、表示する番組情報を、ＰＯＤ５０４を通してヘッドエンド１０１から定期的に、１次記憶部５１１に記憶しておく。一般的に、ヘッドエンドからの番組情報の取得は時間が掛かる。入力部５１３のＥＰＧボタン１１０７が押下された時、１次記憶部５１１に予め保存された番組情報を表示することで、素早く番組表を表示することができる。
【００６７】
再生部１２０２ｂは、受け取ったチャンネルの識別子を用いて、チャンネルを再生する、すなわちチャンネルを構成する映像と音声を再生する。チャンネルの識別子とチャンネルの関係は、チャンネル情報として、２次記憶部５１０に予め格納されている。図１４は２次記憶部５１０に格納されているチャンネル情報の一例である。チャンネル情報は表形式で格納されている。列１４０１は、チャンネルの識別子である。列１４０２は、チャンネル名である。列１４０３はチューニング情報である。ここで、チューニング情報は周波数や転送レート、符号化率などを含み、ＱＡＭ復調部５０１に与える値である。列１４０４はプログラムナンバーである。プログラムナンバーとは、ＭＰＥＧ２規格で規定されているＰＭＴを識別するための番号である。ＰＭＴに関しては、後述する。行１４１１〜１４１４の各行は、各チャンネルの識別子、チャンネル名、チューニング情報の組となる。行１４１１は識別子が「１」、チャンネル名が「チャンネル１」、チューニング情報に周波数「１５０ＭＨｚ」、プログラムナンバーが「１０１」を含む組となっている。再生部１２０２ｂは、チャンネルの再生を行うため、受け取ったチャンネルの識別子をそのままサービスマネージャに引き渡す。
【００６８】
また、再生部１２０２ｂは、再生中に、ユーザーがフロントパネル１１００の上カーソル１１０１と下カーソル１１０２を押下すると、入力部５１３からＣＰＵ５１４を通して、押下された通知を受け取り、再生しているチャンネルを変更する。上カーソル１１０１を押下すると、現在再生中のチャンネルよりも一つ小さいチャンネル識別子を持つチャンネルを再生し、また下カーソル１１０２を押下すると、現在再生中のチャンネルよりも一つ大きいチャンネル識別子を持つチャンネルを再生する。まず、再生部１２０２ｂは、２次記憶部５１２に現在再生中のチャンネルの識別子を記憶する。図１５（１）（２）及び（３）は、２次記憶部５１２に保存しているチャンネルの識別子の例である。図１５（１）では識別子「３」が記憶されており、図１４を参照し、チャンネル名「ＴＶ  ３」のチャンネルが再生中であることを示す。図１５（１）の状態で、ユーザーが上カーソル１１０１を押下すると再生部１２０２ｂは、図１４のチャンネル情報を参照し、表中で現在再生中のチャンネルよりも一つ小さい識別子を持つチャンネルであるチャンネル名「チャンネル２」のチャンネルに再生を切り変えるため、サービスマネージャにチャンネル名「チャンネル２」の識別子「２」を引き渡す。同時に、２次記憶部５１２に記憶されているチャンネル識別子「２」に書き換える。図１５（２）は、チャンネル識別子が書き換えられた状態を表す。また、図１５（１）の状態で、ユーザーが下カーソル１１０２を押下すると再生部１２０２ｂは、図１４のチャンネル情報を参照し、表中で現在再生中のチャンネルよりも一つ大きい識別子を持つチャンネルであるチャンネル名「ＴＶ  Ｊａｐａｎ」のチャンネルに再生を切り変えるため、サービスマネージャにチャンネル名「ＴＶ  Ｊａｐａｎ」の識別子「４」を引き渡す。同時に、２次記憶部５１２に記憶されているチャンネル識別子「４」に書き換える。図１５（３）は、チャンネル識別子が書き換えられた状態を表す。チャンネル識別子は、２次記憶部５１２に記憶されているので、端末装置５００の電源が切られた際も保存されている。
【００６９】
更に再生部１２０２ｂは、端末装置５００の電源が投入された際に、起動されると、２次記憶部５１２に記憶されているチャンネル識別子を読み出す。そして、そのチャンネル識別子をサービスマネージャに引渡す。これにより、端末装置５００は、電源投入時に前回の稼動時に再生されていた最後のチャンネルの再生を開始することができる。
【００７０】
ＪａｖａＶＭ１２０３は、Ｊａｖａ（ＴＭ）言語で記述されたプログラムを逐次解析し実行するＪａｖａバーチャルマシンである。Ｊａｖａ言語で記述されたプログラムはバイトコードと呼ばれる、ハードウエアに依存しない中間コードにコンパイルされる。Ｊａｖａバーチャルマシンは、このバイトコードを実行するインタープリタである。また、一部のＪａｖａバーチャルマシンは、バイトコードをＣＰＵ５１４が理解可能な実行形式に翻訳してから、ＣＰＵ５１４に引渡し、実行することも行う。ＪａｖａＶＭ１２０３は、カーネル１２０１ａに実行するＪａｖａプログラムを指定され起動される。本実施の形態では、カーネル１２０１ａは、実行するＪａｖａプログラムとしてサービスマネージャ１２０４を指定する。Ｊａｖａ言語の詳細は、書籍「Ｊａｖａ  Ｌａｎｇｕａｇｅ  Ｓｐｅｃｉｆｉｃａｔｉｏｎ（ＩＳＢＮ  ０−２０１−６３４５１−１）」等の多くの書籍で解説されている。ここでは、その詳細を省略する。また、ＪａｖａＶＭ自体の詳細な動作などは、「Ｊａｖａ  Ｖｉｒｔｕａｌ  Ｍａｃｈｉｎｅ  Ｓｐｅｃｉｆｉｃａｔｉｏｎ（ＩＳＢＮ  ０−２０１−６３４５１―Ｘ）」等の多くの書籍で解説されている。ここでは、その詳細を省略する。
【００７１】
サービスマネージャ１２０４は、Ｊａｖａ言語で書かれたＪａｖａプログラムであり、ＪａｖａＶＭ１２０３によって逐次実行される。サービスマネージャ１２０４は、ＪＮＩ（Ｊａｖａ  Ｎａｔｉｖｅ  Ｉｎｔｅｒｆａｃｅ）を通して、Ｊａｖａ言語で記述されていない他のサブプログラムを呼び出したり、または、呼び出されたりすることが可能である。ＪＮＩに関しても、書籍「Ｊａｖａ  Ｎａｔｉｖｅ  Ｉｎｔｅｒｆａｃｅ」等の多くの書籍で解説されている。ここでは、その詳細を省略する。
【００７２】
サービスマネージャ１２０４は、ＪＮＩを通して、再生部１２０２ｂよりチャンネルの識別子を受け取る。
サービスマネージャ１２０４は、最初にＪａｖａライブラリ１２０５の中にあるＴｕｎｅｒ１２０５ｃに、チャンネルの識別子を引き渡し、チューニングを依頼する。Ｔｕｎｅｒ１２０５ｃは、２次記憶部５１０が記憶するチャンネル情報を参照し、チューニング情報を獲得する。今、サービスマネージャ１２０４がチャンネルの識別子「２」をＴｕｎｅｒ１２０５ｃに引き渡すと、Ｔｕｎｅｒ１２０５ｃは、図１４の行１４１２を参照して、対応するチューニング情報「１５６ＭＨｚ，」を獲得する。Ｔｕｎｅｒ１２０５ｃは、ＯＳ１２０１のライブラリ１２０１ｂのチューナ１２０１ｂ１を通して、ＱＡＭ復調部５０１にチューニング情報を引き渡す。ＱＡＭ復調部５０１は与えられたチューニング情報に従ってヘッドエンド１０１から送信されてきた信号を復調し、ＰＯＤ５０４に引き渡す。
【００７３】
次にサービスマネージャ１２０４は、Ｊａｖａライブラリ１２０５の中にあるＣＡ１２０５ｄにデスクランブルを依頼する。ＣＡ１２０５ｄは、ＯＳ１２０１のライブラリ１２０１ｂの限定受信１２０１ｂ２を通して復号に必要な情報をＰＯＤ５０４に与える。ＰＯＤ５０４は、与えられた情報を元に、ＱＡＭ復調部５０１から与えられた信号を復号しＴＳデコーダ５０５に引き渡す。
【００７４】
次にサービスマネージャ１２０４は、Ｊａｖａライブラリ１２０５の中にあるＪＭＦ１２０５ａにチャンネルの識別子を与え、映像・音声の再生を依頼する。
まず、最初にＪＭＦ１２０５ａは、再生すべき映像と音声を特定するためのパケットＩＤをＰＡＴ、ＰＭＴから取得する。ＰＡＴやＰＭＴはＭＰＥＧ２規格で規定されている、ＭＰＥＧ２トランスポートストリーム内の番組構成を表現するテーブルであり、ＭＰＥＧ２トランスポートストリームに含まれるパケットのペイロードに埋め込まれて、音声や映像と共に送信されるものである。詳細は規格書を参照されたい。ここでは、概略のみ説明する。ＰＡＴは、Ｐｒｏｇｒａｍ  Ａｓｓｏｃｉａｔｉｏｎ  Ｔａｂｌｅの略で、パケットＩＤ「０」のパケットに格納され送信されている。ＪＭＦ１２０５ａは、ＰＡＴを取得するため、ＯＳ１２０１のライブラリ１２０１ｂを通して、ＴＳデコーダ５０５にパケットＩＤ「０」とＣＰＵ５１４を指定する。ＴＳデコーダ５０５がパケットＩＤ「０」でフィルタリングを行い、ＣＰＵ５１４に引き渡すことでＪＭＦ１２０５ａは、ＰＡＴのパケットを収集する。図１６は、収集したＰＡＴの情報の一例を模式的に表した表である。列１６０１は、プログラムナンバーである。列１６０２は、パケットＩＤである。列１６０２のパケットＩＤはＰＭＴを取得するために用いられる。行１６１１〜１６１３は、チャンネルのプログラムナンバーと対応するパケットＩＤの組である。ここでは、３つのチャンネルが定義されている。行１６１１はプログラムナンバー「１０１」とパケットＩＤ「５０１」の組が定義されている。今、ＪＭＦ１２０５ａに与えられたチャンネルの識別子が「２」とすると、ＪＭＦ１２０５ａは、図１４の行１４１２を参照して、対応するプログラムナンバー「１０２」を獲得し、次に、図１６のＰＡＴの行１６１２を参照し、プログラムナンバー「１０２」に対応するパケットＩＤ「５０２」を獲得する。ＰＭＴは、Ｐｒｏｇｒａｍ  Ｍａｐ  Ｔａｂｌｅの略で、ＰＡＴで規定されたパケットＩＤのパケットに格納され送信されている。ＪＭＦ１２０５ａは、ＰＭＴを取得するため、ＯＳ１２０１のライブラリ１２０１ｂを通して、ＴＳデコーダ５０５にパケットＩＤとＣＰＵ５１４を指定する。ここで、指定するパケットＩＤは「５０２」とする。ＴＳデコーダ５０５がパケットＩＤ「５０２」でフィルタリングを行い、ＣＰＵ５１４に引き渡すことでＪＭＦ１２０５ａは、ＰＭＴのパケットを収集する。図１７は、収集したＰＭＴの情報の一例を模式的に表した表である。列１７０１は、ストリーム種別であり。列１７０２は、パケットＩＤである。列１７０２で指定されるパケットＩＤのパケットには、ストリーム種別で指定された情報がペイロードに格納され送信されている。列１７０３は補足情報である。行１７１１〜１７１４はエレメンタリ−ストリームと呼ばれる、パケットＩＤと送信している情報の種別の組である。行１７１１は、ストリーム種別「音声」とパケットＩＤ「５０１１」の組であり、パケットＩＤ「５０１１」のペイロードには音声が格納されていることを表す。ＪＭＦ１２０５ａは、ＰＭＴから再生する映像と音声のパケットＩＤを獲得する。図１７を参照して、ＪＭＦ１２０５ａは、行１７１１から音声のパケットＩＤ「５０１１」を、行１７１２から映像のパケットＩＤ「５０１２」を獲得する。
【００７５】
次に、ＪＭＦ１２０５ａは、ＯＳ１２０１のライブラリ１２０１ｂのＡＶ再生１２０１ｂ３に獲得した音声のパケットＩＤと映像のパケットＩＤを引き渡す。これを受けて、ＡＶ再生１２０１ｂ３は、受け取った音声のパケットＩＤと出力先としてオーディオデコーダ５０６の組と、受け取った映像のパケットＩＤと出力先としてビデオデコーダ５０８の組を、ＴＳデコーダ５０５に与える。ＴＳデコーダ５０５は与えられたパケットＩＤと出力先に基づいて、フィルタリングを行う。ここではパケットＩＤ「５０１１」のパケットをオーディオデコーダ５０６に、パケットＩＤ「５０１２」のパケットをビデオデコーダ５０８に引き渡す。オーディオデコーダ５０６は、与えられたパケットのデジタル−アナログ変換を行いスピーカ５０７を通して音声を再生する。ビデオデコーダ５０８は、与えられたパケットのデジタル−アナログ変換を行いディスプレイ５０９に映像を表示する。
【００７６】
最後にサービスマネージャ１２０４は、Ｊａｖａライブラリ１２０５の中にあるＡＭ１２０５ｂにチャンネルの識別子を与え、データ放送再生を依頼する。ここで、データ放送再生とは、ＭＰＥＧ２トランスポートストリームに含まれるＪａｖａプログラムを抽出し、ＪａｖａＶＭ１２０３に実行させることである。ＭＰＥＧ２トランスポートストリームにＪａｖａプログラムを埋め込む方法は、ＭＰＥＧ規格書  ＩＳＯ／ＩＥＣ１３８１８−６に記述されたＤＳＭＣＣという方式を用いる。ここではＤＳＭＣＣの詳細な説明は省略する。ＤＳＭＣＣ方式は、ＭＰＥＧ２トランスポートストリームのパケットの中に、コンピュータで使用されているディレクトリやファイルで構成されるファイルシステムをエンコードする方法を規定している。また、実行するＪａｖａプログラムの情報はＡＩＴと呼ばれる形式で、ＭＰＥＧ２トランスポートストリームのパケットの中に埋め込まれ送信されている。ＡＩＴは、ＤＶＢ−ＭＨＰ規格（正式には、ＥＴＳＩ  ＴＳ  １０１  ８１２  ＤＶＢ−ＭＨＰ仕様Ｖ１．０．２）の１０章に定義されている、Ａｐｐｌｉｃａｔｉｏｎ  Ｉｎｆｏｒｍａｔｉｏｎ  Ｔａｂｌｅの略である。
【００７７】
ＡＭ１２０５ｂは、まず、ＡＩＴを獲得するため、ＪＭＦ１２０５ａ同様ＰＡＴ、ＰＭＴを取得し、ＡＩＴが格納されているパケットのパケットＩＤを獲得する。今、与えられたチャンネルの識別子が「２」で、図１６のＰＡＴ、図１７のＰＭＴが送信されていると、ＪＭＦ１２０５ａと同様の手順で、図１７のＰＭＴを獲得する。ＡＭ１２０５ｂは、ＰＭＴからストリーム種別が「データ」で補足情報として「ＡＩＴ」を持つエレメンタリ−ストリームからパケットＩＤを抽出する。図１７を参照して、行１７１３のエレメンタリ−ストリームが該当し、パケットＩＤ「５０１３」を獲得する。
【００７８】
ＡＭ１２０５ｂは、ＯＳ１２０１のライブラリ１２０１ｂを通してＴＳデコーダ５０５にＡＩＴのパケットＩＤと出力先ＣＰＵ５１４を与える。ＴＳデコーダ５０５、与えられたパケットＩＤでフィルタリングを行い、ＣＰＵ５１４に引き渡す。この結果、ＡＭ１２０５ｂは、ＡＩＴのパケットを収集することができる。図１８は、収集したＡＩＴの情報の一例を模式的に表した表である。列１８０１はＪａｖａプログラムの識別子である。列１８０２はＪａｖａプログラムの制御情報である。制御情報には「ａｕｔｏｓｔａｒｔ」「ｐｒｅｓｅｎｔ」「ｋｉｌｌ」などがあり、「ａｕｔｏｓｔａｒｔ」は即時に端末装置５００がこのプログラムを自動的に実行することを意味し、「ｐｒｅｓｅｎｔ」は自動実行しないことを意味し、「ｋｉｌｌ」はプログラムを停止することを意味する。列１８０３は、ＤＳＭＣＣ方式でＪａｖａプログラムを含んでいるパケットＩＤを抽出するためのとＤＳＭＣＣ識別子である。列１８０４はＪａｖａプログラムのプログラム名である。行１８１１と１８１２は、Ｊａｖａプログラムの情報の組である。行１８１１で定義されるＪａｖａプログラムは、識別子「３０１」、制御情報「ａｕｔｏｓｔａｒｔ」、ＤＳＭＣＣ識別子「１」、プログラム名「ａ／ＴｏｐＸｌｅｔ」の組である。行１８１２で定義されるＪａｖａプログラムは、識別子「３０２」、制御情報「ｐｒｅｓｅｎｔ」、ＤＳＭＣＣ識別子「１」、プログラム名「ｂ／ＧａｍｅＸｌｅｔ」の組である。ここで２つのＪａｖａプログラムは同じＤＳＭＣＣ識別子を持つが、これは１つのＤＳＭＣＣ方式でエンコードされたファイルシステム内に２つのＪａｖａプログラムが含まれていることを表す。ここでは、Ｊａｖａプログラムに対して４つの情報しか規定しないが、実際にはより多くの情報が定義される。詳細はＤＶＢ−ＭＨＰ規格を参照されたい。
【００７９】
ＡＭ１２０５ｂは、ＡＩＴの中から「ａｕｔｏｓｔａｒｔ」のＪａｖａプログラムを見つけ出し、対応するＤＳＭＣＣ識別子及びＪａｖａプログラム名を抽出する。図１８を参照して、ＡＭ１２０５ｂは行１８１１のＪａｖａプログラムを抽出し、ＤＳＭＣＣ識別子「１」及びＪａｖａプログラム名「ａ／ＴｏｐＸｌｅｔ」を獲得する。
【００８０】
次にＡＭ１２０５ｂは、ＡＩＴから取得したＤＳＭＣＣ識別子を用いて、ＪａｖａプログラムをＤＳＭＣＣ方式で格納しているパケットのパケットＩＤをＰＭＴから獲得する。具体的には、ＰＭＴの中でストリーム種別が「データ」で、補足情報のＤＳＭＣＣ識別子が合致するエレメンタリ−ストリームのパケットＩＤを取得する。
【００８１】
今、ＤＳＭＣＣ識別子が「１」であり、ＰＭＴが図１７とすると、行１７１４のエレメンタリ−ストリームが合致し、パケットＩＤ「５０１４」を取り出す。
ＡＭ１２０５ｂは、ＯＳ１２０１のライブラリ１２０１ｂを通してＴＳデコーダ５０５にＤＳＭＣＣ方式でデータが埋めこめられたパケットのパケットＩＤと出力先としてＣＰＵ５１４を指定する。ここでは、パケットＩＤ「５０１４」を与える。ＴＳデコーダ５０５、与えられたパケットＩＤでフィルタリングを行い、ＣＰＵ５１４に引き渡す。この結果、ＡＭ１２０５ｂは、必要なパケットを収集することができる。ＡＭ１２０５ｂは、収集したパケットから、ＤＳＭＣＣ方式に従ってファイルシステムを復元し、１次記憶部５１１に保存する。ＭＰＥＧ２トランスポートストリーム中のパケットからファイルシステム等のデータを取り出し１次記憶部５１１等の記憶手段に保存すことを以降、ダウンロードと呼ぶ。
【００８２】
図１９は、ダウンロードしたファイルシステムの一例である。図中、丸はディレクトリを四角はファイルを表し、１９０１はルートディレクトリ、１９０２はディレクトリ「ａ」，１９０３はディレクトリ「ｂ」，１９０４はファイル「ＴｏｐＸｌｅｔ．ｃｌａｓｓ」、１９０５はファイル「ＧａｍｅＸｌｅｔ．ｃｌａｓｓ」である。
【００８３】
次にＡＭ１２０５ｂは、１次記憶部５１１にダウンロードしたファイルシステム中から実行するＪａｖａプログラムをＪａｖａＶＭ１２０３に引き渡す。今、実行するＪａｖａプログラム名が「ａ／ＴｏｐＸｌｅｔ」とすると、Ｊａｖａプログラム名の最後に「．ｃｌａｓｓ」を付加したファイル「ａ／ＴｏｐＸｌｅｔ．ｃｌａｓｓ」が実行すべきファイルとなる。「／」はディレクトリやファイル名の区切りであり、図１９を参照して、ファイル１９０４が実行すべきＪａｖａプログラムである。次にＡＭ１２０５ｂは、ファイル１９０４をＪａｖａＶＭ１２０３に引き渡す。
【００８４】
ＪａｖａＶＭ１２０３は、引き渡されたＪａｖａプログラムを実行する。
サービスマネージャ１２０４は、他のチャンネルの識別子を受け取ると、Ｊａｖａライブラリ１２０５に含まれる各ライブラリを通して再生している映像・音声及びＪａｖａプログラムの実行を、同じくＪａｖａライブラリ１２０５に含まれる各ライブラリを通して停止し、新たに受け取ったチャンネルの識別子に基づいて、映像・音声の再生及びＪａｖａプログラムの実行を行う。
【００８５】
また、サービスマネージャ１２０４は、再生部１２０２ｂだけでなく、ＪａｖａＶＭ１２０３上で実行されるＪａｖａプログラムからチャンネルの識別子を受け取る機能も備える。具体的には、チャンネルの識別子を受け取るためのＪａｖａ言語のクラス及びそのメソッドを提供する。チャンネルの識別子を受け取ると、サービスマネージャ１２０４は、Ｊａｖａライブラリ１２０５に含まれる各ライブラリを通して現在再生している映像・音声及びＪａｖａプログラムの実行を、同じくＪａｖａライブラリ１２０５に含まれる各ライブラリを通して停止し、その後、新たに受け取ったチャンネルの識別子に基づいて、新しい映像・音声の再生及びＪａｖａプログラムの実行を行う。
【００８６】
更に、サービスマネージャ１２０４は、Ｊａｖａプログラムのダウンロード・保存及び実行も行う。
サービスマネージャ１２０４は、起動時に、ＰＯＤの初期化処理の終了を待って、Ｊａｖａライブラリ１２０５に含まれるＰＯＤ  Ｌｉｂ１２０５ｅを通してヘッドエンド１０１と双方向通信を行う。この双方向通信は、ＰＯＤ  Ｌｉｂ１２０５ｅはＯＳ１２０１のライブラリ１２０１ｂ及び、ＰＯＤ５０４を介して、ＱＰＳＫ復調部５０２、ＱＰＳＫ変調部５０３を使用して実現される。
【００８７】
サービスマネージャ１２０４は、この通信を用いてヘッドエンド１０１から、端末装置５００が２次記憶部５１０に保存すべきＪａｖａプログラムの情報を受け取る。この情報をＸＡＩＴ情報と呼ぶ。ＸＡＩＴ情報は、ヘッドエンド１０１とＰＯＤ５０４間で、任意の形式で送信される。どのような送信形式を採用しても、ＸＡＩＴに必要とする情報が含まれていれば、本発明は実施可能である。
【００８８】
図２０は、ヘッドエンド１０１から取得したＸＡＩＴの情報の一例を模式的に表した表である。列２００１はＪａｖａプログラムの識別子である。列２００２はＪａｖａプログラムの制御情報である。制御情報には「ａｕｔｏｓｅｌｅｃｔ」「ｐｒｅｓｅｎｔ」などがあり、「ａｕｔｏｓｅｌｅｃｔ」は端末装置５００が電源投入時にこのプログラムを自動的に実行することを意味し、「ｐｒｅｓｅｎｔ」は自動実行しないことを意味する。列２００３は、ＤＳＭＣＣ方式でＪａｖａプログラムを含んでいるパケットＩＤを抽出するためのＤＳＭＣＣ識別子である。列２００４はＪａｖａプログラムのプログラム名である。列２００５は、Ｊａｖａプログラムの優先度である。行２０１１と２０１２は、Ｊａｖａプログラムの情報の組である。行２０１１で定義されるＪａｖａプログラムは、識別子「７０１」、制御情報「ａｕｔｏｓｅｌｅｃｔ」、ＤＳＭＣＣ識別子「１」、プログラム名「ａ／ＺａｐｐｅｒＸｌｅｔ」の組である。ここでは、Ｊａｖａプログラムに対して５つの情報しか規定しないが、より多くの情報が定義されていても本発明は実施可能である。
【００８９】
サービスマネージャ１２０４は、ＸＡＩＴ情報を受け取ると、ＡＩＴ情報からＪａｖａプログラムをダウンロードした手順と同じ手順で、ＭＰＥＧ２トランスポートストリームからファイルシステムを１次記憶部５１１に保存する。その後、保存したファイルシステムを２次記憶部５１０に複写する。なお、１次記憶部５１１を介さず、直接２次記憶部５１０にダウンロードすることも実施可能である。次に、サービスマネージャ１２０４は、ＸＡＩＴ情報にダウンロードしたファイルシステムの格納位置を対応つけて２次記憶部５１０に保存する。図２１は、２次記憶部５１０がＸＡＩＴ情報とダウンロードしたファイルシステムが対応つけられて保存されている一例を表す。図２１の中で、図２０と同じ番号の要素は図２０と同じなので、説明は省略する。列２１０１は対応するダウンロードしたファイルシステムの保存位置を格納する。図中、保存位置は矢印で示している。２１１０はダウンロードしたファイルシステムであり、内部にトップディレクトリ２１１１、ディレクトリ「ａ」２１１２、ディレクトリ「ｂ」２１１３、ファイル「ＺａｐｐｅｒＸｌｅｔ．ｃｌａｓｓ」２１１４、ファイル「ＰＰＶ２Ｘｌｅｔ．ｃｌａｓｓ」２１１５を保持する。
【００９０】
ここで、ＸＡＩＴ情報は、Ｊａｖａプログラムを保存してから保存しているが、Ｊａｖａプログラムを保存する前に保存することも実施可能である。
端末装置５００に電源が投入後、ＯＳ１２０１が、サービスマネージャ１２０４をＪａｖａＶＭ１２０３に指定し、ＪａｖａＶＭ１２０３がサービスマネージャ１２０４を起動した後、サービスマネージャ１２０４は、最初に２次記憶部５１０に保存されたＸＡＩＴ情報を参照する。ここで各Ｊａｖａプログラムの制御情報を参照し「ａｕｔｏｓｅｌｅｃｔ」のプログラムをＪａｖａＶＭ１２０３に引き渡し、起動する。図２１を参照して、行２０１１で定義されるＪａｖａプログラム「ＺａｐｐｅｒＸｌｅｔ」が起動される。
【００９１】
Ｊａｖａライブラリ１２０５は、ＲＯＭ５１２に格納されている複数のＪａｖａライブラリの集合である。本実施の形態では、ここでは、Ｊａｖａライブラリ１２０５は、ＪＭＦ１２０５ａ，ＡＭ１２０５ｂ，Ｔｕｎｅｒ１２０５ｃ，ＣＡ１２０５ｄ、ＰＯＤ  Ｌｉｂ１２０５ｅ、再生Ｌｉｂ１２０５ｆ、ＩＯ１２０５ｇ、ＡＷＴ１２０５ｈ等を含んでいる。
【００９２】
ＪＭＦ１２０５ａ，ＡＭ１２０５ｂ，Ｔｕｎｅｒ１２０５ｃ，ＣＡ１２０５ｄ、ＰＯＤ  Ｌｉｂ１２０５ｅの機能は、既に記述されてるので省略する。
再生Ｌｉｂ１２０５ｆは、２次記憶部５１０が記憶している、現在再生しているチャンネルの識別子をＪａｖａプログラムに渡すためのＪａｖａ言語のクラスおよびメソッドを（以下Ｊａｖａ  ＡＰＩと記述）提供する。このＪａｖａ  ＡＰＩを利用することで、Ｊａｖａプログラムは、現在再生中のチャンネルを知ることができる。
【００９３】
ＩＯ１２０５ｇは、Ｊａｖａプログラムが２次記憶部５１０にデータを書き込むためのＪａｖａ  ＡＰＩ、あるいは、その書き込んだデータを２次記憶部５１０から読み込むためのＪａｖａ  ＡＰＩをＪａｖａプログラムに提供する。このＡＰＩを利用することで、Ｊａｖａプログラムは、任意のデータを２次記憶部５１０に保存することができる。この保存されたデータは端末装置５００の電源がオフになっても消えないので、端末装置５００の電源が投入された後、再びそのデータを読み込むことができる。
【００９４】
ＡＷＴ１２０５ｈは、Ｊａｖａプログラムが描画を行ったり、入力部５１３からのキー入力通知を受け取るためのＪａｖａ  ＡＰＩを提供する。具体的には、「Ｔｈｅ  Ｊａｖａ  ｃｌａｓｓ  Ｌｉｂｒａｒｉｅｓ  Ｓｅｃｏｎｄ  Ｅｄｉｔｉｏｎ，Ｖｏｌｕｍｅ  ２」（ＩＳＢＮ０−２０１−３１００３−１）で既定されるｊａｖａ．ａｗｔパッケージ、ｊａｖａ．ａｗｔ．ｅｖｅｎｔパッケージ及びその他のｊａｖａ．ａｗｔのサブパッケージが相当する。ここでは、詳細な説明を省略する。
【００９５】
次に本発明の主要部分である、端末装置５００の電源投入時における、再生部１２０２ｂの例外処理と、Ｊａｖａプログラム「ＺａｐｐｅｒＸｌｅｔ」の動作について説明する。
【００９６】
図２２は、端末装置５００の電源投入時における、主要サブプログラムの起動順序を表した模式図である。この図は、横軸で時間経過を表す。矢印２２０１の左端は、カーネル１２０１ａの起動を表し、この起動時以降動作しつづけることを表現している。同様に、矢印２２０２、２２０３、２２０４の左端は、各々再生部１２０２ｂ、ＪａｖａＶＭ１２０３、サービスマネージャ１２０４の起動を表し、この起動時以降動作しつづけることを表現している。
【００９７】
２２１１は、端末装置５００に電源が投入された時刻である。このとき、カーネル１２０１ａは起動される。カーネル１２０１ａは自身の初期化処理などを終えた後、２２１２で示される時刻にＥＰＧ１２０２を起動することによって再生部１２０２ｂを起動し、同時にＪａｖａＶＭ１２０３も起動する。ＪａｖａＶＭ１２０３は、自身の初期化処理などを終えた後、２２１３で示される時刻にサービスマネージャ１２０４を起動する。サービスマネージャ１２０４は、自身の初期化処理などを終えた後、２２１４で示される時刻から、再生するチャンネルの識別子を受け取ることができる。
【００９８】
図２２からわかる通り、時刻２２１２から時刻２２１４までの間、再生部１２０２ｂが、再生したいチャンネルの識別子をサービスマネージャ１２０４に引き渡しても、サービスマネージャ１２０４は受け取ることが出来ない。よって、チャンネルを再生することが出来ない。
【００９９】
よって、時刻２２１２から時刻２２１４までの間は、再生部１２０２ｂはサービスマネージャからの指示なしで、自身でチャンネル再生を行うこととする。
再生部１２０２ｂは、ライブラリ１２０１ｂに直接アクセス可能であり、これによりＪａｖａライブラリ１２０５を構成するＴｕｎｅｒ１２０５ｃ、ＣＡ１２０５ｄ及びＪＭＦ１２０５ｃと同様の機能を備える。まず、起動と同時に、２次記憶部５１０が記憶するチャンネルの識別子を読み出す。このチャンネルの識別子は、前回の電源オフ前に最後に再生されていたチャンネルの識別子である。あるいは、２次記憶部５１０は、電源投入時に再生すべき特定のチャンネルの識別子を記憶し、再生部１２０２ｂは、それを読み込むこととしても良い。
【０１００】
次に再生部１２０２ｂは、２次記憶部５１０が記憶するチャンネル情報を参照し、チューニング情報を獲得する。今、チャンネルの識別子「２」のチャンネルを再生したいとすると、図１４の行１４１２を参照して、対応するチューニング情報「１５６ＭＨｚ，」を獲得する。再生部１２０２ｂは、ＯＳ１２０１のライブラリ１２０１ｂのチューナ１２０１ｂ１を通して、ＱＡＭ復調部５０１にチューニング情報を引き渡す。ＱＡＭ復調部５０１は与えられたチューニング情報に従ってヘッドエンド１０１から送信されてきた信号を復調し、ＰＯＤ５０４に引き渡す。
【０１０１】
次に再生部１２０２ｂは、ＯＳ１２０１のライブラリ１２０１ｂの限定受信１２０１ｂ２を通して復号に必要な情報をＰＯＤ５０４に与える。ＰＯＤ５０４は、与えられた情報を元に、ＱＡＭ復調部５０１から与えられた信号を復号しＴＳデコーダ５０５に引き渡す。
【０１０２】
最後に再生部１２０２ｂは、ＪＭＦ１２０５ａ同様、ＴＳデコーダ５０５を使用してＰＡＴ、ＰＭＴ情報を取得し、再生すべき音声と映像のパケットＩＤを獲得する。ＯＳ１２０１のライブラリ１２０１ｂのＡＶ再生１２０１ｂ３に獲得した音声のパケットＩＤと映像のパケットＩＤを引き渡す。これを受けて、ＡＶ再生１２０１ｂ３は、受け取った音声のパケットＩＤと出力先としてオーディオデコーダ５０６の組と、受け取った映像のパケットＩＤと出力先としてビデオデコーダ５０８の組を、ＴＳデコーダ５０５に与える。ＴＳデコーダ５０５は与えられたパケットＩＤと出力先に基づいて、フィルタリングを行う。オーディオデコーダ５０６は、ＴＳデコーダ５０５から与えられたパケットのデジタル−アナログ変換を行いスピーカ５０７を通して音声を再生する。また、ビデオデコーダ５０８は、ＴＳデコーダ５０５から与えられたパケットのデジタル−アナログ変換を行いディスプレイ５０９に映像を表示する。
【０１０３】
再生部１２０２ｂは、時刻２２１４以降は、通常通りチャンネルの識別子をサービスマネージャ１２０４に引き渡す。再生部１２０２ｂは、サービスマネージャ１２０４が、チャンネルの識別子を受け取ることが出来る時刻を、サービスマネージャ１２０４からの通知により知ることができる。具体的には、再生部１２０２ｂ内に用意された関数をサービスマネージャ１２０４が呼び出す。あるいは、再生部１２０４はコールバック関数をサービスマネージャ１２０４に登録し、サービスマネージャ１２０４が登録されたコールバック関数を呼び出してもよい。あるいは、サービスマネージャ１２０４は、ＪａｖａＶＭ１２０３に通知し、ＪａｖａＶＭ１２０３が再生部１２０２ｂに通知する等、間接的に通知しても良い。つまり、様々な方法で、再生部１２０２ｂは、サービスマネージャ１２０４が、チャンネルの識別子を受け取ることが出来る時刻を知ることは可能である。  この結果、時刻２２１４以前は、再生部１２０２ｂにより音声・映像の再生のみが可能であり、時刻２２１４以降は、サービスマネージャ１２０４により音声・映像の再生に加えチャンネルに含まれるＪａｖａプログラムの実行も可能となる。端末装置５００が、上述した起動時における再生部１２０２ｂの例外処理を用いることにより、サービスマネージャ１２０４の起動前に、映像・音声の再生を行うことができ、その結果、電源投入後のユーザー待ち時間を見かけ上短縮することが出来る。すなわち、電源を投入したのに画面に何も表示されない時間を短縮することが出来る。
【０１０４】
ここで、再生部１２０２ｂは、時刻２２１２から時刻２２１４の間にユーザーからの入力を入力部５１３を通して受け取ることも出来る。この場合、上述の通り、再生部１２０２ｂは、自身で映像と音声の再生を行うと共に、２次記憶部５１０に、再生している映像と音声を含むチャンネルの識別子を記憶する。
【０１０５】
図２３は、Ｊａｖａプログラム「ＺａｐｐｅｒＸｌｅｔ」の構成図の一例である。Ｊａｖａプログラム「ＺａｐｐｅｒＸｌｅｔ」は、４つのサブプログラム、チャンネル記憶サブプログラム２３０１、起動サブプログラム２３０２、チャンネル再生サブプログラム２３０３、入力サブプログラム２３０４で構成される。
【０１０６】
Ｊａｖａプログラム「ＺａｐｐｅｒＸｌｅｔ」は、図２１で示されるディレクトリ「ａ」２１１２に格納されているＪａｖａプログラムであり、２次記憶部５１０に保存され、サービスマネージャ１２０４が起動時に自動的に起動するプログラムである。
【０１０７】
チャンネル記憶サブプログラム２３０１は、Ｊａｖａライブラリ１２０５のＩＯ１２０５ｇを通して、Ｊａｖａプログラム「ＺａｐｐｅｒＸｌｅｔ」が管理するチャンネル識別子を２次記憶部５１０に記憶する。また、記憶したチャンネル識別子を２次記憶部５１０から読み出す。ここで、Ｊａｖａプログラム「ＺａｐｐｅｒＸｌｅｔ」が使用する２次記憶部５１０の領域は、再生部１２０２ｂが使用する領域とは異なる。すなわち、２次記憶部５１０には、再生部１２０２ｂが記憶させるチャンネル識別子と、Ｊａｖａプログラム「ＺａｐｐｅｒＸｌｅｔ」が記憶させるチャンネル識別子の二種類のチャンネル識別子が記憶される。
【０１０８】
起動サブプログラム２３０２は、Ｊａｖａプログラム「ＺａｐｐｅｒＸｌｅｔ」の起動時に最初に実行されるサブプログラムである。まず、起動サブプログラム２３０２は、再生Ｌｉｂ１２０５ｆを呼び出し、現在再生しているチャンネルのチャンネル識別子を取得する。そして、取得したチャンネル識別子をチャンネル再生サブプログラム２３０３に引き渡す。同時に、この値をチャンネル記憶サブプログラム２３０１を通して、２次記憶部５１０に記憶する。ただし、チャンネルの再生が行われておらず、再生Ｌｉｂ１２０５ｆがチャンネルの識別子を返さないとき、チャンネル記憶サブプログラム２３０１を通して、記憶されているチャンネル識別子を２次記憶部５１０から読み出し、チャンネル再生サブプログラム２３０３に引き渡す。更にここで、２次記憶部５１０がチャンネル識別子を記憶していないときは、予め定められた既定のチャンネルの識別子をチャンネル再生サブプログラム２３０３に引き渡す。
【０１０９】
チャンネル再生サブプログラム２３０３は、受け取ったチャンネル識別子をサービスマネージャ１２０４に与え、チャンネル切り替えを行う。
入力サブプログラム２３０４は、Ｊａｖａライブラリ１２０５のＡＷＴ１２０５ｈを通して、入力部５１３からのユーザーが入力したキーの通知を受け取る。具体的には、キーの識別子を受け取る。受け取ったキーの識別子に対応するチャンネル識別子をチャンネル再生サブプログラム２３０３に引き渡す。ここで、キーの識別子とチャンネルの識別子の対応により本発明の実施が限定されることはない。入力部５１３が「０」から「９」の数字キーを備え、ユーザーがチャンネル識別子に相当する数字を入力することとしてもよいし、再生部１２０２ｂの様に上カーソルボタン１１０１、下カーソルボタン１１０２の押下によって、チャンネルを変更しても良い。
【０１１０】
ここで、ＪａｖａプログラムがＡＷＴ１２０５ｈを通して入力部５１３からユーザーのキー入力を受け取る時は、再生部１２０２ｂは、入力部５１３からユーザーのキー入力を受け取れないこととする。
【０１１１】
すると、Ｊａｖａプログラム「ＺａｐｐｅｒＸｌｅｔ」が動作中は、Ｊａｖａプログラム「ＺａｐｐｅｒＸｌｅｔ」がＡＷＴ１２０５ｈを通して入力部５１３からユーザーのキー入力を受け取り、再生部１２０２ｂと同等の機能を発揮することが出来る。また、この時点以降、再生部１２０２ｂは入力部５１３からの入力を受けることができないため実質機能せず、再生部１２０２ｂの動作をプログラム「ＺａｐｐｅｒＸｌｅｔ」が引き継ぐことになる。
【０１１２】
このように、再生Ｌｉｂ１２０５ｆを用意することにより、再生部１２０２ｂがプログラム「ＺａｐｐｅｒＸｌｅｔ」の起動前に再生しているチャンネルの識別子を、Ｊａｖａプログラムが取得することが出来る。これにより、Ｊａｖａプログラムが再生部１２０２ｂの機能を有する際は、再生部１２０２ｂが再生していたチャンネルを継続して再生することが可能となり、ユーザーに混乱を与えることなく、チャンネル変更機能を引き継ぐことが出来る。
【０１１３】
図２４は再生Ｌｉｂ１２０５ｆの効果を示す一例であり、端末装置５００の電源投入時における、再生部１２０２ｂとＪａｖａプログラム「ＺａｐｐｅｒＸｌｅｔ」の起動順序を表した模式図である。この図は、横軸で時間経過を表す。矢印２４０１の左端は再生部１２０２ｂの起動を表し、この起動時以降動作しつづけることを表現している。同様に、矢印２４０２の左端は、Ｊａｖａプログラム「ＺａｐｐｅｒＸｌｅｔ」の起動を表し、この起動時以降動作しつづけることを表現している。２４０５は、各時点において、実際に再生されているチャンネルの識別子を示している。
【０１１４】
２４０５は、端末装置５００が各時刻で再生しているチャンネルの識別子を表す。時刻２４１１から時刻２４１２はチャンネル識別子「３」のチャンネルを再生し、時刻２４１２から時刻２４１４はチャンネル識別子「２」のチャンネルを再生し、時刻２４１４以降はチャンネル識別子「１」のチャンネルを再生していることを表す。
【０１１５】
時刻２４１１は、端末装置５００に電源が投入された後、再生部１２０２ｂが起動した時刻である。ここで、再生部１２０２ｂは、２次記憶部５１０が記憶していたチャンネル識別子「３」のチャンネルを再生したとする。時刻２４１２は、ユーザーが入力部５１３にチャンネル変更指示を入力し、再生部１２０２ｂが再生しているチャンネルをチャンネル識別子「３」のチャンネルからチャンネル識別子「２」のチャンネルに変更したことを示す。時刻２４１３は、Ｊａｖａプログラム「ＺａｐｐｅｒＸｌｅｔ」が起動した時刻である。このとき、Ｊａｖａプログラム「ＺａｐｐｅｒＸｌｅｔ」は、再生Ｌｉｂ１２０５ｆを通して、チャンネル識別子「２」のチャンネルが再生中であることを知り、何もしない。時刻２４１４は、ユーザーが入力部５１３にチャンネル変更指示を入力し、Ｊａｖａプログラム「ＺａｐｐｅｒＸｌｅｔ」が再生しているチャンネルをチャンネル識別子「２」のチャンネルからチャンネル識別子「１」のチャンネルに変更したことを示す。
【０１１６】
ここで、本実施例の効果を比較説明するために、仮に再生Ｌｉｂ１２０５ｆが存在しなかった場合を考える。図２４を参照して、再生プログラム１２０２ｂは、時刻２４１１にチャンネル識別子「３」のチャンネルを再生し、時刻２４１２にユーザーの支持を受け取り、チャンネル識別子「２」のチャンネルを再生する。Ｊａｖａプログラム「ＺａｐｐｅｒＸｌｅｔ」は時刻２４１３で、自身がチャンネル記憶サブプログラム２３０１で２次記憶部５１０に記憶したチャンネルの識別子を読み出し、そのチャンネル識別子のチャンネルの再生を行うであろう。もし、そのチャンネルの識別子が「４」とすると、ユーザーがせっかく選んだチャンネル識別子「２」のチャンネルの再生が突然中断され、チャンネル識別子「４」のチャンネルの再生が始まる。これは、ユーザーを驚かせ、かつ、ユーザーは自分が見たいチャンネル識別子「２」のチャンネルを再び選ぶという手間を必要とする。
【０１１７】
仮に再生Ｌｉｂ１２０５ｆが存在しない、もう１つの例を考える。ここで、Ｊａｖａプログラム「ＺａｐｐｅｒＸｌｅｔ」は起動時にはチャンネル再生を行わないとする。更に、端末装置５００は、Ｊａｖａプログラム「ＺａｐｐｅｒＸｌｅｔ」がチャンネル再生をすることを期待し、再生部１２０２ｂはチャンネルを再生しない、あるいは、再生部１２０２が存在しない端末の場合、電源投入後、どのチャンネルも自動的に再生されない。これは電源投入後、ユーザーは必ずチャンネルを指定する必要があり不便である。また、正常に動作しているか、故障しているかの判断が困難である。このように、再生Ｌｉｂ１２０５ｆを導入することで、Ｊａｖａプログラム「ＺａｐｐｅｒＸｌｅｔ」が行うべき動作の一部を、サービスマネージャ１２０４起動前に、再生部１２０２ｂが行うことで、端末装置５００の起動時にユーザーに対して短時間で、チャンネルに含まれる映像・音声を提示することができる。
【０１１８】
図２５は、再生部１２０２ｂの起動時の動作の一例を表すフローチャートである。
図２５を参照して、再生部１２０２ｂは起動すると、内部の変数「サービスマネージャ起動フラグ」に「ｆａｌｓｅ」をセットする（ステップＳ２５０１）。次に、チャンネル記憶サブプログラムを通して、２次記憶部５１０から、チャンネル識別子を取り出す（ステップＳ２５０２）。変数「サービスマネージャ起動フラグ」の値を参照し（ステップＳ２５０３）、「ｆａｌｓｅ」なら、再生部１２０２ｂは自身で取得したチャンネル識別子のチャンネルの映像・音声の再生を行う（ステップＳ２５０４）。「ｔｒｕｅ」なら、取得したチャンネル識別子をサービスマネージャ１２０４に引渡し、チャンネルの再生を依頼する（ステップＳ２５０５）。
【０１１９】
その後、サービスマネージャ１２０４の起動通知を受けると（ステップＳ２５０６）、内部の変数「サービスマネージャ起動フラグ」に「ｔｒｕｅ」をセットする（ステップＳ２５０７）。あるいは、ユーザーからの入力を受け付けると（ステップＳ２５０８）、入力に対応するチャンネル識別子を取得、あるいは算出し（ステップＳ２５０９）、制御をステップＳ２５０３に移すことにより、再生するチャンネルを変更することを実現する。
【０１２０】
図２６は、Ｊａｖａプログラム「ＺａｐｐｅｒＸｌｅｔ」の動作の一例を表すフローチャートである。
図２６を参照して、Ｊａｖａプログラム「ＺａｐｐｅｒＸｌｅｔ」は、再生Ｌｉｂ１２０５ｆからチャンネルの再生状態を取得する（ステップＳ２６０１）。再生中でない場合（ステップＳ２６０２）、チャンネル記憶サブプログラム２３０１を通して、２次記憶部５１０が記憶するチャンネル識別子を取得する（ステップＳ２６０３）。チャンネル識別子が取得できない場合（ステップＳ２６０４）、予め決められた既定の値をチャンネル識別子とする（ステップＳ２６０５）。そして、チャンネル識別子をサービスマネージャに引渡しチャンネルの再生を依頼する（ステップＳ２６０６）。
【０１２１】
なお、本実施の形態では、再生部１２０２ｂが映像と音声だけを再生していたが、サブタイトル、テレテキストやクローズドキャプションなどの再生を行っても良い。これを実現するには、端末装置５００は、サブタイトル、テレテキストやクローズドキャプションを再生するサブ再生モジュールを備え、再生部１２０２ｂが、それらのサブ再生モジュールに必要な情報を引き渡すことによって実現可能である。
【０１２２】
また、本実施の形態においては、映像・音声の再生において、再生部１２０２ｂがＪａｖａプログラム「ＺａｐｐｅｒＸｌｅｔ」に先駆けて、その一部の機能を実施する例となっているが、他の動作対象に関しても適応可能である。例えば、アニメーションの再生では、端末装置に備わっているサブプログラムが、アニメーションの最初の１枚目だけを表示し、Ｊａｖａプログラムがその後のコマの表示を継続する場合にも適応可能である。この場合、端末装置に備わっているサブプログラムが表示している状態を、Ｊａｖａプログラムに通知するための機構を端末装置に備える。
【０１２３】
また、本実施の形態においては、ＪａｖａプログラムがＡＷＴ１２０５ｈを通して入力部５１３からユーザーのキー入力を受け取る時は、再生部１２０２ｂは、入力部５１３からユーザーのキー入力を受け取れないとしていた。これを実現するため、再生部１２０２ｂの動作を、明示的に停止するための再生部停止ＬｉｂをＪａｖａライブラリ１２０５に加えても良い。Ｊａｖａプログラムは、この再生部停止Ｌｉｂを呼び出すことにより、再生部１２０２ｂの動作を停止し、再生部１２０２ｂによるチャンネルの再生を停止することができる。あるいは、再生部停止Ｌｉｂは、入力部５１３からのユーザーの入力を再生部１２０２ｂへ通知しないようにするとしても同じ効果が得られる。
【０１２４】
この再生部停止Ｌｉｂは、再生部１２０２ｂだけに限らず、ダウンロードされたＪａｖａプログラムが、予め内蔵されているサブプログラムの機能を停止し、その機能をＪａｖａプログラムが持つ機能に置き換えたい場合に、使用できる。具体的には、Ｊａｖａプログラムが停止したい機能を再生部停止Ｌｉｂに指定することにしても良い。
（実施の形態２）
本実施の形態は、第１の実施の形態と比較して、Ｊａｖａプログラム「ＺａｐｐｅｒＸｌｅｔ」の動作が異なる。
【０１２５】
図２７は、本実施の形態におけるＪａｖａプログラム「ＺａｐｐｅｒＸｌｅｔ」の動作の一例を表すフローチャートである。実施の形態１と同じ符号のステップの動作は、実施の形態１と同じであるので、説明を省略する。実施の形態１と異なるのは、ステップＳ２６０２で、再生中の場合（図中のＹＥＳの場合）処理がステップＳ２６０６に移り、その再生中のチャンネルの識別子を、ステップＳ２６０６でサービスマネージャ１２０４に引渡し再生を依頼することである。
【０１２６】
この結果、再生される映像・音声は同じであるが、チャンネル内に定義されているＪａｖａプログラムを実行することが出来る。
また、本実施の形態において、同じチャンネルにも関わらず、Ｊａｖａプログラム「ＺａｐｐｅｒＸｌｅｔ」がステップＳ２６０６でサービスマネージャ１２０４を呼び出すため、一旦、映像・音声の再生を停止し、再び同じ映像・音声を再生することになる。これは映像・音声が一旦途切れることを意味する。これを防ぐため、サービスマネージャ１２０４は、再生Ｌｉｂ１２０５ｆを参照し、再生中のチャンネル識別子と、Ｊａｖａプログラムから受け取ったチャンネル識別子が等しいとき、映像・音声の再生のやり直しを行わないこととしてもよい。これにより映像音声の途切れをなくすことが出来る。あるいは、サービスマネージャ１２０４ではなく、ＪＭＦ１２０５ａが、再生Ｌｉｂ１２０５ｆを参照し、再生中のチャンネル識別子と、サービスマネージャ１２０４から受け取ったチャンネル識別子が等しいとき、映像・音声の再生のやり直しを行わないこととしても同じ効果が得られる。つまり、サービスマネージャ１２０４がチャンネル識別子を受け取った際、映像・音声の再生を行うために必要なサブプログラムで、再生Ｌｉｂ１２０５ｆを参照し、再生中のチャンネル識別子と、サービスマネージャ１２０４が受け取ったチャンネル識別子が等しいとき、映像・音声の再生のやり直しを行わないこととしても同じ効果が得られる。
（実施の形態３）
実施の形態１においては、サービスマネージャ１２０４がチャンネル識別子を受け取れる状態になるまでの処理と、受け取れる状態になったあとの処理の分岐を再生部１２０２ｂが行っていた。
【０１２７】
これを、チャンネル識別子受付部を設けることにより吸収する。
図２８は、本実施の形態におけるＣＰＵ５１４が実行するプログラム２８００の構成図である。
【０１２８】
プログラム２８００は、複数のサブプログラムで構成され、具体的にはＯＳ１２０１、ＥＰＧ２８０２、ＪａｖａＶＭ１２０３、サービスマネージャ２８０４、Ｊａｖａライブラリ１２０５、チャンネル識別子受付部２８０６で構成される。
【０１２９】
以降、実施の形態１と同じ符号の構成要素は同じ役割を果たすので、説明を省略する。
ＥＰＧ２８０２は、ユーザーに番組一覧を表示及び、ユーザーからの入力を受け付ける番組表示部１２０２ａと、チャンネル選局を行う再生部２８０２ｂで構成される。再生部２８０２ｂは、チャンネルを再生する際、チャンネル識別子受付部２８０６にチャンネル識別子を引き渡し、チャンネルの再生を依頼する。再生部２８０２ｂではサービスマネージャ２８０４の状態を考慮した動作は行わないし、自身でＰＡＴ、ＰＭＴを更新し映像・音声を再生することはしない。
【０１３０】
サービスマネージャ２８０４と実施の形態１におけるサービスマネージャ１２０４の違いは、チャンネル識別子を再生部１２０２ｂからでなく、チャンネル識別子受付部２８０６から受け取ることである。他の動作は同じである。
【０１３１】
チャンネル識別子受付部２８０６は、再生部２８０２ｂからチャンネル識別子を受け取る。
サービスマネージャ２８０４がチャンネル識別子を受け取れない状態の間は、チャンネル識別子受付部２８０６は、Ｔｕｎｅｒ１２０５ｃ、ＣＡ１２０５ｄ及びＪＭＦ１２０５ｃと同様の機能を備える。
【０１３２】
チャンネル識別子受付部２８０６は、２次記憶部５１０が記憶するチャンネル情報を参照し、与えられたチャンネル識別子に対応するチューニング情報を獲得する。今、チャンネルの識別子「２」のチャンネルを再生したいとすると、図１４の行１４１２を参照して、対応するチューニング情報「１５６ＭＨｚ，」を獲得する。チャンネル識別子受付部２８０６は、ＯＳ１２０１のライブラリ１２０１ｂのチューナ１２０１ｂ１を通して、ＱＡＭ復調部５０１にチューニング情報を引き渡す。ＱＡＭ復調部５０１は与えられたチューニング情報に従ってヘッドエンド１０１から送信されてきた信号を復調し、ＰＯＤ５０４に引き渡す。
【０１３３】
次にチャンネル識別子受付部２８０６は、ＯＳ１２０１のライブラリ１２０１ｂの限定受信１２０１ｂ２を通して復号に必要な情報をＰＯＤ５０４に与える。ＰＯＤ５０４は、与えられた情報を元に、ＱＡＭ復調部５０１から与えられた信号を復号しＴＳデコーダ５０５に引き渡す。
【０１３４】
最後にチャンネル識別子受付部２８０６は、ＪＭＦ１２０５ａ同様、ＴＳデコーダ５０５を使用してＰＡＴ、ＰＭＴ情報を取得し、再生すべき音声と映像のパケットＩＤを獲得する。ＯＳ１２０１のライブラリ１２０１ｂのＡＶ再生１２０１ｂ３に獲得した音声のパケットＩＤと映像のパケットＩＤを引き渡す。これを受けて、ＡＶ再生１２０１ｂ３は、受け取った音声のパケットＩＤと出力先としてオーディオデコーダ５０６の組と、受け取った映像のパケットＩＤと出力先としてビデオデコーダ５０８の組を、ＴＳデコーダ５０５に与える。ＴＳデコーダ５０５は与えられたパケットＩＤと出力先に基づいて、フィルタリングを行う。オーディオデコーダ５０６は、ＴＳデコーダ５０５から与えられたパケットのデジタル−アナログ変換を行いスピーカ５０７を通して音声を再生する。また、ビデオデコーダ５０８は、ＴＳデコーダ５０５から与えられたパケットのデジタル−アナログ変換を行いディスプレイ５０９に映像を表示する。
【０１３５】
チャンネル識別子受付部２８０６は、サービスマネージャ２８０４がチャンネル識別子を受け付けることが出来るようになった後は、通常通りチャンネルの識別子をサービスマネージャ２８０４に引き渡す。チャンネル識別子受付部２８０６は、サービスマネージャ２８０４が、チャンネルの識別子を受け取ることが出来る時刻を、サービスマネージャ２８０４からの通知により知ることができる。具体的には、チャンネル識別子受付部２８０６内に用意された関数をサービスマネージャ２８０４が呼び出す。あるいは、チャンネル識別子受付部２８０６はコールバック関数をサービスマネージャ２８０４に登録し、サービスマネージャ２８０４が登録されたコールバック関数を呼び出してもよい。あるいは、サービスマネージャ２８０４は、ＪａｖａＶＭ１２０３に通知し、ＪａｖａＶＭ１２０３がチャンネル識別子受付部２８０６に通知する等、間接的に通知しても良い。つまり、様々な方法で、チャンネル識別子受付部２８０６は、サービスマネージャ２８０４が、チャンネルの識別子を受け取ることが出来る時刻を知ることは可能である。チャンネル識別子受付部２８０６が、サービスマネージャ２８０４の状態に応じた動作をすることで、再生部２８０２ｂは、ユーザーからの入力を入力部５１３から受け付けた際、常に同一の動作を行えばよいので、再生部２８０２ｂは、実施の形態１の再生部１２０２ｂより少ない実行コード量、少ない工数で実現できる。
【０１３６】
また、チャンネル識別子受付部２８０６は、最後に受け付けたチャンネル識別子を２次記憶手段５１０に保存する。そして、サービスマネージャ２８０４が、チャンネル識別子を受付可能になった時、２次記憶手段５１０に記憶しているチャンネル識別子をサービスマネージャ２８０４に引渡し、チャンネルの再生を依頼する。この結果、実施の形態２におけるＪａｖａプログラム「ＺａｐｐｅｒＸｌｅｔ」のようなＪａｖａプログラムが無くても、チャンネル内のＪａｖａプログラムを起動することが出来る。
【０１３７】
なお、実施の形態１と同様、サービスマネージャ２８０４がチャンネル識別子を受付可能になったことを、チャンネル識別子受付部２８０６が知る手段によって、本発明の実施が制限されることは無い。実施の形態１で記載した様々な方法で、サービスマネージャ２８０４がチャンネル識別子を受付可能になったことを知ることが出来る。
【０１３８】
図２９は、チャンネル識別子受付部２８０６の動作の一例を表すフローチャートである。
図２９を参照して、チャンネル識別子受付部２８０６は起動すると、内部の変数「サービスマネージャ起動フラグ」に「ｆａｌｓｅ」をセットする（ステップＳ２９０１）。チャンネル識別子受付部２８０６は、チャンネル識別子を受け取ると（ステップＳ２９０２）、変数「サービスマネージャ起動フラグ」の値を参照する（ステップＳ２９０３）。「ｆａｌｓｅ」なら、チャンネル識別子受付部２８０６は自身で取得したチャンネル識別子のチャンネルの映像・音声の再生を行い（ステップＳ２９０４）、受け付けたチャンネル識別子を２次記憶部５１０に記憶する（ステップＳ２９０５）。「ｔｒｕｅ」なら、受け付けたチャンネル識別子をサービスマネージャ２８０４に引渡し、チャンネルの再生を依頼する（ステップＳ２９０６）。
【０１３９】
その後、サービスマネージャ２８０４の起動通知を受けると（ステップＳ２９０７）、内部の変数「サービスマネージャ起動フラグ」に「ｔｒｕｅ」をセットする（ステップＳ２９０８）。さらに、最後に２次記憶部５１０に記憶したチャンネル識別子をサービスマネージャ２８０４に引渡し、チャンネルの再生を依頼する（ステップＳ２９０９）。
【０１４０】
なお、実施の形態１、２，３を通して、以下の応用が可能である。
ＲＯＭ５１２が保存する内容を２次記憶部５１０が保存することで、ＲＯＭ５１２を削除することが実施可能である。また、２次記憶部５１０は、複数のサブ２次記憶部で構成し、個々のサブ２次記憶部が異なる情報を保存しても実施可能である。例えば、１つのサブ２次記憶部はチューニング情報のみを保存し、別のサブ２次記憶部は、ＯＳ１２０１のライブラリ１２０１ｂを保存し、更に別のサブ２次記憶部は、ダウンロードしたＪａｖａプログラムを保存するなど、詳細に分割することが可能である。
【０１４１】
本発明は、パーソナルコンピュータや携帯電話などの情報機器であれば、適応可能である。
また、衛星や地上波による配信でも実施可能である。この場合、ＱＡＭ復調部５０１は適切な復調部に置き換えられ、ＴＳデコーダに直結する構成が一般的である。この場合、ＱＰＳＫ復調部５０２、ＱＰＳＫ変調部５０３、ＰＯＤ５０４、は不要となる。ヘッドエンドへの通信の系は、モデムなどを構成要素を追加することで実現できる。
【０１４２】
また、ＰＯＤ５０４は着脱可能な形態としているが、内蔵していても実施可能である。なお、内蔵した場合、ＰＯＤ５０４のＣＰＵ７０６を取り外し、ＣＰＵ５１４がＣＰＵ７０６の動作も行うことも実施可能である。
【０１４３】
ＰＯＤ  Ｌｉｂ１２０５ｅに登録されるＪａｖａプログラムは、ダウンロードされたＪａｖａプログラムだけでなく、予め内蔵されているＪａｖａプログラムでも実施可能である。また、ＳＤメモリーカードなどの着脱可能な記憶媒体を着脱するとスロット部を取り付け、そこからＪａｖａプログラムを取り込むことも可能である。また、ネットワークに接続するネットワーク部を取り付け、インターネットからＪａｖａプログラムを取り出すことも可能である。
【産業上の利用可能性】
【０１４４】
本発明は、プログラムを実行する装置等として、特に、通信路等を介してプログラムをダウンロードして実行するプログラム実行装置等として、例えば、デジタルＴＶ受信機等として利用することができる。
【図面の簡単な説明】
【０１４５】
【図１】本発明に係るケーブルテレビシステムの実施の形態１の構成図である。
【図２】本発明に係るケーブルテレビシステムにおいてヘッドエンドと端末装置間の通信に使用される周波数帯域の使い方の一例である。
【図３】本発明に係るケーブルテレビシステムにおいてヘッドエンドと端末装置間の通信に使用される周波数帯域の使い方の一例である。
【図４】本発明に係るケーブルテレビシステムにおいてヘッドエンドと端末装置間の通信に使用される周波数帯域の使い方の一例である。
【図５】本発明に係るケーブルテレビシステムにおいて端末装置の構成図である。
【図６】本発明に係るケーブルテレビシステムにおいて端末装置の外観の知例である。
【図７】本発明に係るＰＯＤ５０４のハードウエア構成の構成図である。
【図８】本発明に係るＰＯＤ５０４が保存するプログラム構成の構成図である。
【図９】ＭＰＥＧ規格で定義されているパケットの構成図である。
【図１０】ＭＰＥＧ２トランスポートストリームの一例である。
【図１１】入力部５１３をフロントパネルで構成した場合の外観の一例である。
【図１２】本発明に係る端末装置５００が保存するプログラム構成の構成図である。
【図１３】（１）は、本発明に係るディスプレイ５０９の表示の一例であり、（２）は、本発明に係るディスプレイ５０９の表示の一例である。
【図１４】本発明に係る２次記憶部５１０が保存する情報の一例である。
【図１５】本発明に係る２次記憶部５１０が保存する情報の一例である。
【図１６】本発明に係るＭＰＥＧ２規格が規定するＰＡＴの内容を表す模式図である。
【図１７】本発明に係るＭＰＥＧ２規格が規定するＰＭＴの内容を表す模式図である。
【図１８】本発明に係るＤＶＢ−ＭＨＰ規格が規定するＡＩＴの内容を表す模式図である。
【図１９】本発明に係るＤＳＭＣＣ方式で送信されるファイルシステムを表す模式図である。
【図２０】本発明に係るＸＡＩＴの内容を表す模式図である。
【図２１】本発明に係る２次記憶部５１０が保存する情報の一例である。
【図２２】本発明に係る複数のサブプログラムの起動順序を一例を表す模式図である。
【図２３】本発明に係るＪａｖａプログラムの構成の一例である。
【図２４】本発明に係る再生部１２０２ｂとＪａｖａプログラムの起動順序を一例を表す模式図である。
【図２５】本発明に係る再生部１２０２ｂの動作の一例を表すフローチャートである。
【図２６】本発明に係るＪａｖａプログラムの動作の一例を表すフローチャートである。
【図２７】本発明に係るＪａｖａプログラムの動作の一例を表すフローチャートである。
【図２８】本発明に係る端末装置２８００が保存するプログラム構成の構成図である。
【図２９】本発明に係るチャンネル識別子受付部２８０６の動作の一例を表すフローチャートである。
【図３０】従来のデジタルテレビの構成図である。
【符号の説明】
【０１４６】
１２００  プログラム
１２０１  ＯＳ
１２０１ａ  カーネル
１２０１ｂ  ライブラリ
１２０２  ＥＰＧ
１２０２ａ  再生部
１２０２ｂ  番組表示部
１２０３  ＪａｖａＶＭ
１２０４  サービスマネージャ
１２０５  Ｊａｖａライブラリ
１２０５ａ  ＪＭＦ
１２０５ｂ  ＡＭ
１２０５ｃ  Ｔｕｎｅｒ
１２０５ｄ  ＣＡ
１２０５ｅ  ＰＯＤ  Ｌｉｂ
１２０５ｆ  再生Ｌｉｂ
１２０５ｇ  ＩＯ
１２０５ｈ  ＡＷＴ
【図１】
2005056416.tif 000003
【図２】
2005056416.tif 000004
【図３】
2005056416.tif 000005
【図４】
2005056416.tif 000006
【図５】
2005056416.tif 000007
【図６】
2005056416.tif 000008
【図７】
2005056416.tif 000009
【図８】
2005056416.tif 000010
【図９】
2005056416.tif 000011
【図１０】
2005056416.tif 000012
【図１１】
2005056416.tif 000013
【図１２】
2005056416.tif 000014
【図１３】
2005056416.tif 000015
【図１４】
2005056416.tif 000016
【図１５】
2005056416.tif 000017
【図１６】
2005056416.tif 000018
【図１７】
2005056416.tif 000019
【図１８】
2005056416.tif 000020
【図１９】
2005056416.tif 000021
【図２０】
2005056416.tif 000022
【図２１】
2005056416.tif 000023
【図２２】
2005056416.tif 000024
【図２３】
2005056416.tif 000025
【図２４】
2005056416.tif 000026
【図２５】
2005056416.tif 000027
【図２６】
2005056416.tif 000028
【図２７】
2005056416.tif 000029
【図２８】
2005056416.tif 000030
【図２９】
2005056416.tif 000031
【図３０】
2005056416.tif 000032