JP4243571B2 - 放送受信装置 - Google Patents

放送受信装置 Download PDF

Info

Publication number
JP4243571B2
JP4243571B2 JP2004223194A JP2004223194A JP4243571B2 JP 4243571 B2 JP4243571 B2 JP 4243571B2 JP 2004223194 A JP2004223194 A JP 2004223194A JP 2004223194 A JP2004223194 A JP 2004223194A JP 4243571 B2 JP4243571 B2 JP 4243571B2
Authority
JP
Japan
Prior art keywords
channel
program
virtual machine
reproduction
unit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2004223194A
Other languages
English (en)
Other versions
JP2005056416A5 (ja
JP2005056416A (ja
Inventor
隆一 塩見
茂晃 渡邉
芳典 今西
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Panasonic Corp
Panasonic Holdings Corp
Original Assignee
Panasonic Corp
Matsushita Electric Industrial Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Panasonic Corp, Matsushita Electric Industrial Co Ltd filed Critical Panasonic Corp
Publication of JP2005056416A publication Critical patent/JP2005056416A/ja
Publication of JP2005056416A5 publication Critical patent/JP2005056416A5/ja
Application granted granted Critical
Publication of JP4243571B2 publication Critical patent/JP4243571B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating

Description

本発明は、プログラムをダウンロードして実行する放送受信装置に関する。特に、既存のプログラムが実行していた機能をダウンロードしたプログラムが引き継いで実行することに関する。
現在、Java(登録商標)プログラムは様々な情報機器上で実行されている。デジタルTV、パーソナルコンピュータ上や携帯電話などにJavaVMと呼ばれるJavaプログラムを実行する仮想マシンが搭載され、Javaプログラムを実行している。
従来のデジタルテレビにおけるJavaプログラムを実行する機能は、特許文献1に記載されている。図30は、デジタルTV受信機を通して読み込まれたアプリケーションを管理するために、アプリケーションマネージャが実装されたJavaプログラムを実行する従来のデジタルテレビの構成図の一例である。デジタルTV受信機3002は、放送データストリーム3021を信号モニタ3013で受信する。信号モニタ3013は放送データストリーム3021中のJavaプログラムであるアプリケーションの有無を、信号データ3022を通してアプリケーションマネージャ3012に通知する。アプリケーションマネージャ3012は、信号データ3022を用いてアプリケーションを読み込み実行する。アプリケーションが実行されると、ディスプレイ情報がディスプレイコンテキスト3023の形でディスプレイマネージャ3011から提供される。また、ディスプレイマネージャ3011は適切なディスプレイ情報をテレビモニタ3001に提供する。
アプリケーションマネージャ3012は、ルール3014に従って動作し、アプリケーションの状態をロード状態、一時停止状態、アクティブ状態、抹消状態に遷移させる。ルールは、例えば、「1度に1つのアプリケーションのみをアクティブにする」「1度に1つのアプリケーションだけが表示できる」等である。
特表2003−504753号公報
しかしながら、従来の技術においては、Javaプログラムを実行して、その機能を実際にユーザに提供できるまでに時間を要するという課題がある。これには,いくつかの要因がある。まず、Javaプログラムを実行するためには、それに先んじてJavaVMを起動しておく必要があるが、一般にJavaVMの起動には時間を要する点が挙げられる。また、Javaプログラムをダウンロード完了するまでの待ち時間も必要である。デジタルTVや情報機器などがJavaプログラムの起動を決定してから実際に起動完了するまでには、これらの処理時間や待ち時間が含まれるため時間を要する。特にJavaプログラムが電源投入時に自動的にダウンロードされて実行されるような情報機器においては、電源を投入後、しばらくの間、何も表示されない時間が続き、ユーザーに不安を与えるという問題が発生する。とくに、CPU処理速度があまり高速でないデジタルTVなどの情報家電では、この現象が顕著である。
本発明は、Javaプログラムが本来行うべき機能の一部を組み込みプログラムで実現してJavaプログラムの起動処理中に実行することにより見かけ上の起動時間を短縮し、さらに、Javaプログラムの起動が完了した時点でJavaプログラムがそれまでの組み込みプログラムの動作状況を矛盾なく、引き継いで動作するための組み込みプログラムとJavaプログラムの連絡手段を提供することを目的とする。
前記従来の課題を解決するために、放送を受信する受信手段と、前記受信手段が受信した放送に含まれるチャンネルを再生する第1の仮想マシン用プログラムを実行する仮想マシンと、入力を受け付ける入力手段と、前記仮想マシン用プログラムの実行に先立ち、前記受信手段が受信した放送に含まれるチャンネルを再生するチャンネル再生手段と、前記入力手段からの指示に基づき、再生すべきチャンネルのチャンネル識別子に基づいて前記チャンネル再生手段に前記再生すべきチャンネルの再生を指示する組み込みプログラムであって前記第1の仮想マシン用プログラムのサブセットの機能を含むように構成された再生プログラムと、前記再生プログラムと前記仮想マシンを実行する実行手段と、前記再生プログラムが最後に指示したチャンネルのチャンネル識別子を前記第1の仮想マシン用プログラムに提供する情報提供手段とを備え、前記実行手段により実行される仮想マシンが前記第1の仮想マシン用プログラムを起動する前においては、前記再生プログラム前記再生すべきチャンネルのチャンネル識別子に基づいて前記チャンネル再生手段に前記再生すべきチャンネルの再生を指示し、前記情報提供手段は、前記再生プログラムから前記第1の仮想マシン用プログラムに提供される前記チャンネル識別子を一時的に記憶する記憶部を有し、前記チャンネル識別子前記仮想マシンが前記第1の仮想マシン用プログラムを起動後に前記記憶部を介して前記第1の仮想マシン用プログラムに提供するように構成した
本発明によれば、前記従来の課題を解決するために、放送を受信する受信手段と、前記受信手段が受信した放送に含まれるチャンネルを再生する第1の仮想マシン用プログラムを実行する仮想マシンと、入力を受け付ける入力手段と、前記仮想マシン用プログラムの実行に先立ち、前記受信手段が受信した放送に含まれるチャンネルを再生するチャンネル再生手段と、前記入力手段からの指示に基づき、再生すべきチャンネルのチャンネル識別子に基づいて前記チャンネル再生手段に前記再生すべきチャンネルの再生を指示する組み込みプログラムであって前記第1の仮想マシン用プログラムのサブセットの機能を含むように構成された再生プログラムと、前記再生プログラムと前記仮想マシンを実行する実行手段と、前記再生プログラムが最後に指示したチャンネルのチャンネル識別子を前記第1の仮想マシン用プログラムに提供する情報提供手段とを備え、前記実行手段により実行される仮想マシンが前記第1の仮想マシン用プログラムを起動する前においては、前記再生プログラム前記再生すべきチャンネルのチャンネル識別子に基づいて前記チャンネル再生手段に前記再生すべきチャンネルの再生を指示し、前記情報提供手段は、前記再生プログラムから前記第1の仮想マシン用プログラムに提供される前記チャンネル識別子を一時的に記憶する記憶部を有し、前記チャンネル識別子前記仮想マシンが前記第1の仮想マシン用プログラムを起動後に前記記憶部を介して前記第1の仮想マシン用プログラムに提供するように構成したので、第1の仮想マシン用プログラムが起動する前に、その一部の機能を組み込みプログラムが実行し、その機能を第1の仮想マシン用プログラムが継承することができるので、本来第1の仮想マシン用プログラムが提供する機能の一部を短時間にユーザーに提供することが出来る。
また、前記放送受信装置は更に、前記情報提供手段は、前記仮想マシン用プログラムが前記情報提供手段を使用するまでに、前記組み込みプログラムが動作したことにより引き起こされた情報を前記仮想マシン用プログラムに提供することにより、組み込みプログラムが引き起こした状況を仮想マシン用プログラムが引き継ぐことが出来る。
また、前記放送受信装置は更に、前記情報提供手段は、前記仮想マシン用プログラムが起動する前までに、前記組み込みプログラムが動作したことにより引き起こされた情報を前記仮想マシン用プログラムに提供することすることにより、組み込みプログラムが引き起こした状況を仮想マシン用プログラムが引き継ぐことが出来る。
また、前記放送受信装置は更に、前記情報提供手段は、前記組み込みプログラムが停止する前までに、前記組み込みプログラムが動作したことにより引き起こされた情報を前記仮想マシン用プログラムに提供することとすることにより、組み込みプログラムが引き起こした状況を仮想マシン用プログラムが引き継ぐことが出来る。
また、前記放送受信装置は更に、前記仮想マシン用プログラムが前記組み込みプログラムの停止を指示するための組み込みプログラム停止指示手段を備えることにより、仮想マシン用プログラムが明示的に組み込みプログラムを停止することが出来るので、同じまたは類似の機能を持つ仮想マシン用プログラムと組み込みプログラムが平行して動作しユーザーを混乱させることを防ぐことが出来る。
また、Javaプログラムを実行するJavaVMと、入力を受け付ける入力手段と、放送を受信する受信手段と、前記受信手段が受信した放送に含まれるチャンネルを再生するチャンネル再生手段と、前記入力手段からの指示に基づき、再生すべきチャンネルを前記チャンネル再生手段に指示する再生プログラムと、前記再生プログラムと前記JavaVMを実行する実行手段と、前記再生プログラムが最後に指示したチャンネルを前記Javaプログラムに提供する情報提供手段とを備えることにより、Javaプログラムが起動する前に、再生されているチャンネルをJavaプログラムが継承することができるので、本来Javaプログラムが行うチャンネルの再生を短時間にユーザーに提供することが出来る。
また、前記放送受信装置は更に、前記仮想マシン用プログラムを記憶する第1記憶手段と、前記再生プログラムを記憶する第2記憶手段と備えることにより、記憶した仮想マシン用プログラム及び再生プログラムを何度も実行することができる。あるいは、入れ替えることが出来る。
また、前記放送受信装置は更に、前記チャンネル再生手段は、チャンネルに含まれる映像と音声を再生することにより、ユーザーに映像と音声の再生を提供することができる。
また、前記チャンネルには、第2の仮想マシン用プログラムが含まれ、前記放送受信装置は更に、前記再生すべきチャンネルのチャンネル識別子に基づく映像、音声の再生を前記チャンネル再生手段に指示し、および前記チャンネル識別子に基づく前記第2の仮想マシン用プログラムの起動を前記仮想マシンに指示するサービス再生手段を備えることにより、ユーザーに再生すべきチャンネルに含まれる映像と音声の再生と再生すべきチャンネルに含まれる仮想マシン用プログラムの実行による出力を提供することができる。
また、前記サービス再生手段は、少なくとも、その一部を仮想マシンによって実行され、前記仮想マシンが前記第1の仮想マシン用プログラムを起動した後は、前記サービス再生手段が、前記第1の仮想マシン用プログラムから、前記再生すべきチャンネルのチャンネル識別子を受け付けることができるように構成するとともに、前記仮想マシンが前記第1の仮想マシン用プログラムを起動した後は、前記再生プログラムが、前記入力手段からの指示を受け取ることができないように構成したことにより、第1の仮想マシン用プログラムからチャンネルの再生の指示を行うことが出来る。
また、前記サービス再生手段が再生すべきチャンネルのチャンネル識別子受け付けを開始するまでは、前記再生プログラムが、再生すべきチャンネルのチャンネル識別子に基づいて前記チャンネル再生手段に前記再生すべきチャンネルの再生を指示するように構成したことにより、仮想マシンが起動する前でサービス再生手段が使用できないときにも、映像と音声の再生を行うことが出来る。
また、前記放送受信装置は更に、前記サービス再生手段が再生すべきチャンネルのチャンネル識別子の受け付けを開始したことを前記再生プログラムに通知するサービス受付開始通知手段を備え、前記サービス受付開始通知手段が再生プログラムへ前記通知を行った後、前記再生プログラムは、再生すべきチャンネルのチャンネル識別子を前記サービス再生手段に与えるように構成したことにより、サービス再生手段は、第2の仮想マシン用プログラムを含むチャンネルの再生を開始することが出来る。
また、コンピュータ読み取り可能な記録媒体であって、上記放送受信装置が備える手段としてコンピュータに機能させるプログラムが記録されていることを特徴とする記録媒体とすることにより可搬性を高めることが出来る。
(実施の形態1)
本発明に係るケーブルテレビシステムの実施の形態を、図面を参照しながら説明する。図1は、ケーブルシステムを構成する装置の関係を表したブロック図であり、ヘッドエンド101及び3個の端末装置A111、端末装置B112、端末装置C113で構成される。本実施の形態では、1つのヘッドエンドに対して3つの端末装置が結合されているが、任意の数の端末装置をヘッドエンドに結合しても、本発明は実施可能である。
ヘッドエンド101は、複数の端末装置に対して映像・音声・データ等の放送信号を送信するとともに、端末装置からのデータ送信を受信する。これを実現するため、ヘッドエンド101と端末装置A111、端末装置B112、端末装置C113間の伝送に用いられる周波数帯域は、分割して用いられる。図2は、周波数帯域の分割の一例を示す表である。周波数帯域は、Out Of Band(略称OOB)とIn−Bandの2種類に大別される。5〜130MHzがOOBに割り当てられ、主にヘッドエンド101と端末装置A111、端末装置B112、端末装置C113間のデータのやり取りに使用される。130MHz〜864MHzはIn−Bandに割り当てられ、主として、映像・音声を含む放送チャンネルに使用される。OOBではQPSK変調方式が、In−BandはQAM64変調方式が使用される。変調方式技術については、本発明に関与が薄い公知技術であるので、詳細な説明は省略する。図3は、OOB周波数帯域の更に詳細な使用の一例である。70MHz〜74MHzはヘッドエンド101からのデータ送信に使用され、全ての端末装置A111、端末装置B112、端末装置C113が、ヘッドエンド101から同じデータを受け取ることになる。一方、10.0MHz〜10.1MHzは端末装置A111からヘッドエンド101へのデータ送信に使用され、10.1MHz〜10.2MHzは端末装置B112からヘッドエンド101へのデータ送信に使用され、10.2MHz〜10.3MHzは端末装置C113からヘッドエンド101へのデータ送信に使用される。これにより、各端末装置固有のデータを各端末装置A111、端末装置B112、端末装置C113からヘッドエンド101に送信することができる。図4は、In−Bandの周波数帯に対する使用の一例である。150〜156MHzと156〜162MHzはそれぞれテレビチャンネル1とテレビチャンネル2に割り当てられ、以降、6MHz間隔でテレビチャンネルが割り当てられている。310MHz以降は、1MHz単位でラジオチャンネルに割り当てられている。これらの各チャンネルはアナログ放送として使用してもデジタル放送として使用してもよい。デジタル放送の場合は、MPEG2仕様に基づいたトランスポートパケット形式で伝送され、音声や映像に加え、各種データ放送用データも送信することができる。
ヘッドエンド101は、これらの周波数帯域に適切な放送信号を送信するため、QPSK変調部やQAM変調部等を有する。また、端末装置からのデータを受信するため、QPSK復調器を有する。また、ヘッドエンド101は、これら変調部及び復調部に関連する様々な機器を有すると考えられる。しかし、本発明は主として端末装置に関わるので、詳細な説明は省略する。
端末装置A111、端末装置B112、端末装置C113は、ヘッドエンド101からの放送信号を受信し再生する。また、ヘッドエンド101に対して、各端末装置固有のデータを送信する。3つの、端末装置は本実施の形態では同じ構成を取る。
図5は、端末装置のハードウエア構成を表すブロック図である。500は端末装置であり、QAM復調部501、QPSK復調部502、QPSK変調部503、TSデコーダ505、オーディオデコーダ506、スピーカ507、ビデオデコーダ508、ディスプレイ509、2次記憶部510、1次記憶部511、ROM512、入力部513、CPU514で構成される。また端末装置500には、POD504が着脱できる。
図6は、端末装置500の外観の一例である薄型テレビである。
601は、薄型テレビの筐体であり、POD504を除く、端末装置500の構成要素をすべてを内蔵している。
602はディスプレイであり、図5におけるディスプレイ509に相当する。
603は複数のボタンで構成されるフロントパネル部であり、図5の入力部513に相当する。
604は信号入力端子であり、ヘッドエンド101との信号の送受信を行うためにケーブル線を接続する。信号入力端子は、図5のQAM復調部501、QPSK復調部502、QPSK変調部503と接続されている。
605は、図5のPOD504に相当するPODカードである。POD504は、図6のPODカード605のように、端末装置500とは独立した形態を取り、端末装置500に着脱可能となっている。POD504の詳細は後述する。
606はPODカード605を挿入する挿入スロットである。
図5を参照して、QAM復調部501は、CPU514から指定された周波数を含むチューニング情報で、ヘッドエンド101でQAM変調され送信されてきた信号を復調し、POD504に引き渡す。
QPSK復調部502は、CPU514から指定された周波数を含むチューニング情報で、ヘッドエンド101でQPSK変調され送信されてきた信号を復調し、POD504に引き渡す。
QPSK変調部503は、CPU514から指定された周波数を含む変調情報で、POD504から渡された信号をQPSK変調し、ヘッドエンド101に送信する。
POD504は、図6のように端末装置本体500から着脱可能な形態をしている。端末本体500とPOD504の接続インターフェースは、OpenCable(TM) HOST−POD Interface Specification(OC−SP−HOSTPOD−IF−I12−030210)及び、この仕様書から参照されている仕様書で定義されている。ここでは、詳細は省略し、本発明に関する部分のみを解説する。
図7は、POD504の内部構成を表すブロック図である。POD504は、第1デスクランブラ部701、第2デスクランブラ部702、スクランブラ部703、第1記憶部704、第2記憶部705、CPU706で構成される。
第1デスクランブラ部701は、CPU706からの指示により、端末装置500のQAM復調部501から暗号化された信号を受け取り、復号を行う。そして、復号された信号を端末装置500のTSデコーダ505に送る。デコードに必要な鍵などの情報はCPU706から適宜与えられる。具体的には、ヘッドエンド101はいくつかの有料チャンネルを放送している。ユーザーが、この有料チャンネルを購買すると、第1デスクランブラ部701は、CPU706から鍵等の必要な情報を受け取りデスクランブルすることで、ユーザーは有料チャンネルを閲覧することができる。鍵などの必要な情報が与えられない場合は、第1デスクランブラ部701は、デスクランブルを行わず、受け取った信号をそのまま、TSデコーダ505に送る。
第2デスクランブラ部702は、CPU706からの指示により、端末装置500のQPSK復調部502から暗号化された信号を受け取り、復号を行う。そして、復号されたデータをCPU706に引き渡す。
スクランブラ部703は、CPU706からの指示により、CPU706から受け取ったデータを暗号化し、端末装置500のQPSK変調部503に送る。
第1記憶部704は、具体的にはRAM等の一次記憶メモリーで構成され、CPU706が処理を行う際、一時的にデータを保存するために使用される。
第2記憶部705は、具体的にはフラッシュROM等の2次記憶メモリーで構成され、CPU706が実行するプログラムを格納し、また、電源OFFになっても消去されては困るデータの保存に使用される。
CPU706は、第2記憶部705が記憶するプログラムを実行する。プログラムは複数のサブプログラムで構成される。図8は、第2記憶部705が記憶するプログラムの一例である。図8では、プログラム800は、メインプログラム801、初期化サブプログラム802、ネットワークサブプログラム803、再生サブプログラム804、PPVサブプログラム805等複数のサブプログラムで構成されている。
ここでPPVとはPay Per Viewの略であり、映画など特定の番組を有料で視聴できるようにするサービスである。ユーザーが暗証番号を入力すると、購入したことがヘッドエンド101に通知され、スクランブルが解除され、視聴することが出来る。この視聴により、ユーザーは後日、購入代金を支払うものである。
メインプログラム801は、CPU706が電源投入時に最初に起動するサブプログラムであり、他のサブプログラムの制御を行う。
初期化サブプログラム802は、電源投入時にメインプログラム801によって起動され、端末装置500との情報交換等を行い、初期化処理を行う。初期化処理の詳細は、OpenCable(TM) HOST−POD Interface Specification(OC−SP−HOSTPOD−IF−I12−030210)及び、この仕様書から参照されている仕様書で定義されている。また、仕様書に定義されていない初期化処理も行う。ここでは、その一部を紹介する。電源が投入されると、初期化サブプログラム802は、第2記憶部705が記憶する第1の周波数を端末装置500のCPU514を通して、QPSK復調部502に通知する。QPSK復調部502は、与えられた第1の周波数でチューニングを行い、信号を第2デスクランブラ部702に送る。また、初期化サブプログラム802は、第2記憶部705が記憶する第1の鍵等の復号情報を第2デスクランブラ部702に与える。その結果、第2デスクランブラ部702は、デスクランブルを行い、初期化サブプログラム802を実行するCPU706に引き渡す。よって、初期化サブプログラム802は情報を受け取ることができる。本実施の形態では、初期化サブプログラム802はネットワークサブプログラム803を通して情報を受け取ることとする。詳細は後述する。
また、初期化サブプログラム802は、第2記憶部705が記憶する第2の周波数を端末装置500のCPU514を通して、QPSK変調部503に通知する。初期化サブプログラム802は第2記憶部705が記憶する暗号化情報をスクランブラ部703に与える。初期化サブプログラム802が送信したい情報を、ネットワークサブプログラム803を介して、スクランブラ部703に与えると、スクランブラ部703は、与えられた暗号化情報を用いて、データを暗号化し、端末装置500のQPSK変調部503に与える。QPSK変調部503は、与えられた暗号化された情報を変調し、ヘッドエンド101に送信する。
この結果、初期化サブプログラム802は、端末装置500、第2デスクランブラ部702、スクランブラ部703、ネットワークサブプログラム803を通して、ヘッドエンド101と双方向通信を行うことができる。
ネットワークサブプログラム803は、メインプログラム801、初期化サブプログラム802等の複数のサブプログラムから使用される、ヘッドエンド101との双方向通信を行うためのサブプログラムである。具体的には、ネットワークサブプログラム803を使用する他のサブプログラムに対して、TCP/IPによって、ヘッドエンド101と双方向通信を行っているように振舞う。TCP/IPは、複数の装置間で情報交換を行うためのプロトコルを規定した公知の技術であり、詳細な説明は省略する。ネットワークサブプログラム803は、電源投入時に初期化サブプログラム802に起動されると、予め第2記憶部705が記憶しているPOD504を識別する識別子であるMACアドレス(Media Access Controlアドレスの略)を、端末装置500を通してヘッドエンド101に通知し、IPアドレスの取得を要求する。ヘッドエンド101は、端末装置500を介してPOD504にIPアドレスを通知し、ネットワークサブプログラム803は、IPアドレスを第1記憶部704に記憶する。以降、ヘッドエンド101とPOD504は、このIPアドレスを、POD504の識別子として使用し、通信を行う。
再生サブプログラム804は、第2記憶部705が記憶する第2の鍵等の復号情報や、端末装置500から与えられる第3の鍵等の復号情報を第1デスクランブラ部701に与えて、デスクランブルを可能にする。また、ネットワークサブプログラム803を通して、第1デスクランブラ部701に入力されている信号が、PPVチャンネルであることの情報を受け取る。PPVチャンネルと知ったときは、PPVサブプログラム805を起動する。
PPVサブプログラム805は、起動されると、端末装置500に番組の購入を促すメッセージを表示し、ユーザーの入力を受け取る。具体的には、端末装置500のCPU514に画面に表示したい情報を送ると、端末装置500のCPU514上で動作するプログラムが、端末装置500のディスプレイ509上にメッセージを表示する。ユーザーは、端末装置500の入力部513を通して暗証番号を入力すると、端末装置500のCPU514が、それを受け取り、POD504のCPU706上で動作するPPVサブプログラム805に通知する。PPVサブプログラム805は、受け取った暗証番号をネットワークサブプログラム803を通してヘッドエンド101に送信する。ヘッドエンド101は、暗証番号が正しければ、復号に必要な第4の鍵などの復号化情報をネットワークサブプログラム803を介して、PPVサブプログラム805に通知する。PPVサブプログラム805は受け取った第4の鍵などの復号化情報を第1デスクランブラ部701に与え、第1デスクランブラ部701は、入力されている信号をデスクランブルする。
図5を参照して、TSデコーダ505は、POD504から受け取った信号のフィルタリングを実施し、必要なデータをオーディオデコーダ506及びビデオデコーダ508、CPU514に引き渡す。ここで、POD504から来る信号はMPEG2トランスポートストリームである。MPEG2トランスポートストリームの詳細はMPEG規格書 ISO/IEC13818−1に記載されており、本実施の形態では詳細は省略する。MPEG2トランスポートストリームは、複数の固定長パケットで構成され、各パケットには、パケットIDが振られている。図9はパケットの構成図である。900はパケットであり、固定長の188バイトで構成される。先頭4バイトがヘッダー901で、パケットの識別情報を格納しており、残り184バイトがペイロード902で、送信したい情報を含んでいる。903は、ヘッダー901の内訳である。先頭から12ビット目〜24ビット目までの13ビットにパケットIDが含まれている。図10は送られてくる複数のパケットの列を表現した模式図である。パケット1001は、ヘッダーにパケットID「1」を持ち、ペイロードには映像Aの1番目の情報が入っている。パケット1002は、ヘッダーにパケットID「2」を持ち、ペイロードには音声Aの1番目の情報が入っている。パケット1003は、ヘッダーにパケットID「3」を持ち、ペイロードには音声Bの1番目の情報が入っている。
パケット1004は、ヘッダーにパケットID「1」を持ち、ペイロードには映像Aの2番目の情報が入っており、これはパケット1001の続きになっている。同様にパケット1005、1026、1027も他のパケットの後続データを格納している。このように、同じパケットIDを持つ、パケットのペイロードの内容を連結すると、連続した映像や音声を再現することができる。
図10を参照して、CPU514がパケットID「1」と出力先として「ビデオデコーダ508」をTSデコーダ505に指示すると、TSデコーダ505はPOD504から受け取ったMPEG2トランスポートストリームからパケットID「1」のパケットを抽出し、ビデオデコーダ508に引き渡す。図10においては、映像データのみをビデオデコーダ508に引き渡すことになる。同時に、CPU514がパケットID「2」と「オーディオデコーダ506」をTSデコーダ505に指示すると、TSデコーダ505はPOD504から受け取ったMPEG2トランスポートストリームからパケットID「2」のパケットを抽出し、オーディオデコーダ506に引き渡す。図10においては、音声データのみをオーディオデコーダ506に引き渡すことになる。
このパケットIDに応じて必要なパケットだけを取り出す処理が、TSデコーダ505が行うフィルタリングである。TSデコーダ505はCPU514から指示された複数のフィルタリングを同時に実行することができる。
図5を参照して、オーディオデコーダ506は、TSデコーダ505から与えられたMPEG2トランスポートストリームのパケットに埋め込まれたオーディオデータを連結し、デジタル−アナログ変換を行いスピーカ507に出力する。
スピーカ507は、オーディオデコーダ506から与えられた信号を音声出力する。
ビデオデコーダ508は、TSデコーダ505から与えられたMPEG2トランスポートストリームのパケットに埋め込まれたビデオデータを連結し、デジタル−アナログ変換を行いディスプレイ509に出力する。
ディスプレイ509は、具体的にはブラウン管や液晶等で構成され、ビデオデコーダ508から与えられたビデオ信号を出力したり、CPU514から指示されたメッセージを表示したりする。
2次記憶部510は、具体的には、フラッシュメモリーやハードディスク等で構成され、CPU514から指示されたデータやプログラムを保存したり削除したりする。また、保存されているデータやプログラムはCPU514に参照される。保存されているデータやプログラムは、端末装置500の電源が切断された状態でも保存しつづける。
1次記憶部511は、具体的には、RAM等で構成され、CPU514から指示されたデータやプログラムを一次的に保存したり削除したりする。また、保存されているデータやプログラムはCPU514に参照される。保存されているデータやプログラムは、端末装置500の電源が切断された際に、抹消される。
ROM512は、書き換え不可能なメモリーデバイスであり、具体的にはROMやCD−ROM、DVDなどで構成される。ROM512は、CPU514が実行するプログラムが格納されている。
入力部513は、具体的には、フロントパネルやリモコンで構成され、ユーザーからの入力を受け付ける。図11は、フロントパネルで入力部513を構成した場合の一例である。1100はフロントパネルであり、図6のフロントパネル部603に相当する。フロントパネル1100は7つのボタン、上カーソルボタン1101、下カーソルボタン1102、左カーソルボタン1103、右カーソルボタン1104、OKボタン1105、取消ボタン1106、EPGボタン1107を備えている。ユーザーがボタンを押下すると、押下されたボタンの識別子が、CPU514に通知される。
CPU514は、ROM512が記憶するプログラムを実行する。実行するプログラムの指示に従い、QAM復調部501、QPSK復調部502、QPSK変調部503、POD504、TSデコーダ505、ディスプレイ509、2次記憶部510、1次記憶部511、ROM512を制御する。
図12は、ROM512に記憶され、CPU514に実行されるプログラムの構成図の一例である。
プログラム1200は、複数のサブプログラムで構成され、具体的にはOS1201、EPG1202、JavaVM1203、サービスマネージャ1204、Javaライブラリ1205で構成される。
OS1201は、端末装置500の電源が投入されると、CPU514が起動するサブプログラムである。OS1201は、オペレーティングシステムの略であり、Linux等が一例である。OS1201は、他のサブプログラムを平行して実行するカーネル1201a及びライブラリ1201bで構成される公知の技術の総称であり、詳細な説明は省略する。本実施の形態においては、OS1201のカーネル1201aは、EPG1202とJavaVM1203をサブプログラムとして実行する。また、ライブラリ1201bは、これらサブプログラムに対して、端末装置500が保持する構成要素を制御するための複数の機能を提供する。
本実施の形態では、ライブラリ1201bは機能の一例として、チューナ1201b1、限定受信1201b2、AV再生1202b3を含む。チューナ1201b1は、他のサブプログラムやJavaライブラリ1205のTuner1205cから周波数を含むチューニング情報を受け取り、それをQAM復調部501に引き渡す。QAM復調部501は与えられたチューニング情報に基づき復調処理を行い、復調したデータをPOD504に引き渡すことができる。この結果、他のサブプログラム及びJavaライブラリ1205のTuner1205cはライブラリ1201bを通してQAM復調器を制御することができる。
限定受信1201b2は、他のサブプログラムやJavaライブラリ1205のCA1205dから復号に必要な情報を受け取り、POD504に与える。この結果、POD504は、与えられた情報を元に、QAM復調部501から与えられた信号を復号しTSデコーダ505に引き渡す。
AV再生1202b3は、他のサブプログラムやJavaライブラリ1205のJMF1205aから,音声のパケットIDと映像のパケットIDを受け取る。受け取った音声のパケットIDと出力先としてオーディオデコーダ506の組と、受け取った映像のパケットIDと出力先としてビデオデコーダ508の組を、TSデコーダ505に与える。この結果、TSデコーダ505は与えられたパケットIDと出力先に基づいて、フィルタリングを行い、映像・音声の再生を実現する。 EPG1202は、ユーザーに番組一覧を表示及び、ユーザーからの入力を受け付ける番組表示部1202aと、チャンネル選局を行う再生部1202bで構成される。ここで、EPGはElectric Program Guideの略である。EPG1202は、端末装置500の電源が投入されると、カーネル1201aによって起動される。起動されたEPG1202の内部では、番組表示部1202aと再生部1202bが同時に起動される。番組表示部1202aは起動されると、端末装置500の入力部513を通して、ユーザーからの入力を待つ。ここで、入力部513が図11で示されるフロントパネルで構成されている場合、ユーザーが、入力部513のEPGボタン1107を押下すると、EPGボタンの識別子がCPU514に通知される。CPU514上で動作するサブプログラムであるEPG1202の番組表示部1202aは、この識別子を受け取り、番組情報をディスプレイ509に表示する。図13(1)及び(2)は、ディスプレイ509に表示された番組表の一例である。図13(1)を参照して、ディスプレイ509には、格子状に番組情報が表示されている。列1301には、時刻情報が表示されている。列1302には、チャンネル名「チャンネル1」と、列1301の時刻に対応する時間帯に放映される番組が表示されている。「チャンネル1」では、9:00〜10:30に番組「ニュース9」が放映され、10:30〜12:00は「映画AAA」が放映されることを表す。列1303も列1302同様、チャンネル名「チャンネル2」と、列1301の時刻に対応する時間帯に放映される番組が表示されている。9:00〜11:00に番組「映画BBB」が放映され、11:00〜12:00は「ニュース11」が放映される。1330は、カーソルである。カーソル1330は、フロントパネル1100の左カーソル1103と右カーソル1104を押下すると移動する。図13(1)の状態で、右カーソル1104を押下すると、カーソル1330は右に移動し、図13(2)のようになる。また、図13(2)の状態で、左カーソル1103を押下すると、カーソル1330は左に移動し、図13(1)のようになる。
図13(1)の状態で、フロントパネル1100のOKボタン1105が押下されると、番組表示部1202aは、「チャンネル1」の識別子を再生部1202bに通知する。図13(2)の状態で、フロントパネル1100のOKボタン1105が押下されると、番組表示部1202aは、「チャンネル2」の識別子を再生部1202bに通知する。
また、番組表示部1202aは、表示する番組情報を、POD504を通してヘッドエンド101から定期的に、1次記憶部511に記憶しておく。一般的に、ヘッドエンドからの番組情報の取得は時間が掛かる。入力部513のEPGボタン1107が押下された時、1次記憶部511に予め保存された番組情報を表示することで、素早く番組表を表示することができる。
再生部1202bは、受け取ったチャンネルの識別子を用いて、チャンネルを再生する、すなわちチャンネルを構成する映像と音声を再生する。チャンネルの識別子とチャンネルの関係は、チャンネル情報として、2次記憶部510に予め格納されている。図14は2次記憶部510に格納されているチャンネル情報の一例である。チャンネル情報は表形式で格納されている。列1401は、チャンネルの識別子である。列1402は、チャンネル名である。列1403はチューニング情報である。ここで、チューニング情報は周波数や転送レート、符号化率などを含み、QAM復調部501に与える値である。列1404はプログラムナンバーである。プログラムナンバーとは、MPEG2規格で規定されているPMTを識別するための番号である。PMTに関しては、後述する。行1411〜1414の各行は、各チャンネルの識別子、チャンネル名、チューニング情報の組となる。行1411は識別子が「1」、チャンネル名が「チャンネル1」、チューニング情報に周波数「150MHz」、プログラムナンバーが「101」を含む組となっている。再生部1202bは、チャンネルの再生を行うため、受け取ったチャンネルの識別子をそのままサービスマネージャに引き渡す。
また、再生部1202bは、再生中に、ユーザーがフロントパネル1100の上カーソル1101と下カーソル1102を押下すると、入力部513からCPU514を通して、押下された通知を受け取り、再生しているチャンネルを変更する。上カーソル1101を押下すると、現在再生中のチャンネルよりも一つ小さいチャンネル識別子を持つチャンネルを再生し、また下カーソル1102を押下すると、現在再生中のチャンネルよりも一つ大きいチャンネル識別子を持つチャンネルを再生する。まず、再生部1202bは、2次記憶部512に現在再生中のチャンネルの識別子を記憶する。図15(1)(2)及び(3)は、2次記憶部512に保存しているチャンネルの識別子の例である。図15(1)では識別子「3」が記憶されており、図14を参照し、チャンネル名「TV 3」のチャンネルが再生中であることを示す。図15(1)の状態で、ユーザーが上カーソル1101を押下すると再生部1202bは、図14のチャンネル情報を参照し、表中で現在再生中のチャンネルよりも一つ小さい識別子を持つチャンネルであるチャンネル名「チャンネル2」のチャンネルに再生を切り変えるため、サービスマネージャにチャンネル名「チャンネル2」の識別子「2」を引き渡す。同時に、2次記憶部512に記憶されているチャンネル識別子「2」に書き換える。図15(2)は、チャンネル識別子が書き換えられた状態を表す。また、図15(1)の状態で、ユーザーが下カーソル1102を押下すると再生部1202bは、図14のチャンネル情報を参照し、表中で現在再生中のチャンネルよりも一つ大きい識別子を持つチャンネルであるチャンネル名「TV Japan」のチャンネルに再生を切り変えるため、サービスマネージャにチャンネル名「TV Japan」の識別子「4」を引き渡す。同時に、2次記憶部512に記憶されているチャンネル識別子「4」に書き換える。図15(3)は、チャンネル識別子が書き換えられた状態を表す。チャンネル識別子は、2次記憶部512に記憶されているので、端末装置500の電源が切られた際も保存されている。
更に再生部1202bは、端末装置500の電源が投入された際に、起動されると、2次記憶部512に記憶されているチャンネル識別子を読み出す。そして、そのチャンネル識別子をサービスマネージャに引渡す。これにより、端末装置500は、電源投入時に前回の稼動時に再生されていた最後のチャンネルの再生を開始することができる。
JavaVM1203は、Java(TM)言語で記述されたプログラムを逐次解析し実行するJavaバーチャルマシンである。Java言語で記述されたプログラムはバイトコードと呼ばれる、ハードウエアに依存しない中間コードにコンパイルされる。Javaバーチャルマシンは、このバイトコードを実行するインタープリタである。また、一部のJavaバーチャルマシンは、バイトコードをCPU514が理解可能な実行形式に翻訳してから、CPU514に引渡し、実行することも行う。JavaVM1203は、カーネル1201aに実行するJavaプログラムを指定され起動される。本実施の形態では、カーネル1201aは、実行するJavaプログラムとしてサービスマネージャ1204を指定する。Java言語の詳細は、書籍「Java Language Specification(ISBN 0−201−63451−1)」等の多くの書籍で解説されている。ここでは、その詳細を省略する。また、JavaVM自体の詳細な動作などは、「Java Virtual Machine Specification(ISBN 0−201−63451―X)」等の多くの書籍で解説されている。ここでは、その詳細を省略する。
サービスマネージャ1204は、Java言語で書かれたJavaプログラムであり、JavaVM1203によって逐次実行される。サービスマネージャ1204は、JNI(Java Native Interface)を通して、Java言語で記述されていない他のサブプログラムを呼び出したり、または、呼び出されたりすることが可能である。JNIに関しても、書籍「Java Native Interface」等の多くの書籍で解説されている。ここでは、その詳細を省略する。
サービスマネージャ1204は、JNIを通して、再生部1202bよりチャンネルの識別子を受け取る。
サービスマネージャ1204は、最初にJavaライブラリ1205の中にあるTuner1205cに、チャンネルの識別子を引き渡し、チューニングを依頼する。Tuner1205cは、2次記憶部510が記憶するチャンネル情報を参照し、チューニング情報を獲得する。今、サービスマネージャ1204がチャンネルの識別子「2」をTuner1205cに引き渡すと、Tuner1205cは、図14の行1412を参照して、対応するチューニング情報「156MHz,」を獲得する。Tuner1205cは、OS1201のライブラリ1201bのチューナ1201b1を通して、QAM復調部501にチューニング情報を引き渡す。QAM復調部501は与えられたチューニング情報に従ってヘッドエンド101から送信されてきた信号を復調し、POD504に引き渡す。
次にサービスマネージャ1204は、Javaライブラリ1205の中にあるCA1205dにデスクランブルを依頼する。CA1205dは、OS1201のライブラリ1201bの限定受信1201b2を通して復号に必要な情報をPOD504に与える。POD504は、与えられた情報を元に、QAM復調部501から与えられた信号を復号しTSデコーダ505に引き渡す。
次にサービスマネージャ1204は、Javaライブラリ1205の中にあるJMF1205aにチャンネルの識別子を与え、映像・音声の再生を依頼する。
まず、最初にJMF1205aは、再生すべき映像と音声を特定するためのパケットIDをPAT、PMTから取得する。PATやPMTはMPEG2規格で規定されている、MPEG2トランスポートストリーム内の番組構成を表現するテーブルであり、MPEG2トランスポートストリームに含まれるパケットのペイロードに埋め込まれて、音声や映像と共に送信されるものである。詳細は規格書を参照されたい。ここでは、概略のみ説明する。PATは、Program Association Tableの略で、パケットID「0」のパケットに格納され送信されている。JMF1205aは、PATを取得するため、OS1201のライブラリ1201bを通して、TSデコーダ505にパケットID「0」とCPU514を指定する。TSデコーダ505がパケットID「0」でフィルタリングを行い、CPU514に引き渡すことでJMF1205aは、PATのパケットを収集する。図16は、収集したPATの情報の一例を模式的に表した表である。列1601は、プログラムナンバーである。列1602は、パケットIDである。列1602のパケットIDはPMTを取得するために用いられる。行1611〜1613は、チャンネルのプログラムナンバーと対応するパケットIDの組である。ここでは、3つのチャンネルが定義されている。行1611はプログラムナンバー「101」とパケットID「501」の組が定義されている。今、JMF1205aに与えられたチャンネルの識別子が「2」とすると、JMF1205aは、図14の行1412を参照して、対応するプログラムナンバー「102」を獲得し、次に、図16のPATの行1612を参照し、プログラムナンバー「102」に対応するパケットID「502」を獲得する。PMTは、Program Map Tableの略で、PATで規定されたパケットIDのパケットに格納され送信されている。JMF1205aは、PMTを取得するため、OS1201のライブラリ1201bを通して、TSデコーダ505にパケットIDとCPU514を指定する。ここで、指定するパケットIDは「502」とする。TSデコーダ505がパケットID「502」でフィルタリングを行い、CPU514に引き渡すことでJMF1205aは、PMTのパケットを収集する。図17は、収集したPMTの情報の一例を模式的に表した表である。列1701は、ストリーム種別であり。列1702は、パケットIDである。列1702で指定されるパケットIDのパケットには、ストリーム種別で指定された情報がペイロードに格納され送信されている。列1703は補足情報である。行1711〜1714はエレメンタリ−ストリームと呼ばれる、パケットIDと送信している情報の種別の組である。行1711は、ストリーム種別「音声」とパケットID「5011」の組であり、パケットID「5011」のペイロードには音声が格納されていることを表す。JMF1205aは、PMTから再生する映像と音声のパケットIDを獲得する。図17を参照して、JMF1205aは、行1711から音声のパケットID「5011」を、行1712から映像のパケットID「5012」を獲得する。
次に、JMF1205aは、OS1201のライブラリ1201bのAV再生1201b3に獲得した音声のパケットIDと映像のパケットIDを引き渡す。これを受けて、AV再生1201b3は、受け取った音声のパケットIDと出力先としてオーディオデコーダ506の組と、受け取った映像のパケットIDと出力先としてビデオデコーダ508の組を、TSデコーダ505に与える。TSデコーダ505は与えられたパケットIDと出力先に基づいて、フィルタリングを行う。ここではパケットID「5011」のパケットをオーディオデコーダ506に、パケットID「5012」のパケットをビデオデコーダ508に引き渡す。オーディオデコーダ506は、与えられたパケットのデジタル−アナログ変換を行いスピーカ507を通して音声を再生する。ビデオデコーダ508は、与えられたパケットのデジタル−アナログ変換を行いディスプレイ509に映像を表示する。
最後にサービスマネージャ1204は、Javaライブラリ1205の中にあるAM1205bにチャンネルの識別子を与え、データ放送再生を依頼する。ここで、データ放送再生とは、MPEG2トランスポートストリームに含まれるJavaプログラムを抽出し、JavaVM1203に実行させることである。MPEG2トランスポートストリームにJavaプログラムを埋め込む方法は、MPEG規格書 ISO/IEC13818−6に記述されたDSMCCという方式を用いる。ここではDSMCCの詳細な説明は省略する。DSMCC方式は、MPEG2トランスポートストリームのパケットの中に、コンピュータで使用されているディレクトリやファイルで構成されるファイルシステムをエンコードする方法を規定している。また、実行するJavaプログラムの情報はAITと呼ばれる形式で、MPEG2トランスポートストリームのパケットの中に埋め込まれ送信されている。AITは、DVB−MHP規格(正式には、ETSI TS 101 812 DVB−MHP仕様V1.0.2)の10章に定義されている、Application Information Tableの略である。
AM1205bは、まず、AITを獲得するため、JMF1205a同様PAT、PMTを取得し、AITが格納されているパケットのパケットIDを獲得する。今、与えられたチャンネルの識別子が「2」で、図16のPAT、図17のPMTが送信されていると、JMF1205aと同様の手順で、図17のPMTを獲得する。AM1205bは、PMTからストリーム種別が「データ」で補足情報として「AIT」を持つエレメンタリ−ストリームからパケットIDを抽出する。図17を参照して、行1713のエレメンタリ−ストリームが該当し、パケットID「5013」を獲得する。
AM1205bは、OS1201のライブラリ1201bを通してTSデコーダ505にAITのパケットIDと出力先CPU514を与える。TSデコーダ505、与えられたパケットIDでフィルタリングを行い、CPU514に引き渡す。この結果、AM1205bは、AITのパケットを収集することができる。図18は、収集したAITの情報の一例を模式的に表した表である。列1801はJavaプログラムの識別子である。列1802はJavaプログラムの制御情報である。制御情報には「autostart」「present」「kill」などがあり、「autostart」は即時に端末装置500がこのプログラムを自動的に実行することを意味し、「present」は自動実行しないことを意味し、「kill」はプログラムを停止することを意味する。列1803は、DSMCC方式でJavaプログラムを含んでいるパケットIDを抽出するためのとDSMCC識別子である。列1804はJavaプログラムのプログラム名である。行1811と1812は、Javaプログラムの情報の組である。行1811で定義されるJavaプログラムは、識別子「301」、制御情報「autostart」、DSMCC識別子「1」、プログラム名「a/TopXlet」の組である。行1812で定義されるJavaプログラムは、識別子「302」、制御情報「present」、DSMCC識別子「1」、プログラム名「b/GameXlet」の組である。ここで2つのJavaプログラムは同じDSMCC識別子を持つが、これは1つのDSMCC方式でエンコードされたファイルシステム内に2つのJavaプログラムが含まれていることを表す。ここでは、Javaプログラムに対して4つの情報しか規定しないが、実際にはより多くの情報が定義される。詳細はDVB−MHP規格を参照されたい。
AM1205bは、AITの中から「autostart」のJavaプログラムを見つけ出し、対応するDSMCC識別子及びJavaプログラム名を抽出する。図18を参照して、AM1205bは行1811のJavaプログラムを抽出し、DSMCC識別子「1」及びJavaプログラム名「a/TopXlet」を獲得する。
次にAM1205bは、AITから取得したDSMCC識別子を用いて、JavaプログラムをDSMCC方式で格納しているパケットのパケットIDをPMTから獲得する。具体的には、PMTの中でストリーム種別が「データ」で、補足情報のDSMCC識別子が合致するエレメンタリ−ストリームのパケットIDを取得する。
今、DSMCC識別子が「1」であり、PMTが図17とすると、行1714のエレメンタリ−ストリームが合致し、パケットID「5014」を取り出す。
AM1205bは、OS1201のライブラリ1201bを通してTSデコーダ505にDSMCC方式でデータが埋めこめられたパケットのパケットIDと出力先としてCPU514を指定する。ここでは、パケットID「5014」を与える。TSデコーダ505、与えられたパケットIDでフィルタリングを行い、CPU514に引き渡す。この結果、AM1205bは、必要なパケットを収集することができる。AM1205bは、収集したパケットから、DSMCC方式に従ってファイルシステムを復元し、1次記憶部511に保存する。MPEG2トランスポートストリーム中のパケットからファイルシステム等のデータを取り出し1次記憶部511等の記憶手段に保存すことを以降、ダウンロードと呼ぶ。
図19は、ダウンロードしたファイルシステムの一例である。図中、丸はディレクトリを四角はファイルを表し、1901はルートディレクトリ、1902はディレクトリ「a」,1903はディレクトリ「b」,1904はファイル「TopXlet.class」、1905はファイル「GameXlet.class」である。
次にAM1205bは、1次記憶部511にダウンロードしたファイルシステム中から実行するJavaプログラムをJavaVM1203に引き渡す。今、実行するJavaプログラム名が「a/TopXlet」とすると、Javaプログラム名の最後に「.class」を付加したファイル「a/TopXlet.class」が実行すべきファイルとなる。「/」はディレクトリやファイル名の区切りであり、図19を参照して、ファイル1904が実行すべきJavaプログラムである。次にAM1205bは、ファイル1904をJavaVM1203に引き渡す。
JavaVM1203は、引き渡されたJavaプログラムを実行する。
サービスマネージャ1204は、他のチャンネルの識別子を受け取ると、Javaライブラリ1205に含まれる各ライブラリを通して再生している映像・音声及びJavaプログラムの実行を、同じくJavaライブラリ1205に含まれる各ライブラリを通して停止し、新たに受け取ったチャンネルの識別子に基づいて、映像・音声の再生及びJavaプログラムの実行を行う。
また、サービスマネージャ1204は、再生部1202bだけでなく、JavaVM1203上で実行されるJavaプログラムからチャンネルの識別子を受け取る機能も備える。具体的には、チャンネルの識別子を受け取るためのJava言語のクラス及びそのメソッドを提供する。チャンネルの識別子を受け取ると、サービスマネージャ1204は、Javaライブラリ1205に含まれる各ライブラリを通して現在再生している映像・音声及びJavaプログラムの実行を、同じくJavaライブラリ1205に含まれる各ライブラリを通して停止し、その後、新たに受け取ったチャンネルの識別子に基づいて、新しい映像・音声の再生及びJavaプログラムの実行を行う。
更に、サービスマネージャ1204は、Javaプログラムのダウンロード・保存及び実行も行う。
サービスマネージャ1204は、起動時に、PODの初期化処理の終了を待って、Javaライブラリ1205に含まれるPOD Lib1205eを通してヘッドエンド101と双方向通信を行う。この双方向通信は、POD Lib1205eはOS1201のライブラリ1201b及び、POD504を介して、QPSK復調部502、QPSK変調部503を使用して実現される。
サービスマネージャ1204は、この通信を用いてヘッドエンド101から、端末装置500が2次記憶部510に保存すべきJavaプログラムの情報を受け取る。この情報をXAIT情報と呼ぶ。XAIT情報は、ヘッドエンド101とPOD504間で、任意の形式で送信される。どのような送信形式を採用しても、XAITに必要とする情報が含まれていれば、本発明は実施可能である。
図20は、ヘッドエンド101から取得したXAITの情報の一例を模式的に表した表である。列2001はJavaプログラムの識別子である。列2002はJavaプログラムの制御情報である。制御情報には「autoselect」「present」などがあり、「autoselect」は端末装置500が電源投入時にこのプログラムを自動的に実行することを意味し、「present」は自動実行しないことを意味する。列2003は、DSMCC方式でJavaプログラムを含んでいるパケットIDを抽出するためのDSMCC識別子である。列2004はJavaプログラムのプログラム名である。列2005は、Javaプログラムの優先度である。行2011と2012は、Javaプログラムの情報の組である。行2011で定義されるJavaプログラムは、識別子「701」、制御情報「autoselect」、DSMCC識別子「1」、プログラム名「a/ZapperXlet」の組である。ここでは、Javaプログラムに対して5つの情報しか規定しないが、より多くの情報が定義されていても本発明は実施可能である。
サービスマネージャ1204は、XAIT情報を受け取ると、AIT情報からJavaプログラムをダウンロードした手順と同じ手順で、MPEG2トランスポートストリームからファイルシステムを1次記憶部511に保存する。その後、保存したファイルシステムを2次記憶部510に複写する。なお、1次記憶部511を介さず、直接2次記憶部510にダウンロードすることも実施可能である。次に、サービスマネージャ1204は、XAIT情報にダウンロードしたファイルシステムの格納位置を対応つけて2次記憶部510に保存する。図21は、2次記憶部510がXAIT情報とダウンロードしたファイルシステムが対応つけられて保存されている一例を表す。図21の中で、図20と同じ番号の要素は図20と同じなので、説明は省略する。列2101は対応するダウンロードしたファイルシステムの保存位置を格納する。図中、保存位置は矢印で示している。2110はダウンロードしたファイルシステムであり、内部にトップディレクトリ2111、ディレクトリ「a」2112、ディレクトリ「b」2113、ファイル「ZapperXlet.class」2114、ファイル「PPV2Xlet.class」2115を保持する。
ここで、XAIT情報は、Javaプログラムを保存してから保存しているが、Javaプログラムを保存する前に保存することも実施可能である。
端末装置500に電源が投入後、OS1201が、サービスマネージャ1204をJavaVM1203に指定し、JavaVM1203がサービスマネージャ1204を起動した後、サービスマネージャ1204は、最初に2次記憶部510に保存されたXAIT情報を参照する。ここで各Javaプログラムの制御情報を参照し「autoselect」のプログラムをJavaVM1203に引き渡し、起動する。図21を参照して、行2011で定義されるJavaプログラム「ZapperXlet」が起動される。
Javaライブラリ1205は、ROM512に格納されている複数のJavaライブラリの集合である。本実施の形態では、ここでは、Javaライブラリ1205は、JMF1205a,AM1205b,Tuner1205c,CA1205d、POD Lib1205e、再生Lib1205f、IO1205g、AWT1205h等を含んでいる。
JMF1205a,AM1205b,Tuner1205c,CA1205d、POD Lib1205eの機能は、既に記述されてるので省略する。
再生Lib1205fは、2次記憶部510が記憶している、現在再生しているチャンネルの識別子をJavaプログラムに渡すためのJava言語のクラスおよびメソッドを(以下Java APIと記述)提供する。このJava APIを利用することで、Javaプログラムは、現在再生中のチャンネルを知ることができる。
IO1205gは、Javaプログラムが2次記憶部510にデータを書き込むためのJava API、あるいは、その書き込んだデータを2次記憶部510から読み込むためのJava APIをJavaプログラムに提供する。このAPIを利用することで、Javaプログラムは、任意のデータを2次記憶部510に保存することができる。この保存されたデータは端末装置500の電源がオフになっても消えないので、端末装置500の電源が投入された後、再びそのデータを読み込むことができる。
AWT1205hは、Javaプログラムが描画を行ったり、入力部513からのキー入力通知を受け取るためのJava APIを提供する。具体的には、「The Java class Libraries Second Edition,Volume 2」(ISBN0−201−31003−1)で既定されるjava.awtパッケージ、java.awt.eventパッケージ及びその他のjava.awtのサブパッケージが相当する。ここでは、詳細な説明を省略する。
次に本発明の主要部分である、端末装置500の電源投入時における、再生部1202bの例外処理と、Javaプログラム「ZapperXlet」の動作について説明する。
図22は、端末装置500の電源投入時における、主要サブプログラムの起動順序を表した模式図である。この図は、横軸で時間経過を表す。矢印2201の左端は、カーネル1201aの起動を表し、この起動時以降動作しつづけることを表現している。同様に、矢印2202、2203、2204の左端は、各々再生部1202b、JavaVM1203、サービスマネージャ1204の起動を表し、この起動時以降動作しつづけることを表現している。
2211は、端末装置500に電源が投入された時刻である。このとき、カーネル1201aは起動される。カーネル1201aは自身の初期化処理などを終えた後、2212で示される時刻にEPG1202を起動することによって再生部1202bを起動し、同時にJavaVM1203も起動する。JavaVM1203は、自身の初期化処理などを終えた後、2213で示される時刻にサービスマネージャ1204を起動する。サービスマネージャ1204は、自身の初期化処理などを終えた後、2214で示される時刻から、再生するチャンネルの識別子を受け取ることができる。
図22からわかる通り、時刻2212から時刻2214までの間、再生部1202bが、再生したいチャンネルの識別子をサービスマネージャ1204に引き渡しても、サービスマネージャ1204は受け取ることが出来ない。よって、チャンネルを再生することが出来ない。
よって、時刻2212から時刻2214までの間は、再生部1202bはサービスマネージャからの指示なしで、自身でチャンネル再生を行うこととする。
再生部1202bは、ライブラリ1201bに直接アクセス可能であり、これによりJavaライブラリ1205を構成するTuner1205c、CA1205d及びJMF1205cと同様の機能を備える。まず、起動と同時に、2次記憶部510が記憶するチャンネルの識別子を読み出す。このチャンネルの識別子は、前回の電源オフ前に最後に再生されていたチャンネルの識別子である。あるいは、2次記憶部510は、電源投入時に再生すべき特定のチャンネルの識別子を記憶し、再生部1202bは、それを読み込むこととしても良い。
次に再生部1202bは、2次記憶部510が記憶するチャンネル情報を参照し、チューニング情報を獲得する。今、チャンネルの識別子「2」のチャンネルを再生したいとすると、図14の行1412を参照して、対応するチューニング情報「156MHz,」を獲得する。再生部1202bは、OS1201のライブラリ1201bのチューナ1201b1を通して、QAM復調部501にチューニング情報を引き渡す。QAM復調部501は与えられたチューニング情報に従ってヘッドエンド101から送信されてきた信号を復調し、POD504に引き渡す。
次に再生部1202bは、OS1201のライブラリ1201bの限定受信1201b2を通して復号に必要な情報をPOD504に与える。POD504は、与えられた情報を元に、QAM復調部501から与えられた信号を復号しTSデコーダ505に引き渡す。
最後に再生部1202bは、JMF1205a同様、TSデコーダ505を使用してPAT、PMT情報を取得し、再生すべき音声と映像のパケットIDを獲得する。OS1201のライブラリ1201bのAV再生1201b3に獲得した音声のパケットIDと映像のパケットIDを引き渡す。これを受けて、AV再生1201b3は、受け取った音声のパケットIDと出力先としてオーディオデコーダ506の組と、受け取った映像のパケットIDと出力先としてビデオデコーダ508の組を、TSデコーダ505に与える。TSデコーダ505は与えられたパケットIDと出力先に基づいて、フィルタリングを行う。オーディオデコーダ506は、TSデコーダ505から与えられたパケットのデジタル−アナログ変換を行いスピーカ507を通して音声を再生する。また、ビデオデコーダ508は、TSデコーダ505から与えられたパケットのデジタル−アナログ変換を行いディスプレイ509に映像を表示する。
再生部1202bは、時刻2214以降は、通常通りチャンネルの識別子をサービスマネージャ1204に引き渡す。再生部1202bは、サービスマネージャ1204が、チャンネルの識別子を受け取ることが出来る時刻を、サービスマネージャ1204からの通知により知ることができる。具体的には、再生部1202b内に用意された関数をサービスマネージャ1204が呼び出す。あるいは、再生部1204はコールバック関数をサービスマネージャ1204に登録し、サービスマネージャ1204が登録されたコールバック関数を呼び出してもよい。あるいは、サービスマネージャ1204は、JavaVM1203に通知し、JavaVM1203が再生部1202bに通知する等、間接的に通知しても良い。つまり、様々な方法で、再生部1202bは、サービスマネージャ1204が、チャンネルの識別子を受け取ることが出来る時刻を知ることは可能である。 この結果、時刻2214以前は、再生部1202bにより音声・映像の再生のみが可能であり、時刻2214以降は、サービスマネージャ1204により音声・映像の再生に加えチャンネルに含まれるJavaプログラムの実行も可能となる。端末装置500が、上述した起動時における再生部1202bの例外処理を用いることにより、サービスマネージャ1204の起動前に、映像・音声の再生を行うことができ、その結果、電源投入後のユーザー待ち時間を見かけ上短縮することが出来る。すなわち、電源を投入したのに画面に何も表示されない時間を短縮することが出来る。
ここで、再生部1202bは、時刻2212から時刻2214の間にユーザーからの入力を入力部513を通して受け取ることも出来る。この場合、上述の通り、再生部1202bは、自身で映像と音声の再生を行うと共に、2次記憶部510に、再生している映像と音声を含むチャンネルの識別子を記憶する。
図23は、Javaプログラム「ZapperXlet」の構成図の一例である。Javaプログラム「ZapperXlet」は、4つのサブプログラム、チャンネル記憶サブプログラム2301、起動サブプログラム2302、チャンネル再生サブプログラム2303、入力サブプログラム2304で構成される。
Javaプログラム「ZapperXlet」は、図21で示されるディレクトリ「a」2112に格納されているJavaプログラムであり、2次記憶部510に保存され、サービスマネージャ1204が起動時に自動的に起動するプログラムである。
チャンネル記憶サブプログラム2301は、Javaライブラリ1205のIO1205gを通して、Javaプログラム「ZapperXlet」が管理するチャンネル識別子を2次記憶部510に記憶する。また、記憶したチャンネル識別子を2次記憶部510から読み出す。ここで、Javaプログラム「ZapperXlet」が使用する2次記憶部510の領域は、再生部1202bが使用する領域とは異なる。すなわち、2次記憶部510には、再生部1202bが記憶させるチャンネル識別子と、Javaプログラム「ZapperXlet」が記憶させるチャンネル識別子の二種類のチャンネル識別子が記憶される。
起動サブプログラム2302は、Javaプログラム「ZapperXlet」の起動時に最初に実行されるサブプログラムである。まず、起動サブプログラム2302は、再生Lib1205fを呼び出し、現在再生しているチャンネルのチャンネル識別子を取得する。そして、取得したチャンネル識別子をチャンネル再生サブプログラム2303に引き渡す。同時に、この値をチャンネル記憶サブプログラム2301を通して、2次記憶部510に記憶する。ただし、チャンネルの再生が行われておらず、再生Lib1205fがチャンネルの識別子を返さないとき、チャンネル記憶サブプログラム2301を通して、記憶されているチャンネル識別子を2次記憶部510から読み出し、チャンネル再生サブプログラム2303に引き渡す。更にここで、2次記憶部510がチャンネル識別子を記憶していないときは、予め定められた既定のチャンネルの識別子をチャンネル再生サブプログラム2303に引き渡す。
チャンネル再生サブプログラム2303は、受け取ったチャンネル識別子をサービスマネージャ1204に与え、チャンネル切り替えを行う。
入力サブプログラム2304は、Javaライブラリ1205のAWT1205hを通して、入力部513からのユーザーが入力したキーの通知を受け取る。具体的には、キーの識別子を受け取る。受け取ったキーの識別子に対応するチャンネル識別子をチャンネル再生サブプログラム2303に引き渡す。ここで、キーの識別子とチャンネルの識別子の対応により本発明の実施が限定されることはない。入力部513が「0」から「9」の数字キーを備え、ユーザーがチャンネル識別子に相当する数字を入力することとしてもよいし、再生部1202bの様に上カーソルボタン1101、下カーソルボタン1102の押下によって、チャンネルを変更しても良い。
ここで、JavaプログラムがAWT1205hを通して入力部513からユーザーのキー入力を受け取る時は、再生部1202bは、入力部513からユーザーのキー入力を受け取れないこととする。
すると、Javaプログラム「ZapperXlet」が動作中は、Javaプログラム「ZapperXlet」がAWT1205hを通して入力部513からユーザーのキー入力を受け取り、再生部1202bと同等の機能を発揮することが出来る。また、この時点以降、再生部1202bは入力部513からの入力を受けることができないため実質機能せず、再生部1202bの動作をプログラム「ZapperXlet」が引き継ぐことになる。
このように、再生Lib1205fを用意することにより、再生部1202bがプログラム「ZapperXlet」の起動前に再生しているチャンネルの識別子を、Javaプログラムが取得することが出来る。これにより、Javaプログラムが再生部1202bの機能を有する際は、再生部1202bが再生していたチャンネルを継続して再生することが可能となり、ユーザーに混乱を与えることなく、チャンネル変更機能を引き継ぐことが出来る。
図24は再生Lib1205fの効果を示す一例であり、端末装置500の電源投入時における、再生部1202bとJavaプログラム「ZapperXlet」の起動順序を表した模式図である。この図は、横軸で時間経過を表す。矢印2401の左端は再生部1202bの起動を表し、この起動時以降動作しつづけることを表現している。同様に、矢印2402の左端は、Javaプログラム「ZapperXlet」の起動を表し、この起動時以降動作しつづけることを表現している。2405は、各時点において、実際に再生されているチャンネルの識別子を示している。
2405は、端末装置500が各時刻で再生しているチャンネルの識別子を表す。時刻2411から時刻2412はチャンネル識別子「3」のチャンネルを再生し、時刻2412から時刻2414はチャンネル識別子「2」のチャンネルを再生し、時刻2414以降はチャンネル識別子「1」のチャンネルを再生していることを表す。
時刻2411は、端末装置500に電源が投入された後、再生部1202bが起動した時刻である。ここで、再生部1202bは、2次記憶部510が記憶していたチャンネル識別子「3」のチャンネルを再生したとする。時刻2412は、ユーザーが入力部513にチャンネル変更指示を入力し、再生部1202bが再生しているチャンネルをチャンネル識別子「3」のチャンネルからチャンネル識別子「2」のチャンネルに変更したことを示す。時刻2413は、Javaプログラム「ZapperXlet」が起動した時刻である。このとき、Javaプログラム「ZapperXlet」は、再生Lib1205fを通して、チャンネル識別子「2」のチャンネルが再生中であることを知り、何もしない。時刻2414は、ユーザーが入力部513にチャンネル変更指示を入力し、Javaプログラム「ZapperXlet」が再生しているチャンネルをチャンネル識別子「2」のチャンネルからチャンネル識別子「1」のチャンネルに変更したことを示す。
ここで、本実施例の効果を比較説明するために、仮に再生Lib1205fが存在しなかった場合を考える。図24を参照して、再生プログラム1202bは、時刻2411にチャンネル識別子「3」のチャンネルを再生し、時刻2412にユーザーの支持を受け取り、チャンネル識別子「2」のチャンネルを再生する。Javaプログラム「ZapperXlet」は時刻2413で、自身がチャンネル記憶サブプログラム2301で2次記憶部510に記憶したチャンネルの識別子を読み出し、そのチャンネル識別子のチャンネルの再生を行うであろう。もし、そのチャンネルの識別子が「4」とすると、ユーザーがせっかく選んだチャンネル識別子「2」のチャンネルの再生が突然中断され、チャンネル識別子「4」のチャンネルの再生が始まる。これは、ユーザーを驚かせ、かつ、ユーザーは自分が見たいチャンネル識別子「2」のチャンネルを再び選ぶという手間を必要とする。
仮に再生Lib1205fが存在しない、もう1つの例を考える。ここで、Javaプログラム「ZapperXlet」は起動時にはチャンネル再生を行わないとする。更に、端末装置500は、Javaプログラム「ZapperXlet」がチャンネル再生をすることを期待し、再生部1202bはチャンネルを再生しない、あるいは、再生部1202が存在しない端末の場合、電源投入後、どのチャンネルも自動的に再生されない。これは電源投入後、ユーザーは必ずチャンネルを指定する必要があり不便である。また、正常に動作しているか、故障しているかの判断が困難である。このように、再生Lib1205fを導入することで、Javaプログラム「ZapperXlet」が行うべき動作の一部を、サービスマネージャ1204起動前に、再生部1202bが行うことで、端末装置500の起動時にユーザーに対して短時間で、チャンネルに含まれる映像・音声を提示することができる。
図25は、再生部1202bの起動時の動作の一例を表すフローチャートである。
図25を参照して、再生部1202bは起動すると、内部の変数「サービスマネージャ起動フラグ」に「false」をセットする(ステップS2501)。次に、チャンネル記憶サブプログラムを通して、2次記憶部510から、チャンネル識別子を取り出す(ステップS2502)。変数「サービスマネージャ起動フラグ」の値を参照し(ステップS2503)、「false」なら、再生部1202bは自身で取得したチャンネル識別子のチャンネルの映像・音声の再生を行う(ステップS2504)。「true」なら、取得したチャンネル識別子をサービスマネージャ1204に引渡し、チャンネルの再生を依頼する(ステップS2505)。
その後、サービスマネージャ1204の起動通知を受けると(ステップS2506)、内部の変数「サービスマネージャ起動フラグ」に「true」をセットする(ステップS2507)。あるいは、ユーザーからの入力を受け付けると(ステップS2508)、入力に対応するチャンネル識別子を取得、あるいは算出し(ステップS2509)、制御をステップS2503に移すことにより、再生するチャンネルを変更することを実現する。
図26は、Javaプログラム「ZapperXlet」の動作の一例を表すフローチャートである。
図26を参照して、Javaプログラム「ZapperXlet」は、再生Lib1205fからチャンネルの再生状態を取得する(ステップS2601)。再生中でない場合(ステップS2602)、チャンネル記憶サブプログラム2301を通して、2次記憶部510が記憶するチャンネル識別子を取得する(ステップS2603)。チャンネル識別子が取得できない場合(ステップS2604)、予め決められた既定の値をチャンネル識別子とする(ステップS2605)。そして、チャンネル識別子をサービスマネージャに引渡しチャンネルの再生を依頼する(ステップS2606)。
なお、本実施の形態では、再生部1202bが映像と音声だけを再生していたが、サブタイトル、テレテキストやクローズドキャプションなどの再生を行っても良い。これを実現するには、端末装置500は、サブタイトル、テレテキストやクローズドキャプションを再生するサブ再生モジュールを備え、再生部1202bが、それらのサブ再生モジュールに必要な情報を引き渡すことによって実現可能である。
また、本実施の形態においては、映像・音声の再生において、再生部1202bがJavaプログラム「ZapperXlet」に先駆けて、その一部の機能を実施する例となっているが、他の動作対象に関しても適応可能である。例えば、アニメーションの再生では、端末装置に備わっているサブプログラムが、アニメーションの最初の1枚目だけを表示し、Javaプログラムがその後のコマの表示を継続する場合にも適応可能である。この場合、端末装置に備わっているサブプログラムが表示している状態を、Javaプログラムに通知するための機構を端末装置に備える。
また、本実施の形態においては、JavaプログラムがAWT1205hを通して入力部513からユーザーのキー入力を受け取る時は、再生部1202bは、入力部513からユーザーのキー入力を受け取れないとしていた。これを実現するため、再生部1202bの動作を、明示的に停止するための再生部停止LibをJavaライブラリ1205に加えても良い。Javaプログラムは、この再生部停止Libを呼び出すことにより、再生部1202bの動作を停止し、再生部1202bによるチャンネルの再生を停止することができる。あるいは、再生部停止Libは、入力部513からのユーザーの入力を再生部1202bへ通知しないようにするとしても同じ効果が得られる。
この再生部停止Libは、再生部1202bだけに限らず、ダウンロードされたJavaプログラムが、予め内蔵されているサブプログラムの機能を停止し、その機能をJavaプログラムが持つ機能に置き換えたい場合に、使用できる。具体的には、Javaプログラムが停止したい機能を再生部停止Libに指定することにしても良い。
(実施の形態2)
本実施の形態は、第1の実施の形態と比較して、Javaプログラム「ZapperXlet」の動作が異なる。
図27は、本実施の形態におけるJavaプログラム「ZapperXlet」の動作の一例を表すフローチャートである。実施の形態1と同じ符号のステップの動作は、実施の形態1と同じであるので、説明を省略する。実施の形態1と異なるのは、ステップS2602で、再生中の場合(図中のYESの場合)処理がステップS2606に移り、その再生中のチャンネルの識別子を、ステップS2606でサービスマネージャ1204に引渡し再生を依頼することである。
この結果、再生される映像・音声は同じであるが、チャンネル内に定義されているJavaプログラムを実行することが出来る。
また、本実施の形態において、同じチャンネルにも関わらず、Javaプログラム「ZapperXlet」がステップS2606でサービスマネージャ1204を呼び出すため、一旦、映像・音声の再生を停止し、再び同じ映像・音声を再生することになる。これは映像・音声が一旦途切れることを意味する。これを防ぐため、サービスマネージャ1204は、再生Lib1205fを参照し、再生中のチャンネル識別子と、Javaプログラムから受け取ったチャンネル識別子が等しいとき、映像・音声の再生のやり直しを行わないこととしてもよい。これにより映像音声の途切れをなくすことが出来る。あるいは、サービスマネージャ1204ではなく、JMF1205aが、再生Lib1205fを参照し、再生中のチャンネル識別子と、サービスマネージャ1204から受け取ったチャンネル識別子が等しいとき、映像・音声の再生のやり直しを行わないこととしても同じ効果が得られる。つまり、サービスマネージャ1204がチャンネル識別子を受け取った際、映像・音声の再生を行うために必要なサブプログラムで、再生Lib1205fを参照し、再生中のチャンネル識別子と、サービスマネージャ1204が受け取ったチャンネル識別子が等しいとき、映像・音声の再生のやり直しを行わないこととしても同じ効果が得られる。
(実施の形態3)
実施の形態1においては、サービスマネージャ1204がチャンネル識別子を受け取れる状態になるまでの処理と、受け取れる状態になったあとの処理の分岐を再生部1202bが行っていた。
これを、チャンネル識別子受付部を設けることにより吸収する。
図28は、本実施の形態におけるCPU514が実行するプログラム2800の構成図である。
プログラム2800は、複数のサブプログラムで構成され、具体的にはOS1201、EPG2802、JavaVM1203、サービスマネージャ2804、Javaライブラリ1205、チャンネル識別子受付部2806で構成される。
以降、実施の形態1と同じ符号の構成要素は同じ役割を果たすので、説明を省略する。
EPG2802は、ユーザーに番組一覧を表示及び、ユーザーからの入力を受け付ける番組表示部1202aと、チャンネル選局を行う再生部2802bで構成される。再生部2802bは、チャンネルを再生する際、チャンネル識別子受付部2806にチャンネル識別子を引き渡し、チャンネルの再生を依頼する。再生部2802bではサービスマネージャ2804の状態を考慮した動作は行わないし、自身でPAT、PMTを更新し映像・音声を再生することはしない。
サービスマネージャ2804と実施の形態1におけるサービスマネージャ1204の違いは、チャンネル識別子を再生部1202bからでなく、チャンネル識別子受付部2806から受け取ることである。他の動作は同じである。
チャンネル識別子受付部2806は、再生部2802bからチャンネル識別子を受け取る。
サービスマネージャ2804がチャンネル識別子を受け取れない状態の間は、チャンネル識別子受付部2806は、Tuner1205c、CA1205d及びJMF1205cと同様の機能を備える。
チャンネル識別子受付部2806は、2次記憶部510が記憶するチャンネル情報を参照し、与えられたチャンネル識別子に対応するチューニング情報を獲得する。今、チャンネルの識別子「2」のチャンネルを再生したいとすると、図14の行1412を参照して、対応するチューニング情報「156MHz,」を獲得する。チャンネル識別子受付部2806は、OS1201のライブラリ1201bのチューナ1201b1を通して、QAM復調部501にチューニング情報を引き渡す。QAM復調部501は与えられたチューニング情報に従ってヘッドエンド101から送信されてきた信号を復調し、POD504に引き渡す。
次にチャンネル識別子受付部2806は、OS1201のライブラリ1201bの限定受信1201b2を通して復号に必要な情報をPOD504に与える。POD504は、与えられた情報を元に、QAM復調部501から与えられた信号を復号しTSデコーダ505に引き渡す。
最後にチャンネル識別子受付部2806は、JMF1205a同様、TSデコーダ505を使用してPAT、PMT情報を取得し、再生すべき音声と映像のパケットIDを獲得する。OS1201のライブラリ1201bのAV再生1201b3に獲得した音声のパケットIDと映像のパケットIDを引き渡す。これを受けて、AV再生1201b3は、受け取った音声のパケットIDと出力先としてオーディオデコーダ506の組と、受け取った映像のパケットIDと出力先としてビデオデコーダ508の組を、TSデコーダ505に与える。TSデコーダ505は与えられたパケットIDと出力先に基づいて、フィルタリングを行う。オーディオデコーダ506は、TSデコーダ505から与えられたパケットのデジタル−アナログ変換を行いスピーカ507を通して音声を再生する。また、ビデオデコーダ508は、TSデコーダ505から与えられたパケットのデジタル−アナログ変換を行いディスプレイ509に映像を表示する。
チャンネル識別子受付部2806は、サービスマネージャ2804がチャンネル識別子を受け付けることが出来るようになった後は、通常通りチャンネルの識別子をサービスマネージャ2804に引き渡す。チャンネル識別子受付部2806は、サービスマネージャ2804が、チャンネルの識別子を受け取ることが出来る時刻を、サービスマネージャ2804からの通知により知ることができる。具体的には、チャンネル識別子受付部2806内に用意された関数をサービスマネージャ2804が呼び出す。あるいは、チャンネル識別子受付部2806はコールバック関数をサービスマネージャ2804に登録し、サービスマネージャ2804が登録されたコールバック関数を呼び出してもよい。あるいは、サービスマネージャ2804は、JavaVM1203に通知し、JavaVM1203がチャンネル識別子受付部2806に通知する等、間接的に通知しても良い。つまり、様々な方法で、チャンネル識別子受付部2806は、サービスマネージャ2804が、チャンネルの識別子を受け取ることが出来る時刻を知ることは可能である。チャンネル識別子受付部2806が、サービスマネージャ2804の状態に応じた動作をすることで、再生部2802bは、ユーザーからの入力を入力部513から受け付けた際、常に同一の動作を行えばよいので、再生部2802bは、実施の形態1の再生部1202bより少ない実行コード量、少ない工数で実現できる。
また、チャンネル識別子受付部2806は、最後に受け付けたチャンネル識別子を2次記憶手段510に保存する。そして、サービスマネージャ2804が、チャンネル識別子を受付可能になった時、2次記憶手段510に記憶しているチャンネル識別子をサービスマネージャ2804に引渡し、チャンネルの再生を依頼する。この結果、実施の形態2におけるJavaプログラム「ZapperXlet」のようなJavaプログラムが無くても、チャンネル内のJavaプログラムを起動することが出来る。
なお、実施の形態1と同様、サービスマネージャ2804がチャンネル識別子を受付可能になったことを、チャンネル識別子受付部2806が知る手段によって、本発明の実施が制限されることは無い。実施の形態1で記載した様々な方法で、サービスマネージャ2804がチャンネル識別子を受付可能になったことを知ることが出来る。
図29は、チャンネル識別子受付部2806の動作の一例を表すフローチャートである。
図29を参照して、チャンネル識別子受付部2806は起動すると、内部の変数「サービスマネージャ起動フラグ」に「false」をセットする(ステップS2901)。チャンネル識別子受付部2806は、チャンネル識別子を受け取ると(ステップS2902)、変数「サービスマネージャ起動フラグ」の値を参照する(ステップS2903)。「false」なら、チャンネル識別子受付部2806は自身で取得したチャンネル識別子のチャンネルの映像・音声の再生を行い(ステップS2904)、受け付けたチャンネル識別子を2次記憶部510に記憶する(ステップS2905)。「true」なら、受け付けたチャンネル識別子をサービスマネージャ2804に引渡し、チャンネルの再生を依頼する(ステップS2906)。
その後、サービスマネージャ2804の起動通知を受けると(ステップS2907)、内部の変数「サービスマネージャ起動フラグ」に「true」をセットする(ステップS2908)。さらに、最後に2次記憶部510に記憶したチャンネル識別子をサービスマネージャ2804に引渡し、チャンネルの再生を依頼する(ステップS2909)。
なお、実施の形態1、2,3を通して、以下の応用が可能である。
ROM512が保存する内容を2次記憶部510が保存することで、ROM512を削除することが実施可能である。また、2次記憶部510は、複数のサブ2次記憶部で構成し、個々のサブ2次記憶部が異なる情報を保存しても実施可能である。例えば、1つのサブ2次記憶部はチューニング情報のみを保存し、別のサブ2次記憶部は、OS1201のライブラリ1201bを保存し、更に別のサブ2次記憶部は、ダウンロードしたJavaプログラムを保存するなど、詳細に分割することが可能である。
本発明は、パーソナルコンピュータや携帯電話などの情報機器であれば、適応可能である。
また、衛星や地上波による配信でも実施可能である。この場合、QAM復調部501は適切な復調部に置き換えられ、TSデコーダに直結する構成が一般的である。この場合、QPSK復調部502、QPSK変調部503、POD504、は不要となる。ヘッドエンドへの通信の系は、モデムなどを構成要素を追加することで実現できる。
また、POD504は着脱可能な形態としているが、内蔵していても実施可能である。なお、内蔵した場合、POD504のCPU706を取り外し、CPU514がCPU706の動作も行うことも実施可能である。
POD Lib1205eに登録されるJavaプログラムは、ダウンロードされたJavaプログラムだけでなく、予め内蔵されているJavaプログラムでも実施可能である。また、SDメモリーカードなどの着脱可能な記憶媒体を着脱するとスロット部を取り付け、そこからJavaプログラムを取り込むことも可能である。また、ネットワークに接続するネットワーク部を取り付け、インターネットからJavaプログラムを取り出すことも可能である。
本発明は、プログラムを実行する装置等として、特に、通信路等を介してプログラムをダウンロードして実行するプログラム実行装置等として、例えば、デジタルTV受信機等として利用することができる。
本発明に係るケーブルテレビシステムの実施の形態1の構成図である。 本発明に係るケーブルテレビシステムにおいてヘッドエンドと端末装置間の通信に使用される周波数帯域の使い方の一例である。 本発明に係るケーブルテレビシステムにおいてヘッドエンドと端末装置間の通信に使用される周波数帯域の使い方の一例である。 本発明に係るケーブルテレビシステムにおいてヘッドエンドと端末装置間の通信に使用される周波数帯域の使い方の一例である。 本発明に係るケーブルテレビシステムにおいて端末装置の構成図である。 本発明に係るケーブルテレビシステムにおいて端末装置の外観の知例である。 本発明に係るPOD504のハードウエア構成の構成図である。 本発明に係るPOD504が保存するプログラム構成の構成図である。 MPEG規格で定義されているパケットの構成図である。 MPEG2トランスポートストリームの一例である。 入力部513をフロントパネルで構成した場合の外観の一例である。 本発明に係る端末装置500が保存するプログラム構成の構成図である。 (1)は、本発明に係るディスプレイ509の表示の一例であり、(2)は、本発明に係るディスプレイ509の表示の一例である。 本発明に係る2次記憶部510が保存する情報の一例である。 本発明に係る2次記憶部510が保存する情報の一例である。 本発明に係るMPEG2規格が規定するPATの内容を表す模式図である。 本発明に係るMPEG2規格が規定するPMTの内容を表す模式図である。 本発明に係るDVB−MHP規格が規定するAITの内容を表す模式図である。 本発明に係るDSMCC方式で送信されるファイルシステムを表す模式図である。 本発明に係るXAITの内容を表す模式図である。 本発明に係る2次記憶部510が保存する情報の一例である。 本発明に係る複数のサブプログラムの起動順序を一例を表す模式図である。 本発明に係るJavaプログラムの構成の一例である。 本発明に係る再生部1202bとJavaプログラムの起動順序を一例を表す模式図である。 本発明に係る再生部1202bの動作の一例を表すフローチャートである。 本発明に係るJavaプログラムの動作の一例を表すフローチャートである。 本発明に係るJavaプログラムの動作の一例を表すフローチャートである。 本発明に係る端末装置2800が保存するプログラム構成の構成図である。 本発明に係るチャンネル識別子受付部2806の動作の一例を表すフローチャートである。 従来のデジタルテレビの構成図である。
符号の説明
1200 プログラム
1201 OS
1201a カーネル
1201b ライブラリ
1202 EPG
1202a 再生部
1202b 番組表示部
1203 JavaVM
1204 サービスマネージャ
1205 Javaライブラリ
1205a JMF
1205b AM
1205c Tuner
1205d CA
1205e POD Lib
1205f 再生Lib
1205g IO
1205h AWT

Claims (8)

  1. 放送を受信する受信手段と、
    前記受信手段が受信した放送に含まれるチャンネルを再生する第1の仮想マシン用プログラムを実行する仮想マシンと、
    入力を受け付ける入力手段と、
    前記仮想マシン用プログラムの実行に先立ち、前記受信手段が受信した放送に含まれるチャンネルを再生するチャンネル再生手段と、
    前記入力手段からの指示に基づき、再生すべきチャンネルのチャンネル識別子に基づいて前記チャンネル再生手段に前記再生すべきチャンネルの再生を指示する組み込みプログラムであって前記第1の仮想マシン用プログラムのサブセットの機能を含むように構成された再生プログラムと、
    前記再生プログラムと前記仮想マシンを実行する実行手段と、
    前記再生プログラムが最後に指示したチャンネルのチャンネル識別子を前記第1の仮想マシン用プログラムに提供する情報提供手段とを備え、
    前記実行手段により実行される仮想マシンが前記第1の仮想マシン用プログラムを起動する前においては、前記再生プログラム前記再生すべきチャンネルのチャンネル識別子に基づいて前記チャンネル再生手段に前記再生すべきチャンネルの再生を指示し
    前記情報提供手段は、前記再生プログラムから前記第1の仮想マシン用プログラムに提供される前記チャンネル識別子を一時的に記憶する記憶部を有し、前記チャンネル識別子前記仮想マシンが前記第1の仮想マシン用プログラムを起動後に前記記憶部を介して前記第1の仮想マシン用プログラムに提供するように構成した
    ことを特徴とする放送受信装置。
  2. 前記放送受信装置は更に、
    前記放送に含まれる第1の仮想マシン用プログラムを記憶する第1記憶手段と、
    前記再生プログラムを記憶する第2記憶手段とを備える
    ことを特徴とする請求項1記載の放送受信装置。
  3. 前記チャンネル再生手段は、チャンネルに含まれる映像と音声を再生する
    ことを特徴とする請求項1記載の放送受信装置。
  4. 前記チャンネルには、第2の仮想マシン用プログラムが含まれ、
    前記放送受信装置は更に、前記再生すべきチャンネルのチャンネル識別子に基づく映像、音声の再生を前記チャンネル再生手段に指示し、および前記チャンネル識別子に基づく前記第2の仮想マシン用プログラムの起動を前記仮想マシンに指示するサービス再生手段を備える
    ことを特徴とする請求項3記載の放送受信装置。
  5. 前記サービス再生手段は、少なくとも、その一部を仮想マシンによって実行され、
    前記仮想マシンが前記第1の仮想マシン用プログラムを起動した後は、前記サービス再生手段が、前記第1の仮想マシン用プログラムから、前記再生すべきチャンネルのチャンネル識別子を受け付けることができるように構成するとともに、
    前記仮想マシンが前記第1の仮想マシン用プログラムを起動した後は、前記再生プログラムが、前記入力手段からの指示を受け取ることができないように構成した
    ことを特徴とする請求項4記載の放送受信装置。
  6. 記サービス再生手段が再生すべきチャンネルのチャンネル識別子受け付けを開始するまでは、前記再生プログラムが、再生すべきチャンネルのチャンネル識別子に基づいて前記チャンネル再生手段に前記再生すべきチャンネルの再生を指示するように構成した
    ことを特徴とする請求項5記載の放送受信装置。
  7. 前記放送受信装置は更に、前記サービス再生手段が再生すべきチャンネルのチャンネル識別子の受け付けを開始したことを前記再生プログラムに通知するサービス受付開始通知手段を備え
    前記サービス受付開始通知手段が再生プログラムへ前記通知を行った後、前記再生プログラムは、再生すべきチャンネルのチャンネル識別子を前記サービス再生手段に与えるように構成した
    ことを特徴とする請求項記載の放送受信装置。
  8. コンピュータ読み取り可能な記録媒体であって、
    請求項1記載の放送受信装置が備える手段としてコンピュータに機能させるプログラムが記録されている
    ことを特徴とする記録媒体。
JP2004223194A 2003-08-05 2004-07-30 放送受信装置 Expired - Fee Related JP4243571B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US49232803P 2003-08-05 2003-08-05

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2008255889A Division JP2009151750A (ja) 2003-08-05 2008-10-01 放送受信装置

Publications (3)

Publication Number Publication Date
JP2005056416A JP2005056416A (ja) 2005-03-03
JP2005056416A5 JP2005056416A5 (ja) 2008-11-13
JP4243571B2 true JP4243571B2 (ja) 2009-03-25

Family

ID=34193108

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2004223194A Expired - Fee Related JP4243571B2 (ja) 2003-08-05 2004-07-30 放送受信装置
JP2008255889A Withdrawn JP2009151750A (ja) 2003-08-05 2008-10-01 放送受信装置

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2008255889A Withdrawn JP2009151750A (ja) 2003-08-05 2008-10-01 放送受信装置

Country Status (8)

Country Link
US (1) US7089554B2 (ja)
EP (1) EP1652083A2 (ja)
JP (2) JP4243571B2 (ja)
KR (1) KR20060120583A (ja)
CN (1) CN1864139A (ja)
CA (1) CA2542759A1 (ja)
MX (1) MXPA06001049A (ja)
WO (1) WO2005017675A2 (ja)

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7912220B2 (en) * 2001-02-05 2011-03-22 Broadcom Corporation Packetization of non-MPEG stream data in systems using advanced multi-stream POD interface
KR100725386B1 (ko) * 2004-09-25 2007-06-07 삼성전자주식회사 가상 머신 어플리케이션을 실행하는 방법 및 그 방법을이용한 디지털 방송 수신기
CN101112094A (zh) * 2005-02-01 2008-01-23 松下电器产业株式会社 Java条件接收装置
US7649949B2 (en) * 2005-07-28 2010-01-19 Sony Corporation Multipurpose television module
US20070091919A1 (en) * 2005-10-24 2007-04-26 Sandoval Francis R Method and system of supporting enhanced television signaling
JP2007282067A (ja) * 2006-04-11 2007-10-25 Hitachi Ltd デジタル放送受信装置
JP5028904B2 (ja) * 2006-08-10 2012-09-19 ソニー株式会社 電子機器、および起動方法
US8004617B2 (en) * 2006-08-30 2011-08-23 Ati Technologies Ulc Stand-by mode transitioning
JP5197159B2 (ja) * 2007-06-07 2013-05-15 キヤノン株式会社 プログラム起動装置及びプログラム起動方法
US8634310B2 (en) * 2007-06-26 2014-01-21 Qualcomm Incorporated Methods and apparatus for improved program acquisition for use with MPEG-2 based systems
ATE490638T1 (de) * 2007-07-23 2010-12-15 Ericsson Telefon Ab L M Verfahren und vorrichtung zur verwendung in einem kommunikationsnetz
WO2009019828A1 (ja) * 2007-08-03 2009-02-12 Panasonic Corporation 受信装置
US8392932B2 (en) * 2008-06-25 2013-03-05 Panasonic Corporation Information processing device for causing a processor to context switch between threads including storing contexts based on next thread start position
JP5396821B2 (ja) * 2008-11-05 2014-01-22 ソニー株式会社 情報処理装置、情報処理方法及びプログラム
US8260876B2 (en) * 2009-04-03 2012-09-04 Google Inc. System and method for reducing startup cost of a software application
KR20110010052A (ko) * 2009-07-14 2011-01-31 삼성전자주식회사 방송 네트워크 및 인터넷 네트워크에 접속 가능한 클라이언트의 어플리케이션을 수신하는 방법 및 장치
JP5512324B2 (ja) * 2010-02-17 2014-06-04 三菱電機株式会社 映像再生装置及び起動方法
JP5742245B2 (ja) * 2011-01-21 2015-07-01 村田機械株式会社 画像形成装置
US8874485B2 (en) * 2011-12-16 2014-10-28 Palo Alto Research Center Incorporated Privacy-preserving behavior targeting for digital coupons
CN104066485B (zh) 2012-01-24 2017-03-08 索尼电脑娱乐公司 信息处理设备和信息处理系统
WO2015128914A1 (ja) * 2014-02-27 2015-09-03 三菱電機株式会社 ソフトウェア搭載機器及びソフトウェア更新方法
JP5748879B2 (ja) * 2014-03-26 2015-07-15 三菱電機株式会社 映像再生装置及び起動方法
JP6221973B2 (ja) * 2014-07-14 2017-11-01 株式会社デンソー 表示制御装置及び表示制御プログラム
RU2583197C1 (ru) * 2015-04-07 2016-05-10 Акционерное общество "Каменскволокно" (АО "Каменскволокно") Шестеренный дозирующий насос

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AUPO960197A0 (en) * 1997-10-03 1997-10-30 Canon Information Systems Research Australia Pty Ltd Multi-media editing method and apparatus
US6539433B1 (en) * 1998-09-30 2003-03-25 Matsushita Electric Industrial Co., Ltd. System for distributing native program converted from Java bytecode to a specified home appliance
US6519594B1 (en) * 1998-11-14 2003-02-11 Sony Electronics, Inc. Computer-implemented sharing of java classes for increased memory efficiency and communication method
CA2373036A1 (en) 1999-07-13 2001-01-18 Sun Microsystems, Inc. Methods and apparatus for managing an application according to an application lifecycle
US6874145B1 (en) * 1999-07-13 2005-03-29 Sun Microsystems, Inc. Methods and apparatus for implementing an application lifecycle design for applications
EP1146749A1 (en) * 2000-04-07 2001-10-17 Canal+ Technologies Société Anonyme Apparatus and method for testing applications
US20020112002A1 (en) * 2001-02-15 2002-08-15 Abato Michael R. System and process for creating a virtual stage and presenting enhanced content via the virtual stage
US7376414B2 (en) * 2001-05-11 2008-05-20 Varia Mobil Llc Method and system for inserting advertisements into broadcast content
WO2003014867A2 (en) * 2001-08-03 2003-02-20 John Allen Ananian Personalized interactive digital catalog profiling
US20030110503A1 (en) * 2001-10-25 2003-06-12 Perkes Ronald M. System, method and computer program product for presenting media to a user in a media on demand framework
US20030135633A1 (en) * 2002-01-04 2003-07-17 International Business Machines Corporation Streaming and managing complex media content on Web servers
WO2003096669A2 (en) * 2002-05-10 2003-11-20 Reisman Richard R Method and apparatus for browsing using multiple coordinated device

Also Published As

Publication number Publication date
CN1864139A (zh) 2006-11-15
WO2005017675A2 (en) 2005-02-24
JP2009151750A (ja) 2009-07-09
US20050034123A1 (en) 2005-02-10
WO2005017675A3 (en) 2005-11-03
KR20060120583A (ko) 2006-11-27
EP1652083A2 (en) 2006-05-03
US7089554B2 (en) 2006-08-08
JP2005056416A (ja) 2005-03-03
MXPA06001049A (es) 2006-04-11
CA2542759A1 (en) 2005-02-24

Similar Documents

Publication Publication Date Title
JP4243571B2 (ja) 放送受信装置
KR101193347B1 (ko) 다운로드 실행 장치
US9264757B2 (en) Service executing apparatus
US8850511B2 (en) Program replacing method
JP2008523645A (ja) デジタル放送録画装置
JPWO2005099250A1 (ja) プログラム実行装置
JP4149414B2 (ja) プログラム置き換え方法およびプログラム置き換え装置
JP2005073239A (ja) サービス実行装置
JP2009094702A (ja) 操作履歴を記憶する情報処理装置
US20130191853A1 (en) Program execution method and program execution apparatus
JP4149502B2 (ja) プログラム置き換え方法およびプログラム置き換え装置
JP4554659B2 (ja) プログラム置き換え方法およびプログラム置き換え装置
JP4728307B2 (ja) プログラム置き換え方法およびプログラム置き換え装置
JP2010011115A (ja) 放送受信装置
JP2008187333A (ja) プログラム実行装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070720

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20071023

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20081001

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20081001

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20081009

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20081014

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20081112

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20081202

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20090105

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120109

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees