以下に、本発明の実施の形態について図面を参照して説明する。図1に示したような、送信装置1、衛星2、および受信装置3から構成されるシステムに対して本発明を適用した場合について以下に説明する。図8は、本発明を適用した送信装置1の構成を示す図である。なお、図2に示した従来の送信装置1と同一の部分には、同一の符号を付し、適宜、その説明は省略する。
送信装置1は、VTRカート14と同様の構成からなるVTRカート61を備えている。VTRカート61のビデオ出力端子とオーディオ出力端子は、それぞれビデオエンコーダ62、オーディオエンコーダ63に接続されている。ビデオエンコーダ62、オーディオエンコーダ63の出力は、それぞれ多重化部64に出力され、多重化部64の出力は、サーバ65に出力される。
多重化部64は入力された信号を時分割多重化する。多重化部64が行う時分割多重の方式としては、例えば、MPEG2 TS(ISO13818−1)を採用することが可能である。なお、多重化部64が行う多重化は入力が2つだけであり、さらにPIDが固定であり、PSI等の情報も無いため、多重化部64を制御するための制御部(多重化部17を制御するために設けられている多重化制御部19に対応する制御部)を設ける必要はない。
多重化部64の出力は、イントラピクチャ(Intra Picture)検出部66にも供給される。イントラピクチャ検出部66は、入力されたビットストリームからイントラピクチャの位置を検出する。そして、検出された全てのイントラピクチャに対して、ビットストリーム先頭からの時間的なオフセットと、バイトオフセットを組にしたデータが作成され、サーバ65に出力される。このようなデータを「位置情報ファイル」と称する。サーバ65は、位置情報ファイルを記憶する。
サーバ65の出力は、暗号化部67およびスイッチ68を介して多重化部17に入力される。制御部11は暗号化部67に対して、暗号化のための鍵を供給する。また、制御部11は暗号を解くための鍵と、その他の情報をスイッチ68を介して多重化部17に供給する。サーバ65に保存されている位置情報ファイル、あるいは、制御部11からの鍵等の情報はトランスポートストリームに多重化されて受信装置3に供給される。多重化部17には、制御部11から、コントロールコマンドと称するデータも入力される。
また、制御部11は、事前に供給する番組の供給や提供を制御するコントロールコマンドを多重化部17に供給する。スイッチ68を介して多重化部17に入力されるデータはデータストリームと称する。なお、多重化部17からECC/変調部20に渡されるデータのビットレートは24Mbpsとする。
次に、図8に示した送信装置1の動作について説明する。図8に示した送信装置1では、送信された番組が、リアルタイムに受信側で視聴することができる通常の放送と、送信と同時刻にリアルタイムには視聴出来ないが、プライムタイムに視聴できる番組をプライムタイム以外の時間帯で、予め受信装置3に対して送信しておく放送(提供)とがある。
この2つの放送について説明する。ただし、以下の説明においては、適宜、リアルタイムに送信された番組が視聴できる送信を放送と称し、リアルタイムに送信された番組が視聴できない送信を提供と称する。
図9は、送信装置1側のチャネル構成を説明する図である。プライムタイム(ここでは19時乃至23時の4時間とする)は2チャネル、それ以外の時間帯は1チャネルである。なお、複数のチャネルが含まれる1つの伝送用のチャネルを伝送チャネルと称し、以下の説明において、特に説明がない場合、チャネルとは視聴者が認識できるチャネルのことを示すとする。
また、チャネルAの番組は、24時間、受信した側で視聴可能な番組であり、チャネルBの番組は、プライムタイムの間だけ、受信した側で視聴可能な番組である。
ここに示したチャネル構成は一例であり、この他にも例えば、3チャネル+3チャネル(24時間3チャネル+プライムタイムは3チャネル追加され6チャネル)等の構成をとることが可能である。
図10は、帯域に関して説明するための図である。図10(A)で示したのは、ここで提供される番組の帯域幅の合計を示している。すなわち、0時から6時までは合計8Mbpsであり、6時から7時までは24Mbpsであり、7時から11時までは48Mbpsであり、11時から0時までは24Mbpsである。なお、放送施設として用意されている帯域は、上述したように終日24Mbpsである。この数値は誤り訂正や変調を行う前のビットレートである。
このため、プライムタイムにユーザに提供される2チャネルの内、1チャネル分の帯域(データ)は事前に受信装置3に提供し、受信装置3側で記憶しておく。図10(B)を参照して説明するに、プライムタイムにおいて提供される帯域幅は48Mbpsだが、リアルタイムに送る事のできる帯域は24Mbpsである。このため、4時間×(48−24)Mbpsの量のデータを事前に受信装置3に送信し、受信装置3側で蓄積させておく。
このため、同日朝の0時から6時までの6時間に24Mbpsの内の16Mbps(=24x4/6)を蓄積用のデータの送信に充てる。この結果、0時から6時までの時間帯のチャネルに対しては8Mbpsの帯域幅が残っている。なお、この設定は一例であり、実際にはもっと複雑な帯域の融通が行われるとしても良い。一般に、事前にデータを送り込む事の可能な帯域幅の合計は、送り込む番組のデータ量より大きい必要がある。
受信装置3側に蓄積されたデータの使用期限が一日未満とした場合、0時から翌日の0時の間で以下の不等式が成立する。
“事前に提供する番組のデータの送信可能な帯域幅の合計”
>“提供する番組のデータ量”
ここで便宜上、プライムタイムに視聴される番組を事前に受信装置3側に送信することを「事前送信」、リアルタイムで送信する事を「直接送信」と呼んで区別する。また、事前に送信される「チャネル」や「番組」を「事前送信チャネル」や「事前送信番組」と称し、リアルタイムに送信される「チャネル」や「番組」を「直接送信チャネル」や「直接送信番組」と称する。
ここでは、プライムタイムに視聴される2チャネルの内、チャネルAのデータは全体として直接送信で送信され、チャネルBのデータは全体として事前送信で送信される。すなわち、チャネルAの番組は24時間に渡り“直接送信”されるのに対し、チャネルBの番組は、一日に4時間分存在するが、全てが“事前送信”される。
図10(B)を参照するに、チャネルAの番組は0時乃至6時に8Mbps、6時乃至24時(0時)に24Mbpsの各ビットレートで、それぞれ直接送信される。チャネルBの番組は0時乃至6時に16Mbpsのビットレートで事前送信され受信装置3側に蓄積され、19時乃至23時の間に提供される(視聴可能とされる)。
図10(C)を参照してさらに説明するに、例えば、10月9日の0時乃至6時の間には、1つの伝送チャネルにおいて、チャネルAの番組のデータである、データA−1,A−2・・・と、チャネルBの番組のデータである、データB−1,B−2・・・が、受信装置3に対して送信される。
これに対して、6時乃至0時(24時)の間には、1つの伝送チャネルにおいて、チャネルAの番組データである、データA−1,A−2・・・のみが受信装置3に対して送信される。
図11は、図9に示した10月10日のプライムタイムの前後を拡大し、番組の区切りと番組名を追加して示した図である。図11において、チャネルAは、10月10日の18時乃至19時まで“番組A”を提供する。同様に19時乃至20時まで“番組B”、20時乃至21時まで“番組C”、21時乃至23時まで“番組D”が提供される。また、チャネルBは、19時乃至21時まで“番組X”を提供し、21時乃至23時まで“番組Y”を提供する。
図11に示した番組提供(放送)スケジュールに対応する編成データを図12に示す。編成データは、複数の番組毎のレコードから構成されるデータである。編成データの構成は、図7に示したチャネルAだけのときの編成データの構成に、各番組が直接送信であるか、あるいは事前送信であるかを示すフラグが設けられる。図12に示した編成データでは、チャネルAは全て直接送信であり、チャネルBは全て事前送信である。
事前に送り込む必要のあるチャネルBの番組は、事前に作成しておく必要が有る。チャネルAの番組は、プライムタイムを含めて24時間リアルタイムに送信される。従って、チャネルAの番組は、生放送でも良い(事前に作成しておく必要がない)。
図13に、事前送信する必要があるチャネルBに関する送信装置1側のスケジュールを示した図である。図13では、10月10日の19時乃至23時に提供する番組に関するスケジュールを示す。その他の日付に対しても日付のずれが発生するだけで相対的な関係は同じであるので、その説明は省略する。
なお、緊急時等には、より柔軟な運用が行われるようにし、事前のスケジュールを変更して番組を提供することも可能である。
まず、該当番組(該当事前送信番組)に関する編成データは、少なくとも提供当日の1週間前までに送信装置1に入力される。ここでは、10月10日の編成データは、10月2日までに入力される。また、直接送信の番組に関する編成データも同様に放送当日の1週間前までに入力される。なお、1週間前というのは後の処理を円滑に行うための期限であり、後の処理が円滑に行えるのであれば、1週間前でなくても良い。
編成データが入力されるとき、事前送信の1つの番組に対して1つのファイル名が決定される。このファイル名は、送信装置1と受信装置3において、各番組のデータ(ファイル)を識別するために使用される。編成データは、EPGデータとして番組提供当日の1週間前から提供時刻までの間、一定の間隔で送信装置1から受信装置3に対して送信される。
本実施の形態では、2系統のEPG情報の経路が設けられている。一方は、直接送信の番組に対するEPG情報のみが送信される。他方は、直接送信と事前送信の両方の種類の番組に関するEPG情報が送信される。すなわち、直接送信の番組に関するEPG情報は両方の方式で送信され、事前送信の番組に関するEPG情報は後者の方式のみで送信される。事前送信の番組に関してはファイル名も同時に送られる。
このように、2系統のEPG情報の経路を設けることにより、一方は、事前送信を受け入れられない受信装置3、すなわち、詳細は後述するが、事前送信されてきた番組のデータを記憶するための記憶装置を備えていない受信装置3のために設けられており、他方は、事前送信を受け入れられる受信装置3のために設けられている。
受信装置3は、受信したEPGのデータをユーザに示し、ユーザは、その示されたデータを基に、番組予約等などの処理を行うことができる。
編成データの送信装置1への入力が終了されると、次の処理として、事前送信される番組のVTRテープの締め切りがある。番組提供前日の9時までに、事前送信番組のコンテンツの記録されたVTRテープを用意する。この例では、10月9日の9時までに、図11に示す2つの番組“番組X”と“番組Y”に、それぞれ対応する2本のVTRが用意され、送信装置1内のVTRカート61に格納される。
番組提供前日の9時から、事前送信を行う番組のデータのエンコードが行われ、「ストリームファイル」が作成される。エンコードの作業は、前日中に終了するように行われるのが好ましい。従って、エンコードの為にかかる時間を考慮し、事前送信される番組のデータは、事前送信される前日の9時までに作成されていることが好ましい。勿論、エンコードを行う時間が確保される状態であれば、事前送信される前日の9時以降に、番組のデータの作成が終了されても良い。
この時、同時に、イントラピクチャの位置を列挙した「位置情報ファイル」を作成する。ビデオ符号化において可変レートによる符号化を行う時など、時間情報から位置情報に変換するための情報が必要となるからである。本実施の形態において、ビデオデータの符号化にMPEG2ビデオを採用した場合、各イントラピクチャに対して時刻情報と位置情報を列挙したデータが作成される。
番組のデータをエンコードするにあたり、各番組のビットレートが決定される。これは、エンコードを開始する前に決定しておく事も可能であるし、エンコードしながら決定する事も可能である。また、複数の番組に対して異なる平均ビットレートを設定する事も可能であるし、番組内でレートを可変にする事も可能である。ビットレートの決定は、どのような方式が採用されても良い。
番組提供当日の0時から、事前送信する番組の送信、すなわち、ストリームファイルの受信装置3への送信が開始される。図10を参照して説明したように、このイベントは0時に開始され、6時に終了するように行われる。送信装置1は受信装置3に対して、最初に、受信装置3側で記憶されている番組のデータを全て消去するための全消去コマンドを発行する。
詳細は後述するが、受信装置3は、内部に事前送信された番組のデータを記憶する記憶装置を備えており、全消去コマンドを受信すると、その記憶装置に記憶されているデータを消去し、新たなデータが記憶できる状態にする。消去されるデータは、この場合、10月9日のプライムタイムに提供された番組(プライムタイムのときに視聴可能とされていた番組)に関するデータである。このように、本実施の形態においては、受信装置3側で記憶される番組のデータは、1日分(この場合、チャネルBの4時間分のデータ)のみが記憶され、夜の間に更新されるようにする。
送信装置1は、全消去コマンドを発行した後に、番組を符号化したストリームファイルの送信を行う。次に、送信したストリームファイルに対応する位置情報ファイルの送信を行う。そして、2種類のファイルの送出作業は番組の数だけ繰り返される。このとき、ストリームファイルは暗号化され送出される。受信装置3側では、暗号化されたストリームファイルが受信され、そのまま記録される。位置情報ファイルは、暗号化されずに、そのまま送信される。
このようにして、プライムタイムよりも前の時刻において、受信装置3側で受信し、記憶された番組のデータは、番組提供当日のプライムタイムとして設定された19時から提供が開始される。提供が開始されると、送信装置1は、受信装置3に対して、時刻情報、番組の情報、鍵などを送付する。鍵は暗号化されたファイルを元に戻すために用いられものである。
受信装置3でユーザが事前送信の番組を選択すると、受信装置3は、EPGと共に送られて来たファイル名によりファイルを特定し、送られて来た鍵でファイルの暗号を解き、送られて来た時刻情報に同期させて該当番組をユーザに提供する。
事前送信について、さらに詳細に説明する。事前送信番組を送信するために、本実施の形態においては、トランスポートストリーム上の2つのストリームを用いる。1つめのストリームは、コントロールストリームであり、事前送信の制御を行うために用いられる。もう1つのストリームは、データストリームであり、番組の事前送信時に、ストリームファイルと位置情報ファイルのダウンロードの際に用いられる。また、番組の提供時には時刻情報と鍵の送信にも用いられる。
図14を参照して、事前送信の手順をさらに説明する。まず時刻t1において、送信装置1は“全消去コマンド”をコントロールストリームにて送信する。このコマンドを受信した受信装置3は、以前に事前送信されて記憶装置に記憶されていたファイルを全て消去する。この処理により、受信装置3側で、事前送信されるファイルのダウンロードに必要な空き容量が確保される。
従って、本実施の形態のように、事前送信されるのは、1チャンネルで4時間分の番組のデータであるとすると、受信装置3側では、その分のデータだけ記憶できる容量の記憶装置を備えるようにすればよい。
次に、時刻t2において、送信装置1の“本体ダウンロード”のコマンドがコントロールストリームで送信される。このコマンドは、ストリームファイルをデータストリームにて規定時間の後に送出する事を示す。このコマンドの内部には、これから送出するストリームファイルの名前(ファイル名)と大きさが含まれている。本体ダウンロード予告のコマンドを受信した受信装置3は、ストリームファイルのダウンロードに対しての準備を行う。
時刻t3において、送信装置3は、ストリームファイルをデータストリームで送信を開始する。ストリームファイルは暗号化されて送信される。受信装置3では、受信したファイルを記憶装置に記憶する。この時、本体ダウンロード予告コマンドで指定されたファイル名で管理される。
時刻t4において、送信装置1は、“位置情報ダウンロード予告”のコマンドをコントロールストリームで流す。このコマンドは、位置情報ファイルをデータストリームにて規定時間の後に送出する事を示す。このコマンドの内部には、これから送出する位置情報ファイルの名前(ファイル名)と大きさが含まれている。“位置情報ダウンロード予告”のコマンドを受信した受信装置3は、位置情報ファイルのダウンロードに対しての準備を行う。
時刻t5において、送信装置1は、「位置情報ファイル」をデータストリームで送信を開始する。位置情報ファイルは暗号化されずに送信される。受信装置3は、受信したデータを記憶部に蓄積する。この時、“位置情報ダウンロード予告”のコマンドで指定されたファイル名で管理される。
ここまでの一連の処理で、事前送信の必要な2番組のファイル群の内、1番組分の2つのファイルが受信装置3に送り込まれたので、引き続き2番目の番組用のファイルの送信が行われる。即ち、時刻t6に“本体ダウンロード予告”のコマンドの送信、時刻t7に「ストリームファイル」の送出を開始、時刻t8に“位置情報ダウンロード予告”コマンドの送信、時刻t9に「位置情報ファイル」の送信の開始というように、一連の処理が実行される。
なお、本実施の形態においては、各コマンドを1回づつしか送信しないが、各コマンドをそれぞれ複数回ずつ送信する事により、伝送系のエラーに対してロバストなシステムを構築することができ、そのようにしても良い。また、図14における時刻(図中上側に図示)と各時刻t1乃至t9(図中下側に図示)とは、対応しているものではなく、例えば、時刻t6において“本体ダウンロード”のコマンドは、時刻3時に送信されるように図示されているが、3時でなく、処理の流れのなかで送信できるタイミングで送信されればよい。
事前送信番組の提供の直前に受信装置3に蓄積されている情報は、以下の通りである。EPGの情報は1週間前から送られている。EPGデータには、チャネル、番組名、番組の始まる時刻、持続時間、事前送信か直接送信か等の情報が記述されている。事前送信の番組に対してはファイル名も追加されている。また、事前送信の番組に対して「ストリームファイル」と「位置情報ファイル」が事前にロードされている。
図15を参照して事前送信された番組の提供(視聴者が視聴できるようにする処理)について説明する。事前送信の提供時刻には、コントロールストリームは使用されず、データストリームのみが使用される。
まず、事前送信の番組提供時刻(この場合、19時)より少し前の時刻t21に送信装置1は、時刻情報を受信装置3に送信を開始する。これは、受信装置3が保持している時刻情報を送信装置1の時刻情報と一致させるためのものである。まだ、番組提供時刻になっていないため、ファイル名と鍵は意味のない値が送られている。トランスポートパケットにはPCRが付加される。
時刻t22の番組提供時刻(この場合19時)になると、送信装置1は、時刻情報に加えて、番組Xに対応するファイル名やストリームファイルを暗号化した時に用いられた暗号の鍵をデータストリームで流す。
時刻t23の番組切り替え時(この場合21時)になると、送信装置1は、番組Yに対応するファイル名と暗号の鍵に、送信する情報を切り替える。すなわち、時刻t23以降に送信装置1は、時刻情報、番組Yのファイル名、番組Yのストリームファイルを暗号化した時に用いられた暗号の鍵をデータストリームで送信する。時刻t24において、時刻情報や、その他の情報の送信が終了される。
受信装置3側において、該当番組開始以前に、ユーザが、EPG情報あるいは新聞雑誌の情報により、事前送信番組のあるチャネルを選択した場合、受信装置3は、タイマ等の動作により、指定された時刻に、上述した動作を同様に行う。
受信装置3は、EPGの情報を参照し、事前送信番組か否かを確認する。事前送信番組でない場合には従来と同じ動作により処理される。事前送信番組であると判断された場合、チューナに指令して事前送信のデータストリームを選択する。このストリームでは時刻・鍵データが伝送されている。時間情報には現在時刻、番組開始時刻、該当番組に使用されるファイル名、暗号を解く鍵が含まれている。
また、該当トランスポートパケットから取り出されたPCRが用いられて受信装置3のクロックが放送局のクロックに同期される。受信装置3は、現在時刻と番組開始時刻の差を算出する。算出された値は、番組が開始してからの経過時間を示している。このため、予め蓄積されているファイルの先頭から、算出された時間だけスキップした位置を探し出し、その位置からの再生が行なわれる。
受信装置3は、経過時間と「位置情報ファイルの情報」を用いて、ストリームファイル内の、現在時刻に対応する位置を求める。そして、ストリームファイルの対応する位置からの読み出しが行なわれ、暗号が解かれ、デコードされることにより映像と音声の信号が出力される。このようにして、事前送信された受信装置3内部に蓄積されているストリームファイルが、放送局から送られる時計に同期して再生される。
ここで、EPGデータのフォーマットについて説明する。以下に、表1としてEPGデータのフォーマットを示す。
[表1]EPG用
payload(){ No. of Bits
num_of_ch 8
for (i=0;i<num_of_ch;i++){
num_of_programs 8
for (j=0;j<num_of_programs){
DIRECT_or_PRE-LOAD 8
month 8
day 8
start_time_hour 8
start_time_min 8
length_hour 8
length_min 8
len_program_name 8
for (i=0;i<len_program_name;i++){
program_name_data 8
}
if (DIRECT_or_PRE-LOAD==DIRECT){
}
if (DIRECT_or_PRE-LOAD==PRE-LOAD){
len_filename 8
for (i=0;i<len_filename;i++){
filename_data 8
}
}
attribute_length 8
for (j=0;j<attribute_length;j++){
attribute_data 8
}
}
}
for (stuffing){
stuffing_byte 8
}
}
EPGはトランスポートパケットに格納されて送られるため、フォーマットはトランスポートパケットのデータ格納部分(data_byteの部分)をpayload()として定義される。なお、トランスポートパケットは全体で188バイトと比較的短い構造であるため、1週間分のEPGデータ全体を送出するためには、複数のトランスポートパケットが送信される。
上述したEPGデータのフォーマットについて説明するに、payload()の先頭にチャネル数(num_of_ch)が置かれている。payload()の中でEPGデータはチャネル毎にまとめて記述されており、チャネル数(num_of_ch)に引き続き、チャネル毎の情報がチャネル数(num_of_ch)の数だけ繰り返される。
チャネル毎の情報の先頭には番組数(num_of_programs)が置かれている。これはチャネル毎の構造の中に含まれるEPGデータの番組数を示している。引き続き、番組毎の情報が番組数(num_of_programs)の数だけ繰り返される。
番組毎の情報の先頭には、直接送信されるか事前送信されるかを示すフラグ(DIRECT_or_PRE-LOAD)が置かれている。次に番組の提供される日時が月(month)、日(day)、開始時刻の時(start_time_hour)と分(start_time_min)で表される。次に、番組の長さが、時間(length_hour)と分(length_min)で表される。次に番組名(program_name)が置かれる。
次に、事前送信の番組に限って、ファイル名が置かれる。
最後に、属性のデータが置かれる。この属性のデータとしては、例えば、番組の解説等が置かれる。このような情報を詰め込んでも、payload()にまだ空きがある場合、スタッフィング(stuffing)が行われる。
次に、事前送信におけるコントロールストリームにて送信されるコントロールコマンドについて説明する。以下に表2として、コントロールコマンドのフォーマットを示す。
[表2] コントロールコマンド
payload(){ No. of Bits
command_flag 8
if (command_flag == '0000 0001'){ // コマンド 1 - 全消去
}
if (command_flag == '0000 0010'){ // コマンド 2 - 本体ダウンロード予告
len_filename 8
for (i=0;i<len_filename;i++){
filename_data 8
}
size 64
}
if (command_flag == '0000 0011'){ // コマンド 3 - 位置情報ダウンロード予告
len_filename 8
for (i=0;i<len_filename;i++){
filename_data 8
}
size 64
}
for (stuffing){
stuffing_byte 8
}
}
上述したコントロールコマンドは、トランスポートパケットに格納されて送られるため、フォーマットはトランスポートパケットのデータ格納部分(data_byteの部分)をpayload()として定義される。なお、トランスポートパケットは全体で188バイトと比較的短い構造であるが、ここで定義するコマンドは、その188バイトよりも小さいため、1つのコントロールコマンドに対して1つのトランスポートパケットが占有され、トランスポートパケットのpayload()の余った部分にはstuffingがされる。
上述したコントロールコマンドのフォーマットについて説明するに、payload()の先頭にコマンドの種類を表す情報(command_flag)が置かれる。command_flagの値が‘00000001’の場合、“全消去コマンド”を、‘00000010’の場合、“本体ダウンロード予告”を、‘00000011’の場合、“位置情報ダウンロード予告”を、それぞれ示す。
“全消去コマンド”(command_flag='00000001')の場合、このコマンドには引き数がないため、該当トランスポートパケットのpayload()はstuffingで充当される。
“本体ダウンロード予告コマンド”(command_flag='00000010')の場合、ファイル名(len_filenameとfilename_data)とその大きさ(size)が置かれ、残りの部分はstuffingで充当される。
“位置情報ダウンロード予告コマンド”(command_flag='00000011')の場合、ファイル名(len_filenameとfilename_data)とその大きさ(size)が置かれ、残りの部分はstuffingで充当される。
次に、事前送信時、および、事前送信番組の提供時にデータストリームにて送信される信号のフォーマットについて説明する。以下に表3として、そのフォーマットを示す。
[表3] データ/時刻・鍵用
payload(){ No. of Bits
command_flag 8
if (command_flag == '0000 1001'){ // コマンド 9 - ダウンロードデータ
num_of_data 8
for (i=0;i<num_of_data;i++){
data_byte 8
}
}
if (command_flag == '0000 1010'){ // コマンド 10 - 鍵
PTS 33
year 16
month 8
day 8
hour 8
minute 8
second 8
len_filename 8
for (i=0;i<len_filename;i++){
filename_data 8
}
start_time_hour 8
start_time_min 8
length_hour 8
length_min 8
key 128
}
for (stuffing){
stuffing_byte 8
}
}
上述した事前送信時および事前送信番組の提供時に送信されるデータは、トランスポートパケットに格納されて送られるため、フォーマットはトランスポートパケットのデータ格納部分(data_byteの部分)をpayload()として定義される。なお、トランスポートパケットは全体で188バイトと比較的短い構造であるため、ファイルダウンロードの際には多数のトランスポートパケットが用いられて伝送が行われる。
上述したデータのフォーマットについて説明するに、payload()の先頭にデータの種類を表す情報(command_flag)が置かれる。command_flagの値が‘00001001’の場合は“ダウンロードデータ”を、‘00001010’の場合には“鍵と時刻”を示す。
“ダウンロードデータ”の場合、command_flagに続けてデータ数(num_of_data)が置かれ、引き続きデータ数(num_of_data)だけのデータバイトが置かれる。そして、ここまでの情報でpayload()にまだ空きがある場合には、スタッフィング(stuffing)が行われる。
“鍵と時刻”の場合、command_flagに続けてPTS(Presentation Time Stamp)が置かれる。このPTSは引き続き置かれている“現在時刻”のタイミングを示すものである。
次に、現在時刻の年(year)、月(month)、日(day)、時(hour)、分(minute)、秒(second)が置かれる。次に、該当番組に使用されるファイル名(len_filename、filename_data)、該当番組の開始時刻(start_time_hour、start_time_min)、および番組の長さ(length_hour、length_min)が置かれる。そして最後に暗号を解くための鍵(key)が置かれる。ここまでの情報でpayload()にまだ空きがある場合、スタッフィング(stuffing)が行われる。
“PTS”と“現在時刻”を使用する方法について説明する。受信装置3は、トランスポートストリームのPCRに同期したSTCを保持している。これは、送信装置1と受信装置3のクロックを同期させるためである。PTSとSTCが等しくなった瞬間が“現在時刻”の値の示す時刻であり、受信装置3は、その時刻に内部時計を設定する。また、現在時刻と該当番組の開始時刻の差を求める事により、該当番組開始からの経過時間を認識することができる。
次に、位置情報ファイルのフォーマットについて説明する。以下に表4として、位置情報ファイルのフォーマットを示す。
[表4] 位置情報ファイル
location_file(){ No. of Bits
num_entry 32
for (i=0;i<num_entry;i++){
offset_hour 8
offset_minute 8
offset_second 8
offset_frame 8
offset_byte 64
}
}
上述した位置情報ファイルのフォーマットについて説明するに、先頭にエントリ数(num_entry)が置かれ、位置情報ファイル中のエントリの数が示される。エントリ毎の情報は、まず、ストリームファイルの先頭からの時刻でのオフセット、すなわち先頭からの経過時間が、時(offset_hour)、分(offset_min)、秒(offset_min)、およびフレーム(offset_frame)として記述される。最後に、「ストリームファイル」先頭からのバイトオフセット(offset_byte)が置かれる。
なお、各エントリは、ストリーム先頭からの出現順、すなわち時刻及びバイトオフセットの小さい順に並んでいる。
上述したようなフォーマット形式のデータを扱う、図8に示した送信装置1の動作について説明する。本実施の形態では、送信装置1の動作としては、送信した番組が受信側においてリアルタイムに視聴できる番組の放送(従来放送)と、リアルタイムではなく、事前に送信された番組を受信側において所定の時刻になったら視聴できるようにする番組の提供とがあるが、まず、番組の放送の際の送信装置1の動作について、図16のフローチャートを参照して説明する。
ステップS11において、送信装置1の管理者は、制御部11のメモリ12(図8)に、図12に示したような編成データを入力する。また、各タイミングで放送すべきコンテンツはVTRテープに記録され、VTRカート14にセットされる。
図8に示した送信装置1には生放送を行うための設備は図示していないが、生放送を行う場合、VTRカート14に番組が記録されたVTRテープがセットされる代わりに、該当時間になったら、VTRカート14と並列に設置された放送収録スタジオ(図示せず)から、ビデオとオーディオの出力が開始され、それぞれビデオエンコーダ15とオーディオエンコーダ16に入力されるようにすれば良い。以下の説明においては、生放送ではない場合を例に挙げて説明する。
ステップS12において、制御部11は、メモリ12に記憶された編成データから、少なくとも当日から1週間先までの情報をEPG発生部18に入力させる。従って、送信装置1の管理者は、図12に示す編成データを該当番組提供の少なくとも1週間前に、制御部11に設定する(メモリ12に記憶させる)必要がある。EPG発生部18は入力された情報を蓄積し、送信装置1で採用されているEPGのフォーマットに変換して多重化部17の端子K3に出力する。なお、EPGとしては、どのようなものを用いても良く、既に使用されているEPGを用いることが可能である。
ステップS13において、制御部11は内部の時計13を参照し編成データに従って、VTRカート14を操作して番組の内容をエンコーダ群に供給する。具体的には、制御部11は、内部の時計13とメモリ12中の編成データを比較参照して、次に再生すべき番組を決定する。そして制御部11は、該当番組の開始時刻以前にVTRカート14に対して番組名を指示し、再生待機状態にする。
番組の指定をうけたVTRカート14は、該当番組の記録されているVTRテープを特定し、内部の搬送装置により該当VTRテープを内部のビデオ再生装置に挿入して、次の指示を待つ。一般的にはこの間、VTRカート14内の上記とは別のビデオ再生装置により放送中の番組が再生され、その信号がエンコーダ群に供給されている。
ステップS14において、該当番組の開始時刻になると、制御部11は、VTRカート14に対して該当番組の再生を指示する。VTRカート14は用意してあったVTR再生装置を再生状態にし、信号を出力させる。VTRカート14から出力されたビデオデータはビデオエンコーダ15に供給され、MPEG2ビデオの形式に符号化され、さらに多重化部17の端子K4に供給される。また、VTRカート14から出力されたオーディオデータは、オーディオエンコーダ16に供給され、MPEG2−AACの形式に符号化され、多重化部17の端子K5に供給される。
ステップS15において、多重化制御部19は、制御部11の指令をうけて、多重化部17を制御する。具体的には、制御部11から、同時に放送する番組数(ここでは1)と、番組に対するビデオ/オーディオストリームの本数(ここではそれぞれ1)の情報を供給され、各ストリームに対するPIDが決定される。また、PCRを伝送するためのPIDも決定される。PIDの情報は多重化部17に供給される。さらに多重化制御部19は、受信装置3で使用するPSIを作成して多重化部17の端子K1に供給する。
多重化部17は、入力された信号、即ち端子K1に入力されたPSI、端子K2に入力されたPCR、端子K3に入力されたEPG、端子K4に入力されたビデオストリーム、および端子K5に入力されたオーディオストリームをMPEG2 TS(ISO13818-1)の方式で時分割多重化する。
ステップS16において、多重化部17の出力が、ECC/変調部20により誤り訂正符号が付加され、さらに変調が行われる。そして、増幅部21で電力増幅が行われた後、アンテナ22から空中に放出される。
このような放送が行われる一方で、上述したように事前送信も行われることにより番組が視聴者に提供される。次に、図17のフローチャートを参照して、事前送信に関わる、図8に示した送信装置1の動作について説明する。
ステップS21において、各番組に関する編成データが、直接送信の番組、事前送信の番組共に、番組提供当日の一週間前までに、送信装置1の管理者により制御部11のメモリ12に入力される。このステップS21における処理は、図16のフローチャートのステップS11の処理と同じ処理であり、一緒に行われる。
編成データが入力される時、制御部11は、事前送信の番組、それぞれに対してユニークな(重複のない)ファイル名を定め、メモリ12に記憶する。ファイル名を決定する方法としては、重複が無ければどのような名前の付け方をしても良く、例えば、順番に番号を振るなどでも良い。ここでは、“番組X”に対してファイル名"番組x"が、“番組Y”に対してファイル名“番組y”が決定されたとする。
制御部11は、メモリ12に格納された編成データのうち、チャネルA、この場合、直接送信のチャネルで提供する番組の編成データに関しては図16のフローチャートを参照して説明したような処理を行い、一方で、チャネルB、この場合、事前送信のチェンネルで提供する番組データの編成データに関しても処理を行う必要がある。
すなわち、チャネルBで提供する番組のために、ステップS22において、制御部11は、メモリ12に記憶された編成データと事前送信番組のためのファイル名情報から、当日から一週間先までの情報をEPG発生部69に入力させる。このとき、事前送信の番組(チャネルB)と直接送信の番組(チャネルA)の両方の情報が入力される。EPG発生部69は、入力された情報を蓄積し、上述したEPGのフォーマットに変換して多重化部17の端子K6に入力する。
多重化部17は、予め決められている新規のEPG用のPIDの値を用い、端子K6に供給されたEPG情報をトランスポートパケットに格納し、他の入力信号と多重化して出力する。この他の入力信号とは、その時刻に放送されている直接送信の番組のデータ等である。
このように、送信装置1において発生されるEPGは、EPG発生部18により発生されるEPGと、EPG発生部69により発生されるEPGとがある。すなわち、ハードディスクなどの番組データを記憶しておく装置を備えていない受信側の装置に対応するために、EPG発生部18により発生される従来のEPGと、対応している受信側の装置の為のEPG発生部69により発生されるEPGとがある。
多重化部17の出力は、ECC/変調部20に入力され、誤り訂正符号の付加及び送信のための変調が行われる。ECC/変調部20の出力は増幅部21に入力され、電力増幅され、アンテナ22に供給され電波として放出される。このような処理が繰り返し行われることにより、編成データは、EPGデータとして番組提供当日の一週間前から提供時刻までの間、一定の間隔で送信される。受信装置3側では受け取ったEPGデータをユーザに示し、ユーザは、番組予約等の用途に使用することができる。
ステップS23において、図13を参照して説明したように、番組提供前日の9時までに、送信装置1の管理者は、事前送信番組のコンテンツの記録されたVTRテープを、VTRカート61に収納する。ここでは、10月9日の9時までに、2つの番組“番組X”および“番組Y”に対応する2本のVTRテープが用意され、事前送信専用のVTRカート61に収納される。
ステップS24において、番組提供前日の9時から、事前送信番組のエンコードが開始される。まず、制御部11は、各番組のビットレートを決定する。この場合、全ての番組(ここでは2つの番組)に対して、24Mbps固定のビットレートでエンコードを行うと決定されたとする。
制御部11は、ビデオエンコーダ62とオーディオエンコーダ63に対して、例えば22Mbpsと0.3Mbpsのビットレートを指定する。24Mbpsに対する残りは、多重化のオーバーヘッド等で消費され、残りはstuffingにより充当される。
制御部11は、ビデオエンコーダ62とオーディオエンコーダ63に対して、エンコードの用意を指示する。また、制御部11は、VTRカート61に対して“番組X”のコンテンツを再生するように指示する。
制御部11はさらに、サーバ65に対して、多重化部64からの出力を"番組X.pre"として、またイントラピクチャ検出部66からの出力を"番組X.cpi"として記憶するように指定する。
VTRカート61により再生された番組Xのコンテンツは、ビデオエンコーダ62によりMPEG2ビデオの形式に、またオーディオエンコーダ63によりMPEG2 AACの方式に、それぞれ符号化され、多重化部64に供給される。
多重化部64は、入力されたビデオストリームとオーディオストリームをMPEG2 TSの方式で時分割多重する。このとき、それぞれのストリームを運搬するトランスポートパケットが持つPIDに、予め定められた値が使用される。多重化部64の出力であるストリームファイルは、サーバ65に入力され、予め設定されたファイル名"番組x.pre"として記憶される。
また、多重化部64の出力は、イントラピクチャ検出部66にも入力される。イントラピクチャ検出部66は、入力された多重化ストリームを解析し、イントラピクチャの位置を検出し、上述した「位置情報ファイル」を作成する。作成された位置情報ファイルは、サーバ65に供給され、ファイル名"番組x.cpi"として記憶される。
“番組X”のエンコードが終了すると、制御部11は、次の番組である“番組Y”のエンコードの処理を開始する。次の“番組Y”のエンコードは、“番組X”のエンコードと同様に行われ、最終的に、サーバ65に記憶される際に、ストリームファイルが、ファイル名"番組y.pre"として、位置情報ファイルが、ファイル名"番組y.cpi"として記憶される。
このような処理を制御部11は、全ての事前送信番組に対して行う。この場合、事前送信番組は2つであるため、2つの“番組X”と“番組Y“に対して処理が行われる。事前送信番組のエンコード作業は、どんなに遅くても前日中に終了するように行われることが好ましい。
なお、番組毎に異なる平均ビットレートでエンコードするようにしても良い。番組の重要度、必要とされる画質等に従い、管理者が制御部11に、そのことを設定し、制御部11が、ビデオエンコーダ62、オーディオエンコーダ63に対して指示を出すことにより可能となる。
また、1つの番組の中で可変レートのエンコードを行うようにしても良い。このようにエンコードが行われる場合、詳細な説明は省略するが、例えば、VTRカート61から番組全体を1度エンコーダ群(ビデオエンコーダ62とオーディオエンコーダ63)に通し、各場面の難しさを検出(判断)した後、もう1度番組全体をエンコーダ群に通し、エンコードを行う。このようなエンコードの仕方については、例えば、特開平6−153152において開示されている方法を用いることが可能である。
ステップS25において、事前送信が開始される。すなわち、番組が提供される当日(視聴者が、番組を視聴可能な日)の午前0時から、事前送信番組の、受信装置3への事前送信が開始される。この事前送信の処理は、図14を参照して説明したように行われる。
事前送信番組を送信するために、本実施の形態では、トランスポートストリーム上の2つのストリームが用いられる。1つめのストリームは、コントロールストリームであり、事前送信の制御を行うために用いられる。図8に示す送信装置1においては、制御部11が発生し、多重化部17の端子K7に供給されトランスポートストリームに多重化されるストリームである。
2つめのストリームは、データストリームである。図8に示す送信装置1において、事前送信時には「ストリームファイル」と「位置情報ファイル」が、サーバ65から暗号化部67を経て、多重化部17の端子K8に供給されトランスポートストリームに多重化される。番組提供時刻には、時刻や鍵が、制御部11により発生され、多重化部17の端子K8に供給され、トランスポートストリームに多重化される。
図10を参照して説明したように、午前0時乃至6時までは、チャネルA、すなわち、リアルタイムに視聴が可能に放送される番組のチャネルの帯域が8Mbpsとされる。この状況を実現するために制御部11は、ビデオエンコーダ15にビットレートを、例えば、6Mbpsに変更するように指示する。この数値は、オーディオエンコード16の出力及び多重化のオーバーヘッド等を含めて、チャネルAが8Mbpsになるように調整した数値である。これにより事前送信のための帯域が16Mbps(=24Mbps−8Mbps)確保される。
ステップS25において、事前送信が開始されると、ステップS26において、“全消去コマンド”がコントロールストリームにて送出される。すなわち、まず制御部11は、“全消去コマンド”を発生する。“全消去コマンド”は、表2を参照して説明したコントロールコマンドのうちの“command_flag”の値が“00000001”に設定されたものであり、残りの部分がstuffingで埋められているものである。制御部11は、発生した“全消去コマンド”を多重化部17の端子K7に供給する。
多重化部17は、予め設定されているコントロールストリーム用のPIDの値を用い、端子K7に供給されたコントロールストリームをトランスポートパケットに格納する。
なお、多重化部17と多重化制御部19は、図2を参照して説明した従来の場合と同様の動作を行っている。すなわち、それぞれの端子K1乃至K8に入力されたデータが、MPEG2 TS方式で時分割多重される。これらのデータは、リアルタイムに視聴可能とされている番組(直接送信の番組)のデータである。
このため、多重化されたコントロールストリームの情報、すなわちこの場合、“全消去コマンド”は、他の入力信号と多重化されて多重化部17から出力される。多重化部17の出力はECC/変調部20、増幅部21、およびアンテナ22における処理を経て、送信される。以下の説明において、多重化部17から出力されたストリームに対する処理は、同様であるので、その説明は省略する。
制御部11は、“全消去コマンド”を送信してから、予め設定された時間が経過するまで次のステップの処理の実行を開始しない。この待ち時間は、例えば、30秒や1分などであり、受信装置3側で“全消去コマンド”が実行(受信)されることにより、受信装置3側に備えられている記憶装置のデータが消去されるのに充分な時間に設定されている。また、この時間は、制御部11が備える時計13により計測される。
次に、事前送信番組の送信が行われるわけだが、まずステップS27において、“本体ダウンロード予告”のコマンドがコントロールストリームで送信される。すなわち、まず制御部11は、“本体ダウンロードコマンド”を発生する。“本体ダウンロードコマンド”は、表2を参照して説明したコントロールコマンドのうちの“command_flag”の値が、“00000010”に設定されたものである。
制御部11は、そのコントロールコマンドとして、ダウンロードさせる(送信する)「ストリームファイル」のファイル名(file_name)、ここでは"画像x.pre"、と、そのファイルの大きさ(size)を記述する。残りの部分は、stuffingで埋められる。制御部11は、発生した“本体ダウンロードコマンド”を多重化部17の端子K7に供給する。
多重化部17は、前述した“全消去コマンド”と同様に、入力されたコマンドを他の入力信号と多重化して出力する。制御部11は、“本体ダウンロードコマンド”を送出してから、予め設定された時間が経過するのを待つ。この時間は、受信装置3側で、ダウンロードされるデータを、備えられている記憶装置に記憶するために必要とされ処理にかかる時間が設定される。
ステップS28において、送信装置1は、「ストリームファイル」をデータストリームで送信する。すなわち、制御部11は、まず暗号化のための鍵を発生する。この処理は、制御部11の持つ乱数発生のためのサブルーチン等が用いられることにより行われる。発生される暗号化の鍵は、毎回異なったものになる。なお、この鍵は番組提供終了(この場合、番組Xに関しては21時、番組Yに関しては23時)までメモリ12に記憶されている。
制御部11は、発生した暗号化の鍵を暗号化部67に供給し、さらに暗号化部67を、サーバ65からのデータの入力待ちの状態に設定する。また制御部11は、スイッチ68を端子bと接続される設定し、多重化部17の端子K8に暗号化されたデータが供給されるようにする。
次に、制御部11は、サーバ65に対し、“番組X”のストリームファイル、即ち"番組x.pre"というファイル名を持つファイルを、暗号化部67に対して出力するように指令する。サーバ65は、指定されたファイルの内容を暗号化部67に供給する。この時、サーバ65からの出力ビットレートは、事前送信のために確保されたビットレート16Mbpsから、多重化のオーバーヘッド分を差し引いた値が設定されている。制御部11が、サーバ65に対して出力ビットレートを指定する。
サーバ65での出力レートの制限はせず、多重化部17において、出力が24Mbpsとしたままで、端子K8以外からの入力を多重化した残りの帯域全部を、端子K8に入力されたデータに対して割り当てるという方法でも良い。
暗号化部67は、サーバ65から供給されるデータを、制御部11から供給された暗号化の鍵を用いて暗号化する。暗号の仕方は、どのようなものを用いても良い。なお、以下の説明においては、暗号化により、コンテンツの大きさ(size)は変わらないものとする。暗号化部67により暗号化されたデータは、スイッチ68の端子bを介して多重化部17の端子K8に供給される。
多重化部17は、予め決められているデータストリーム用のPIDの値を用い、端子K8に供給されたデータストリーム、ここでは暗号化されたストリームファイルをトランスポートパケットに格納し、他の入力されたデータと多重化して出力する。
ストリームファイルを格納するトランスポートパケットは、表3を参照して説明した“データ/時刻・鍵用フォーマット”のうちの“command_flag”の値が、“00001001”に設定されたものである。command_flag直後に、このトランスポートパケットに格納されたストリームファイルのデータ数(num_of_data)が置かれ、引き続きデータ本体(data_byte)が置かれる。そして、payload()にまだ空きがある場合には、スタッフィング(stuffing)が行われる。
このような処理は、ストリームファイル全体が送信されるまで繰り返し続けられる。
ストリームファイル(番組本体のデータ)の送信が終了されると、ステップS29に進み、送信装置1は、“位置情報ダウンロード予告”のコマンドを、コントロールストリームで流す。すなわち、まず制御部11は、“位置情報ダウンロードコマンド”を発生する。“位置情報ダウンロードコマンド”は、表2を参照して説明したコントロールコマンドのうちの“command_flag”の値が、“00000011”に設定されたものである。
制御部11は、続けて、ダウンロードする「位置情報ファイル」のファイル名(file_name)、ここでは"番組x.cpi"と、その大きさ(size)を記述する。残りの部分は、stuffingで埋められる。制御部11は、発生した“位置情報ダウンロードコマンド”を、多重化部17の端子K7に供給する。
多重化部17は、入力されたコマンドを、他の入力データと多重化して出力する。制御部11は、“位置情報ダウンロードコマンド”を送出してから、予め設定された時間が経過するのを待つ。
予め設定された時間が経過すると、制御部11は、ステップS30において、位置情報ファイルの送信を開始する。ステップS30において、送信装置1は、「位置情報ファイル」をデータストリームで送出する。すなわち、まず制御部11は、暗号化部67に対して、サーバ65からの入力信号を、そのまま出力するように指令する。また制御部11は、スイッチ68を設定し、端子b側と接続し、暗号化部67から出力された信号が、多重化部17の端子K8に供給されるようにする。
なお、サーバ65と暗号化部67との間にスイッチを設けそのスイッチにより、サーバ65からの出力が、暗号化部67を介してスイッチ68の端子bに供給されるか、暗号化部67を介さずにスイッチ68の端子bに供給されるかが選択されるようにし、そのスイッチの接続を変えることにより、暗号化部67による暗号を行うか否かを選択できるような構成としても良い。
ステップS30の処理として、上述した処理の他に、制御部11は、サーバ65に対し、“番組X”の位置情報ファイル、即ち"番組x.cpi"のファイル名を持つファイルを、暗号化部67に対して出力するように指令する。サーバ65は指令されたファイルの内容を暗号化部67に供給する。
位置情報ファイルのサーバ65からの出力ビットレートも、上述した番組本体のデータの送信(この場合、“番組X.pre”のファイルの送信)と同様に行われるため、ここでは、その説明を省略する。
多重化部17は、予め設定されているデータストリーム用のPIDの値を用い、端子K8に供給されたデータストリーム、ここでは、暗号化されていない位置情報ファイルをトランスポートパケットに格納し、他の入力信号と多重化して出力する。
位置情報ファイルを格納するトランスポートパケットは、表3を参照して説明した“データ/時刻・鍵用フォーマット”のうちの“command_flag”の値が、“00001001”に設定されたものである。直後に、このトランスポートパケットに格納された位置情報ファイルのデータ数(num_of_data)が置かれ、引き続きデータ本体(data_byte)が置かれる。そして、payload()にまだ空きがある場合には、スタッフィング(stuffing)が行われる。このような処理は、位置情報ファイルの全体が送信されるまで続けられる。
このような一連の処理で、事前送信する必要の有る1つの“番組X”を構成するストリームファイル"番組X.pre"と、位置情報ファイル"番組x.cpi"の送信が完了される。
このようにして、1つの番組に関するデータ(番組本体のデータと、位置情報ファイルのデータ)の送信が終了されると、ステップS31において、事前送信する必要がある全ての番組の送信が終了されたか否かが判断される。この判断は、制御部11が、メモリ12に記憶されている編成データを参照し、確認することにより行われる。
この場合、事前送信される番組は、2番組であるので、ステップS31において、全番組の送信は終了していないと判断され、ステップS27に戻り、“番組Y”に対して、ステップS27以降の処理が同様に行われる。“番組Y”に関するデータの送信は、上述した“番組X”に関するデータの送信と同様の処理により行われるため、その説明は省略する。
一方、ステップS31において、制御部11が、編成データを参照することにより、全番組の送信が終了したと判断した場合、図17のフローチャートに示した事前送信の為の処理は終了される。なお、図17に示した事前送信の為の処理は、上述したように、視聴者がその番組を視聴可能となる日の6時頃まで(事前送信番組の為に帯域が確保される時間内)に終了されるようにする。
このようにして事前送信された番組に関するデータは、受信装置3側に備えられている記憶装置に記憶されるわけだが、その記憶装置が取り外され、他の装置と接続されて、視聴の権利がない視聴者が視聴できたり、視聴可能とされている時間(この場合、19時乃至23時)以外の時間に視聴されるようなことがあると、著作権保護の観点から、また、運営上、好ましくない。
そこで、上述したように、本実施の形態においては、事前送信される番組の本体のデータ(この場合、“番組X.pre”と“番組Y.pre”のデータ)は、暗号化部67による暗号化が施されて送信され、受信装置3側でも、暗号化されたデータが記憶されている。このため、上述したようなことは防ぐことができる。
しかしながら、暗号化されたデータだけでは、視聴可能な時間になっても、視聴出来ないことになる。そこで、視聴可能な時間帯(この場合、19時乃至23時)において行われる送信装置1の動作について、図18のフローチャートを参照して説明する。
ステップS41において、図15に示したように、事前送信の番組提供時刻の直前(時刻t21)に、送信装置1は、「時刻情報」をデータストリームで送信する。すなわち、制御部11は、まず、時刻・鍵用のデータを発生する。この時、使用されるトランスポートパケットの構造は、表3を参照して説明したデータ/時刻・鍵用のフォーマット形式において、先頭の“command_flag”の値が“00001010”に設定されたものである。
次に、制御部11は、時刻情報を設定する。制御部11は、内部の時計13の値を読み込み、その時点から、10秒後以降に発生する“秒”未満の位(桁)が0となる時刻、換言すると、“秒”の位(桁)が繰り上がる時刻を“時刻情報”とし、その“時刻情報”をMPEG2のPCRの定義に変換したものを“PTS”とする。
“その時点から10秒後以降に発生する“秒”未満の位(桁)が0となる時刻”についてさらに説明するに、本実施の形態においては、上述したデータ/時刻・鍵用のフォーマットに示す時刻情報が“秒の位(桁)”までしか設定しておらず、“秒”より小さい値を表すようには設定していない。そこで、秒より小さい位(桁)が、全て“0”を表す時刻、すなわち“XX秒ちょうど”という時刻を用いることになる。
ここでは、時刻情報として“秒”の位(桁)まで存在するので、“秒未満”が0になる時刻としたが、設定により秒未満以外でも良く、存在する(設定されている)位(桁)より小さい位(桁)が全て0になる時刻というように設定するようにすれば良い。
また、ここで“10秒後”としているのは、制御部11が時刻情報を発生してから多重化部17、ECC/変調部20、増幅部21の各部においての処理にかかる時間、および受信装置3側で受信されて時刻情報が処理されるために必要な時間を考慮したものである。従って、“10秒”という数値でなくても良く、各放送システムあるいは送出装置1の特性に合わせて、適正な数値として設定されるようにすればよい。
“時刻情報”は、例えば、2000年(year)、10月(month)、10日(day)、18時(hour)、49分(minute)、50秒(second)などの値を持つ。PTSは、“時刻情報”で表した時刻をPCRの値で示している。
この時点では、「番組に対応するファイル名」、「開始時刻」、「番組の長さ」や「暗号の鍵」は送付されない。すなわち、上述したデータ/時刻・鍵用のフォーマットにおいて、ファイル名の長さ(len_filename)は0と設定され、ファイル名のデータ本体(filename_data)は置かれないデータである。また、番組の開始時間(start_time_hour、start_time_min)や番組の長さ(length_hour、length_min)も値0に設定されたデータである。さらに、「鍵」の値も0に設定されたデータである。このようなデータが送信される。
制御部11は、発生した時刻・鍵用のデータを、多重化部17の端子K7に供給する。多重化部17は、予め決められているコントロールストリーム用のPIDの値を用い、端子K7に供給されたデータを、トランスポートパケットに格納し、他の入力信号と多重化して出力する。
ステップS42において、番組の提供時刻になったか否かが判断される。ステップS42において、番組の提供時刻にはなっていないと判断されると、ステップS41に戻り、それ以降の処理が繰り返される。一方、ステップS42において、番組の提供時刻になったと判断された場合、ステップS43に進む。
すなわち、図15を参照して説明したように、時刻t22になるまで制御部11は、時刻情報を一定の間隔で送出し続ける。制御部11は、一定の間隔で時刻情報を発生し、時刻・鍵用のデータとしてコントロールストリームで送出する。そして、時刻t22になると、ステップS43に進み、番組の情報および鍵の送信を開始する。
ステップS43において、時刻t22、すなわち事前送信番組“番組X”の番組提供時刻になると、制御部11は、送出するデータに、“番組X”の情報を追加する。すなわち、「番組に対応するファイル名」には"番組X"が置かれる。この時len_filenameは値“3”が置かれ、3回出現するfilename_dataはそれぞれ“番”、“組”、“X”の値を持つ。また、番組の開始時間は、19時であるためstart_time_hourには“19”、start_time_minには“0”が置かれる。
さらに、番組の長さは2時間であるためlength_hourには“2”、length_minには“0”が置かれる。鍵(key)には、“番組X”を事前送信した際に使用された暗号の鍵が置かれる。制御部11は、このように発生した時刻・鍵用のデータを多重化部17に供給し、送信させる。
時刻t23になるまで、制御部11は、“番組X”のための時刻・鍵情報は一定の間隔で送出し続ける。制御部11は、一定の間隔で時刻情報を発生し、番組の情報を追加して、時刻・鍵用のデータとしてコントロールストリームで送出する。
ステップS44において、番組(この場合番組X)は、終了したか否かが判断される。この場合、この処理は、時刻が21時になったか否かが、制御部11が内蔵する時計13を参照することにより行われる。ステップS44において、番組は終了していないと判断された場合、ステップS43に戻り、それ以降の処理が繰り返される。
一方、ステップS44において、番組は終了したと判断された場合、ステップS45に進み、提供する次の番組があるか否かが判断される。この場合、“番組Y”があるため、YESと判断され、“番組Y”に対して、ステップS43以降の処理が繰り返される。“番組Y”に対しても、上述した“番組X”のときと同様の処理が行われるため、その説明は終了する。
この場合、上述したような処理が“番組X”と“番組Y”に対して行われることにより、ステップS45において、次の番組はないと判断された場合、すなわち、時刻t24(図15)になったと判断された場合、制御部11は、時刻・鍵情報の送出を停止する。図15を参照して説明したように、このイベントは23時に終了される。
このように、送信装置1側から、直接送信される番組(リアルタイムに、送信された番組を受信装置3側で視聴可能とされる番組)と、事前送信される番組(事前にデータが送信され、所定の時刻になると視聴が可能とされる番組)を受信する受信装置3について説明する。
図19は、本発明を適用した受信装置3の一実施の形態の内部構成を示す図である。図19に示した受信装置3のうち、図3に示した受信装置3と対応する部部には、同一の符号を付し、その説明は適宜省略する。図3に示した受信装置3(従来例)と図19に示した受信装置3(本発明を適用)とを比較するに、図19に示した受信装置3は、図3に示した受信装置3のEPG用PIDフィルタ37を、蓄積系PIDフィルタ71に代えた構成とされている。
ここで、従来例にてEPG用PIDフィルタ37が取り扱っていたEPGを“旧EPG”と称し、蓄積系PIDフィルタ71が取り扱うEPGを“新EPG”と称して、必要に応じ区別する。
蓄積用PIDフィルタ71は、入力されたトランスポートストリームから、コントロールストリーム、新EPG、データストリーム(時刻・鍵データ及びコンテンツデータ)を含むトランスポートパケットを抽出する。コントロールストリーム、新EPG、及びデータストリームのうちの時刻・鍵データは、制御部31に供給される。また、データストリームのうちのストリームファイルと位置情報ファイルは、データ抽出部72を介してハードディスク73に供給される。それぞれの情報が含まれるトランスポートパケットのPIDは、制御部31から与えられる。
ここで、PIDフィルタを蓄積系PIDフィルタ71として、1つのフィルタとして図示したが、複数のブロック図で示される構成としても良いし、あるいは他の機能を持つ要素と複合されるようにしても良い。
記憶装置として受信装置3に設けられているハードディスク73は、蓄積系PIDフィルタ71からデータ抽出部72を介して供給されるストリームファイルと位置情報ファイルを、制御部31の制御に基づき記憶する。位置情報ファイルは、制御部31により用いられる。また、制御部31の制御により、ハードディスク73からストリームファイルが、デスクランブラ74に供給される。
デスクランブラ74は、制御部31から与えられる鍵により、入力されたストリームファイルの暗号を解き、スイッチ75の端子aに供給する。出力用PIDフィルタ38の入力は、スイッチ75により、フロントエンド35からの受信トランスポートストリーム(端子b)と、デスクランブラ74からの一時蓄積されたストリームファイル(端子a)が切り替えられた一方のデータである。
スイッチ75は、制御部31からの指示が無い限り、端子a側と接続されることはない。また、制御部31は、事前送信された番組(ハードディスク73に記憶されている番組)が視聴可能とされる時間しか、スイッチ75を端子a側に接続しないような制御を行う。
次に、図19に示した受信装置3の動作について説明する。受信装置3の制御部31は、2つのプロセスを同時に進行させている。1つは表示制御であり、もう1つは事前送信データの受信制御である。まず、同時に動作している2つのプロセスのうち、表示制御の制御について、図20と図21に示したフローチャートを参照して説明する。
ステップS51において、制御部31は、図示せぬ視聴者が、リモートコントローラあるいは受信装置3に備えられているボタン等(いずれも不図示)により、電源スイッチをオン(“入”)にしたか否かを判断する。ただし、受信装置3は電源が供給された時点で、すでに動作を開始しているため、ステップS51における電源スイッチは、表示動作を行うか否かのスイッチである。電源スイッチが“入”にされたと判断された場合、ステップS52に進み、電源スイッチは“入”にされてはいないと判断された場合、ステップS51に戻りそれ以降の処理が繰り返される(待機状態が継続される)。
ステップS52において、制御部31内のメモリ32に蓄積されているPSIや“新EPG”の情報のうちの少なくとも一方が、不足しているか、或いは、古くなっているか否かが判断される。ステップS52において、PSIまたは新EPGのうち、どちらかが、または両方とも、情報として不足している、古くなっていると判断された場合、ステップS53に進み、そのような状況ではないと判断された場合(PSIもEPGも記憶されている情報だけで充分であると判断された場合)、ステップS53の処理は省略されて、ステップS54に進む。
ステップS52における判断は、制御部31が、メモリ32内のPSIとEPG情報と時計33の示す日時と比較することにより行われる。
ステップS53において、制御部31は、フロントエンド35に指示して、デフォルトのチャネルを受信するように指示する。受信装置3では、予めデフォルトのチャネルが設定されている。本実施の形態の場合、デフォルトのチャネルは、直接送信のチャネルAである(直接送信のチャネルとして複数存在する場合、どのチャネルでも良い)。フロントエンド35は、デフォルトのチャネルの伝送される周波数/帯域に同調し、信号を復調し、誤り訂正符号による信号の訂正等を行い、処理したデータをトランスポートストリームとして出力する。
フロントエンド35から出力されたトランスポートストリームは、PSI用フィルタ36と、蓄積系PIDフィルタ71に、それぞれ供給される。トランスポートストリームは、PCR用PIDフィルタ39と、スイッチ75を介して出力用PIDフィルタ38にも供給されるが、ステップS53における処理の段階では、供給されるだけであり、何の処理も実行されない。
PSI用フィルタ36は、入力されたトランスポートストリームからPSIの情報を抽出して制御部31に供給する。制御部31に供給されたPSIは制御部31内部のメモリ32に蓄えられる。
制御部31は、蓄積系PIDフィルタ71に“新EPG”を運んでいるトランスポートパケットのPIDの値を供給する。この値は、予め設定されており、制御部31に格納されている。蓄積系PIDフィルタ71は、与えられたPIDの値を使用してトランスポートパケットを選り分け、EPG情報を抽出し、制御部31に供給する。供給されたEPG情報は、メモリ32に蓄えられる。
この時使用されているEPG情報のフォーマットは、表1を参照して既に説明したものである。また、制御部31に供給される情報は、図12を参照して説明した編成データと、事前送信番組に対応するファイル名である。
PSIとEPG情報は、どのトランスポートストリームにも含まれている。受信装置3においては、上記の動作が常時行われており、PSIとEPGの情報は常にアップデートされる。事前送信番組の提供(視聴/再生)中にもアップデートされる。
制御部31は必要に応じ、あるいは図示せぬユーザの指示に応答し、EPGの情報を、抽出/加工し、OSD43に指示してビデオ信号に変更させる。OSD43の発生したビデオ信号は、加算部44によってビデオデコーダ40からの出力信号と混合されて、図示せぬテレビジョン受像機などに出力される。
ステップS54において、制御部31は、前回電源が切られる直前に視聴されていたチャネルを、図示せぬ内部不揮発記憶装置等から読み出す。前回電源が切られる前に視聴していたのがチャネルAであるとして、以下の説明をする。
受信装置3は、電源投入直後に、直前に視聴していた“直接送信チャネル”が視聴されるように制御する。もちろん、電源投入時に直前に視聴されていた“直接”あるいは“事前送信”チャネルが表示されるようにしても良い。
制御部31は、フロントエンド35に指示して、チャネルAを受信するように指示する。フロントエンド35は、チャネルAの伝送される周波数/帯域に同調し、信号を復調し、誤り訂正符号による信号の訂正等が行われ、トランスポートストリームとして出力する。
フロントエンド35から出力されたトランスポートストリームは、PSI用フィルタ36、蓄積系PIDフィルタ71、PCR用PIDフィルタ39、およびスイッチ75を介して出力用PIDフィルタ38に、それぞれ供給される。
制御部31は出力用PIDフィルタ38に対して、ビデオストリームを運んでいるトランスポートパケットのPIDと、オーディオストリームを運んでいるトランスポートパケットのPIDの値を供給する。制御部31は、PCR用PIDフィルタ39にPCRを運んでいるトランスポートパケットのPIDの値を供給する。これらのPIDの情報は、PSI用フィルタ36から供給されたものである。
出力用PIDフィルタ38は、与えられた2つのPIDの値を使用してトランスポートパケットを選り分け、ビデオストリームとオーディオストリームを抽出する。ビデオストリームは、ビデオデコーダ40に、オーディオストリームは、オーディオデコーダ41に、それぞれ供給される。
ビデオデコーダ40は、供給されたMPEG2ビデオ方式のビデオストリームをビデオ信号に変換して出力し、オーディオデコーダ41は供給されたMPEG2-AACのオーディオストリームをオーディオ信号に変換して出力する。
PCR用PIDフィルタ39は、与えられたPIDの値を使用してトランスポートパケットを選り分けてPCRを抽出し、STC42に供給する。STC42は、入力されたPCRに自身のクロックを同期させる。PCRで発生された内部クロックは、ビデオデコーダ40とオーディオデコーダ41の同期クロックとして使用される。
PSI用フィルタ36は、上述したように、入力されたトランスポートストリームからPSIの情報を抽出して制御部31に供給し、メモリ32上のPSIが更新される。蓄積系PIDフィルタ71は、上述したように、与えられたPIDの値を使用してトランスポートパケットを選り分け、EPGデータを抽出し、制御部31に供給する。このようにして、メモリ32上のEPG情報が更新される。
ステップS55において、制御部31は、視聴者がリモートコントローラあるいはボタン(いずれも不図示)により、チャネルの変更を指示したか否かを判断する。ステップS55において、ユーザによりチャネルが変更されたと判断された場合、ステップS59に進み、ユーザによりチャネルの変更はされていないと判断された場合、ステップS56に進む。
ステップS56において、制御部31は、現在出力中(デコード中)の番組が事前送信の番組であるか否かを判断する。ステップS56において、事前送信の番組であると判断された場合、ステップS58に進み、事前送信の番組ではないと判断された場合、ステップS57に進む。
ステップS57において、制御部31は、ユーザにより電源スイッチがオフにされたか否かを判断する。ただし、ステップS57においての電源スイッチのオフの状態とは、表示動作を行うか否かのスイッチのオフの状態のことである。ステップS57において、電源スイッチがオフにされたと判断された場合、ビデオデコーダ40とオーディオデコーダ41からの出力が停止され、ステップS51に戻り、それ以降の処理が繰り返される。一方、ステップS57において、電源スイッチがオフにされてはいないと判断された場合、ステップS55に戻り、それ以降の処理が繰り返される。
一方、ステップS55において、ユーザによりチャネルの変更の指示があったと判断され、ステップS59に処理が進んだ場合、制御部31は、指定されたチャネルが事前送信番組のチャネル(この場合、チャネルB)か否かを判断する。ステップS59において、指定されたチャネルが事前送信の番組のチャネルであると判断された場合、ステップS61(図21)に進み、事前送信の番組のチャネルではないと判断された場合、すなわち直接送信の番組のチャネル(この場合、チャネルA)であると判断された場合、ステップS60に進む。
ステップS60において、制御部31は、指定されたチャネルに対応する直接送信の番組を、フロントエンド35に受信するように指示する。その結果、フロントエンド35から出力されたトランスポートストリームを上述した処理、すなわちステップS54における処理と同様に処理する事により、新しく選択されたチャネルに対応する番組のデータの出力が行われる。その後、ステップS55に戻り、それ以降の処理が繰り返される。
一方、ステップS59において、指定されたチャネルが事前送信の番組のチャネルであると判断され、ステップS61(図21)に処理が進んだ場合、制御部31は、メモリ32に記憶されたEPGの情報と時計33の示す時刻を比較し、指定された事前送信のチャネルに事前送信された番組が、現在、提供されているか否か(換言すれば、この場合、視聴可能とされている時間帯である19時乃至23時であるか否か)を確認する。提供されていると判断された場合、ステップS62に進み、提供されていないと判断された場合、ステップS66に進む。
ユーザが指定した事前送信のチャネルが提供中である事を確認した制御部31は、ステップS62において、まず、メモリ32に格納されている情報から、現在提供中の事前送信番組のファイル名を探し出す。具体的には、時計33の示す時刻における、ユーザから指定された事前送信のチャネルの番組表を確認し、関連付けられたファイル名を探し出す。
制御部31は、ハードディスク73に該当ファイルが記録されているか否かを確認する。ステップS62において、ハードディスク73に、該当ファイルに対応するストリームファイル("*.pre")と位置情報ファイル("*.cpi")の両方が記憶されていると判断された場合、ステップS65に進み、いずれか1つ、あるいは両方が記憶されていないと判断された場合、ステップS63に進む。
ステップS62において、ハードディスク73に、ユーザにより指示されたチャネルに対応する番組に関するファイルが記憶されていると判断され、ステップS65に処理が進んだ場合、制御部31は、フロントエンド35に指示して、チャネルAのチャネルを受信するように指示する。本実施の形態においては、上述したように、事前送信番組に関する情報(例えば、鍵の情報)は、チャネルAと同じ周波数/帯域で送られてくると予め設定されており、その情報を受信するために、チャネルAのチャネルを受信するように指示される。
また、制御部31は、スイッチ75を端子a側に接続させ、デスクランブラ74の出力が出力用PIDフィルタ38に供給されるようにする。
フロントエンド35は、チャネルAの伝送される周波数/帯域に同調し、信号を復調し、誤り訂正符号による信号の訂正等を行い、トランスポートストリームとしてのデータを出力する。フロントエンド35から出力されたトランスポートストリームは、PSI用フィルタ36、蓄積系PIDフィルタ71、およびPCR用PIDフィルタ39に、それぞれ供給される。
制御部31は、蓄積系PIDフィルタ71にデータストリームを運んでいるトランスポートパケットのPIDの値を供給する。この値は予め決まっており、制御部31に格納されている。蓄積系PIDフィルタ71は、与えられたPIDの値を用いてトランスポートパケットを選り分け、データストリームを制御部31に供給する。
事前送信の番組の供給時には、データストリームに時刻・鍵のデータが含まれている。この時、使用されているフォーマットは、表3を参照して説明したものの内、“command_flag”の値が”00001010”に設定されているものである。制御部31は、時刻・鍵のデータから、鍵を取り出してデスクランブラ74に供給する。これにより、予めハードディスク73に蓄えられているストリームファイルの暗号を解く事ができる。
次に、制御部31は、メモリ32に蓄えられているEPG情報から、該当番組の開始時刻を確認する。以下に示すように、該当番組の開始時刻と時計33の示す現在時刻の差を求める事により、該当番組先頭からの経過時間を計算する事ができる。
番組の先頭からの経過時刻=(現在時刻)−(番組開始時刻)
制御部31は、ハードディスク73から位置情報ファイル"*.cpi"を読み出す。位置情報ファイルは、上述したようにストリームファイルの持つ全てのイントラピクチャの位置を、その出現順に時刻とバイトオフセットの組み合わせで表した情報である。制御部31は、計算した“番組の先頭からの経過時刻”の直後に表示されるべき位置のイントラピクチャを、バイナリサーチ等の方法を用いて探し出す。この位置を、ここでは再生位置と称する。
制御部31は、ハードディスク73に指令して、該当ファイルの再生位置からのデータをデスクランブラ74に供給させる。デスクランブラ74は、制御部31から供給された鍵を使うことにより、ハードディスク73から供給されたストリームファイルの暗号を解く。デスクランブラ74の出力は、スイッチ75を介して、出力用PIDフィルタ38に供給される。暗号を解かれたストリームファイルは、トランスポートストリームのフォーマットに則っている。
制御部31は、出力用PIDフィルタ38に対して、ビデオストリームを運んでいるトランスポートパケットのPIDとオーディオストリームを運んでいるトランスポートパケットのPIDの値を供給する。事前送信されたストリームファイルに対して、これら2つの値は予め決まっている。
出力用PIDフィルタ38は、与えられた2つのPIDの値を使用してトランスポートパケットを選り分け、ビデオストリームとオーディオストリームを抽出する。ビデオストリームはビデオデコーダ40に、オーディオストリームはオーディオデコーダ41に、それぞれ供給される。
ビデオデコーダ40は、供給されたMPEG2ビデオ方式のビデオストリームをビデオ信号に変換して出力し、オーディオデコーダ41は供給されたMPEG2-AACのオーディオストリームをオーディオ信号に変換して出力する。
制御部31は、PCR用PIDフィルタ39にPCRを運んでいるトランスポートパケットのPIDの値を供給する。事前送信番組の供給中は、時刻・鍵のデータを運んでいるトランスポートストリームがPCRを運んでいるため、データストリームのPIDと同じ値を設定する。
PCR用PIDフィルタ39は、与えられたPIDの値を使用してトランスポートパケットを選り分け、PCRを抽出し、STC42に供給する。STC42は、入力されたPCRに自身のクロックを同期させる。STC42で発生された内部クロックは、ビデオデコーダ40とオーディオデコーダ41の同期クロックとして用いられる。
このとき、時刻・鍵のデータ(データストリーム)にて送られるリアルタイムのPCRと、ハードディスク73に蓄えられていたストリームファイルのPTSは値が異なる。このため、ビデオデコーダ40及びオーディオデコーダ41は、予め両者の差を計算しておき、PCRに差を加えた値に対して、ビデオデコード/オーディオデコードのクロックを同期させる。
PSIとEPG情報の更新は、事前供給された番組の提供中にも行われている。すなわちPSI用フィルタ36は、入力されたトランスポートストリームからPSIの情報を抽出して制御部31に供給する。供給されたPSIは制御部31内部のメモリ32に蓄えられる。
制御部31は、蓄積系PIDフィルタ71に“新EPG”を運んでいるトランスポートパケットのPIDの値を供給する。この値は予め決まっており、制御部31に格納されている。蓄積系PIDフィルタ71は、与えられたPIDの値を使用してトランスポートパケットを選り分け、EPG情報を抽出し、制御部31に供給する。供給されたEPG情報は制御部31内部のメモリ32に蓄えられる。
このような処理が、ステップS65の処理として実行され、事前送信の番組が視聴者に提供されると、ステップS55(図20)に戻り、それ以降の処理が繰り返される。
一方、ステップS61において、現在時刻に、事前送信の番組が提供中ではないと判断された場合、換言すれば、この場合、現在時刻が19時乃至23時ではなく、事前送信の番組の視聴は許可されていないと判断された場合、ステップS66に進み、制御部31は、OSD43に指令して「現在、事前送信の番組は行われていない」旨のメッセージを発生させる。OSD43の出力信号は加算部44によりビデオデコーダ40の出力と混合され出力される。このような処理が終了されると、ステップS64に進む。
なお、視聴者には、事前送信や直接送信といった、番組の提供に関する情報を与える必要はなく、また、そのような情報を与えることにより混乱や、煩わしさを与える可能性があるので、メッセージとしては、「現在、指定されたチャネルでは、番組は提供されていません」などで、視聴者には、事前送信や直接送信といったことを知らせないようなメッセージにすることが好ましい。
ステップS64において、制御部31は、直前に視聴されていた直接送信のチャネルの番組を提供する。制御部31は、フロントエンド35に指示して、指定されたチャネルを受信するように指示する。その結果、フロントエンド35から出力されたトランスポートストリームを上述した処理、すなわちステップS54のところで説明した処理と同様の処理を実行する事により、チャネルの変更が指示されるときに視聴されていた番組の表示が再び開始される。このような処理が終了されると、ステップS55(図20)に戻り、それ以降の処理が繰り返される。
一方、ステップS62において、指定されたチャネルに対応する番組のファイルが、ハードディスク73に記憶されていないと判断された場合、ステップS66に進み、制御部31は、OSD43に指令して「該当番組のファイルが読み込まれていないので、見る事が出来ない」旨のメッセージを発生させる。OSD43の出力信号は加算部44によりビデオデコーダ40の出力と混合され出力される。このステップS66において発生されるメッセージも、上述したステップS63において発生されるメッセージと同じく、事前送信と直接送信などの区別を視聴者に認識させないようなメッセージが発生されるようにする方が好ましい。
一方、ステップS56(図20)において、事前送信の番組のデコード中であると判断された場合、ステップS58に進み、提供中(デコード中)の番組は、終了か否かが判断される。例えば、番組Xは、19時乃至21時まで提供されるため、21時になると、ステップS58において、提供中の番組は終了したと判断され、21時前の時刻では、提供中の番組は終了していないと判断されることになる。
そこで、ステップS58において、提供中の番組は終了していないと判断された場合、終了したと判断されるまで、ステップS55に戻り、それ以降の処理が繰り返され、終了したと判断されると、ステップS67(図21)に進む。なお、ステップS58における処理は、制御部31が、ハードディスク73に指示して出力させている番組を、メモリ32のEPGデータにて確認し、時計33の示す時刻が該当番組放送中か、あるいは放送終了(提供終了)の時刻に達したか否かを確認することにより行われる。
ステップS67において、制御部31は、該当番組が提供されているチャネルを、メモリ32に記録されているEPG情報を参照することにより調べ、該当チャネルに、次の“事前送信番組”が有るか否かを判断する。次の番組があると判断された場合、ステップS68に進み、次の番組がないと判断された場合、ステップS64に進む。ステップS64以下の処理については、既に説明したので、その説明は省略する。
この場合、チャネルBで、番組Xが提供されているときに、ステップS67の処理が実行された場合、番組Yが存在するため、処理は、ステップS68に進み、番組Yが提供されているときに、ステップS67の処理が実行された場合、次に提供される番組は存在しないので、ステップS64に進み、事前送信の番組Xが視聴される直前に視聴されていた直接送信の番組にチャネルが切り換えられる。
ステップS68において、制御部31は、メモリ32に記憶されたEPGの情報と時計33の示す時刻より、該当チャネルで次に放送すべき事前送信の番組を確定する。確定された番組に対して、ステップS62以降の処理が実行される。
このようにして、表示が制御されることにより、直接送信の番組と事前送信の番組の間での切り替えが、視聴者に対しては、あたかも、2つの直接送信チャネル間を切り替えているかのように行う事ができる。
ここで、表3を参照して説明した時刻・鍵のデータについて、さらに説明を加える。日時に関するデータ(year、month、day、hour、minute、second)及びこれらに対するPTSは、時計33の時刻の修正に使用される。すなわち、該当日時情報に付加されているPTSと、同じく時刻・鍵のデータのトランスポートストリームに付加されて入力されるPCRに同期したSTCと等しくなった瞬間が、該当日時情報が表す瞬間である。
制御部31は、その瞬間に時計33の情報を、入力された該当日時情報に書き換える事で、時計33を、送信装置1の時計13(図8)と一致させる。ただし、この作業は毎回行われるわけではなく、例えば、1日1回などの頻度で行われる。
また、ファイル名に関する情報(len_filename、filename_data)は、例えば、ステップS62においてファイル名を求める処理に、メモリ32内のEPG情報が調べられる代わりに、このフィールドが用いられるようにしても良い。
さらに、開始時刻(start_time_hour、start_time_min)、番組の長さ(length_hour、length_min)は、例えば、ステップS61の処理においてのチェックやステップS65においての経過時刻の計算の際に用いられるようにしても良い。
受信装置3は、上述したような表示の制御を行うとともに、事前送信される番組のデータの受信に関する制御も行う。次に、この事前送信される番組のデータの受信に関する、受信装置3の動作について、図22のフローチャートを参照して説明する。
ステップS81において、制御部31は、蓄積系PIDフィルタ71に、コントロールストリームを運んでいるトランスポートパケットのPIDの値を供給する。この値は予め決まっており、制御部31に格納されている。蓄積系PIDフィルタ71は、供給されたPIDの値を用いてトランスポートパケットを選り分け、コントロールストリームの情報を抽出し、制御部31に供給する。コントロールストリームに含まれる情報は、表2を参照して説明したコントロールコマンドである。
ステップS82において、制御部31は、蓄積系PIDフィルタ71から供給されるコントロールストリームを監視する。コントロールストリームのコマンドが供給されたと判断されるまで、ステップS82の処理は繰り返され、コマンドが供給されたと判断された場合、ステップS83に進む。
ステップS83以降の処理において、入力されたコマンドの解析および解析された結果に対応する処理が実行される。コントロールコマンドは、上述した表2に示す構造である。まず、ステップS83において、入力されたコマンドは、全消去を指示するコマンドであるか否かが判断される。この判断は、コマンドを受け取った制御部31が、先頭8ビットのcommand_flagを検査することにより行われる。command_flagが値‘00000001’の場合、“全消去コマンド”を示している。
ステップS83において、入力されたコマンドは、全消去コマンドであると判断された場合、ステップS84に進む。ステップS84において、全消去コマンドを受け取った制御部31は、ハードディスク73に指令して、ハードディスク73内部に記憶されている「ストリームファイル」("*.pre")と「位置情報ファイル」("*.cgi")を削除する。この処理が終了されると、ステップS82に戻り、次のコマンド待ちの状態となる。
一方、ステップS83において、入力されたコマンドは、全消去コマンドではないと判断された場合、ステップS85に進み、本体ダウンロードのコマンドであるか否かが判断される。command_flagが値‘00000010’の場合、本体ダウンロードコマンドを示している。ステップS85において、入力されたコマンドは、本体ダウンロードコマンドであると判断された場合、ステップS86に進む。
ステップS86において、本体ダウンロードコマンドを受け取った制御部31は、コマンド内部からファイル名(len_filename、filename_data)とファイルサイズ(size)を読み出す。ファイル名には、末尾に".pre"が付加されており、ストリームファイルである事を示す。
ステップS87において、制御部31は、ハードディスク73に対して“ファイル名”と“ファイルサイズ”を指定し、データ抽出部72から供給されるストリームファイルを指定されたファイル名で記憶するように指示する。
制御部31は、蓄積系PIDフィルタ71に、ストリームファイルを運んでいるトランスポートパケットのPIDの値を供給する。この値は予め決まっており、制御部31に格納されている。蓄積系PIDフィルタ71は、与えられたPIDの値を使用してトランスポートパケットを選り分け、ストリームファイルをデータ抽出部72に供給する。
事前送信番組の事前送信時には、データストリームにはダウンロードデータのフォーマットが使用されている。この時使用されているフォーマットは表3を参照して説明したものの内、command_flagが値‘00001001’を持っているものである。データ抽出部72は、表3に示したダウンロードデータの構造から先頭のcommand_flagを取り去り、次のnum_of_dataを使ってdata_byteを抽出してハードディスク73に供給する。stuffing_byteも取り去られる。
ハードディスク73は、制御部31から指定された名前で入力されたデータを記憶する。ハードディスク73は、入力されたデータが“ファイルサイズ”で指定された大きさに達したら、制御部31にデータロード終了を伝える信号を供給する。
ステップS88において、制御部31は、ハードディスク73から記録終了を伝える信号が入力されたか否かを判断し、記録終了の信号が入力されたと判断されるまで、ステップS88の処理を繰り返す。そして、記録終了の信号が入力されたと判断された場合、次に入力されたコマンドに対して、ステップS82以下の処理が繰り返される。
一方、ステップS85において、入力されたコマンドは、本体ダウンロードのコマンドではないと判断された場合、ステップS89に進む。ステップS89において、入力されたコマンドが、位置情報のダウンロードのコマンドではないと判断された場合、ステップS82に戻り、それ以降の処理が繰り返される。なお、この場合、ステップS89において、入力されたコマンドが、位置情報のダウンロードのコマンドではないと判断されたとき、このことは、入力されたコマンドは、無効なコマンドであることを示している。
ステップS89において、入力されたコマンドは、位置情報のダウンロードのコマンドであると判断された場合、ステップS90に進む。ステップS90乃至S92の処理は、基本的に既に説明したステップS86乃至S88の処理と同様に行われるため、適宜、その説明は省略する。
ステップS91において、制御部31は、ハードディスク73に対して“ファイル名”と“ファイルサイズ”を指定し、データ抽出部72から供給される位置情報ファイルを指定された名前で記憶するように指示する。
事前送信番組の事前送信時には、データストリームにはダウンロードデータのフォーマットが使用されている。この時使用されているフォーマットは、表3を参照して説明したものの内、command_flagが値‘00001001’を持っているものである。
ステップS92において、制御部31は、ステップ88のところで説明したように、ハードディスク73から記録終了の信号の入力待ちの状態を継続し、記録終了の信号が入力されると、ステップS82に戻り、それ以降の処理が繰り返される。
このような、事前送信の番組のデータの受信制御が行わるとともに、受信装置3においては、上述した表示に関する制御も同時に行われている。
本発明を適用することにより、プライムタイムにチャネル数があたかも増えたように扱うことができ、視聴者が望む時間に、チャネルの選択の幅を広げることができる。また、視聴者に対して、このようなことにより処理が増えるなどの不都合が生じることはない。さらに、ハードディスク73に記憶される番組本体のデータは、暗号化されたデータとするなどにより、著作権などの保護も的確に行うことができる。
上述した実施の形態においては、事前送信の番組と直接送信の番組はチャネル単位で分け、事前送信のチャネルと直接送信のチャネルとしたが、事前送信の番組と直接送信の番組を、1つのチャネル内で番組単位、あるいはそれより小さな単位で混在するようにしても良い。
また、ここではプライムタイムに流用した帯域を番組を増やすために使用したが、画質を向上するために使用するようにしても良い。すなわち、直接送信の部分では普通の画質のビットストリームを送り、事前送信の部分で画質向上分のビットストリームを送るようにすればよい。
事前送信番組のストリームファイルを特殊再生できるか否かのフラグを情報として送る事により、受信装置3側で該当ファイルを特殊再生するか否かを判断し、特殊再生可能である時には特殊再生させるようにしても良い。
上述した実施の形態においては、事前送信の番組のデータは、送信装置1から送信されるとしたが、インターネットなどのネットワークを介して送信されるようにしても良い。また、CD-ROMなどの記録媒体などで配布されるようにしても良い。このような、ネットワークや記録媒体などで、事前送信の番組のデータを送信(配布)するようにしても、本実施の形態のように、鍵のデータを、所定の時間にしか提供しないようにすれば、著作権などを保護することが可能である。
上述した一連の処理は、ハードウェアにより実行させることもできるが、ソフトウェアにより実行させることもできる。一連の処理をソフトウェアにより実行させる場合には、そのソフトウェアを構成するプログラムが専用のハードウェアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどに、記録媒体からインストールされる。
図23は、汎用のパーソナルコンピュータの内部構成例を示す図である。パーソナルコンピュータのCPU(Central Processing Unit)101は、ROM(Read Only Memory)102に記憶されているプログラムに従って各種の処理を実行する。RAM(Random Access Memory)103には、CPU101が各種の処理を実行する上において必要なデータやプログラムなどが適宜記憶される。入出力インタフェース105は、キーボードやマウスから構成される入力部106が接続され、入力部106に入力された信号をCPU101に出力する。また、入出力インタフェース105には、ディスプレイやスピーカなどから構成される出力部107も接続されている。
さらに、入出力インタフェース105には、ハードディスクなどから構成される記憶部108、および、インターネットなどのネットワークを介して他の装置とデータの授受を行う通信部109も接続されている。ドライブ110は、磁気ディスク121、光ディスク122、光磁気ディスク123、半導体メモリ124などの記録媒体からデータを読み出したり、データを書き込んだりするときに用いられる。
記録媒体は、図23に示すように、パーソナルコンピュータとは別に、ユーザにプログラムを提供するために配布される、プログラムが記録されている磁気ディスク121(フロッピディスクを含む)、光ディスク122(CD-ROM(Compact Disk-Read Only Memory),DVD(Digital Versatile Disk)を含む)、光磁気ディスク123(MD(Mini-Disk)を含む)、若しくは半導体メモリ124などよりなるパッケージメディアにより構成されるだけでなく、コンピュータに予め組み込まれた状態でユーザに提供される、プログラムが記憶されているROM102や記憶部108が含まれるハードディスクなどで構成される。
なお、本明細書において、媒体により提供されるプログラムを記述するステップは、記載された順序に従って、時系列的に行われる処理は勿論、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
また、本明細書において、システムとは、複数の装置により構成される装置全体を表すものである。
1 送信装置, 3 受信装置, 11 制御部, 12 メモリ, 13 時計, 31 制御部, 32 メモリ, 33 時計, 61 VTRカート, 62 ビデオエンコーダ, 63 オーディオエンコーダ, 64 多重化部, 65 サーバ, 66 イントラピクチャ検出部, 67 暗号化, 68 スイッチ, 71 蓄積系PIDフィルタ, 72 データ抽出部, 73 ハードディスク, 74 デスクランブラ, 75 スイッチ