(57)【要約】喪失されるコンテンツを最小限に抑制する放送録画再生装置を提供する。放送録画再生装置１３００は、単位領域内に放送波に含まれるデータを記録するレコーディング生成部２８０１と、単位領域内の記録可能な残量を検出するボリューム残量検出部２８１３と、残量が予め定められた容量未満になったことを検知するボリューム残量不足検知部２８０２と、残量が予め定められた容量未満になったことが検知された場合に呼び出される残量不足時ハンドラと、その残量不足時ハンドラを登録する残量不足時ハンドラ登録部３３０１とを備え、その残量不足時ハンドラ登録部３３０１に登録されている残量不足時ハンドラが呼び出される。
2009520381.tif 000002
【特許請求の範囲】
【請求項１】
放送波に含まれるデータを記録する記録装置であって、
記録領域内の予め定められた容量を単位領域とし、前記単位領域内に前記放送波に含まれるデータを記録するレコーディング生成手段と、
前記単位領域内の記録可能な残量を検出するボリューム残量検出手段と、
前記ボリューム残量検出手段によって検出される前記単位領域内の記録可能な残量が予め定められた容量未満になったことを検知するボリューム残量不足検知手段と、
前記ボリューム残量不足検知手段により、記録している前記単位領域内の記録可能な前記残量が、前記予め定められた容量未満になったことが検知された場合に呼び出される残量不足時ハンドラと、
前記残量不足時ハンドラを登録する残量不足時ハンドラ登録手段とを備え、
前記ボリューム残量不足検知手段によって、前記単位領域内の記録可能な前記残量が前記予め定められた容量未満になったことが検知された場合に、前記残量不足時ハンドラ登録手段に登録されている前記残量不足時ハンドラが呼び出される
ことを特徴とする記録装置。
【請求項２】
放送波に含まれるデータから抽出され、実行されたアプリケーションプログラムが前記単位領域を特定する情報を指定して、前記残量不足時ハンドラ登録手段を呼び出すことにより、前記残量不足時ハンドラ登録手段は、前記残量不足時ハンドラを登録する
ことを特徴とする請求項１記載の記録装置。
【請求項３】
前記残量不足時ハンドラは、前記放送波に含まれるデータの前記単位領域内への記録を停止する
ことを特徴とする請求項１または２に記載の記録装置。
【請求項４】
前記残量不足時ハンドラは、前記放送波に含まれるデータの前記単位領域内への記録の終了予定時刻を修正する
ことを特徴とする請求項１または２に記載の記録装置。
【請求項５】
前記残量不足時ハンドラは、前記放送波に含まれるデータの前記単位領域内への記録のビットレートを修正する
ことを特徴とする請求項１または２に記載の記録装置。
【請求項６】
前記残量不足時ハンドラは、前記記録領域において、記録している前記単位領域とは別の単位領域を新規に生成し、前記新規に生成した別の単位領域内へ前記放送波に含まれるデータを記録する
ことを特徴とする請求項１または２に記載の記録装置。
【請求項７】
前記残量不足時ハンドラは、前記記録領域において、記録している前記単位領域とは異なる容量を有する領域を新規に生成し、前記新規に生成した別の領域内へ前記放送波に含まれるデータを記録する
ことを特徴とする請求項１または２に記載の記録装置。
【請求項８】
前記単位領域は、前記放送波に含まれるデータを所定のビットレートで記録するために必要な最小限の容量を有する
ことを特徴とする請求項１または２に記載の記録装置。
【請求項９】
放送波に含まれるデータを記録する記録装置であって、
記録領域内の予め定められた容量を単位領域とし、前記単位領域内に前記放送波に含まれるデータを所定の時間だけ記録するレコーディング生成手段と、
前記単位領域内の記録可能な残量を検出するボリューム残量検出手段と、
前記ボリューム残量検出手段によって検出される前記単位領域内の記録可能な残量が、前記放送波を前記所定の時間だけ記録するために必要な最小限の容量未満になったことを検知するボリューム残量不足検知手段と、
前記ボリューム残量不足検知手段によって、前記単位領域内の記録可能な残量が前記最小限の容量未満になったことが検知された場合に、前記記録領域内に他の単位領域を新規に生成し、前記放送波に含まれるデータを新規に生成した前記他の単位領域内へ記録する補足ボリューム生成手段とを備える
ことを特徴とする記録装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンテンツを視聴する、および、コンテンツを蓄積するとともに、蓄積されたコンテンツを再生する例えば録画再生装置などの記録装置に関する。殊に、映像、音声およびプログラム等のデータから構成されるコンテンツが相互に同期をとって放送波に多重されて送信され、その放送波を受信して映像、音声、データを視聴する、および、蓄積するための仕組み、コンテンツを蓄積するための記録領域の容量が不足した場合にそれを解消するための仕組みに関する。
【背景技術】
【０００２】
放送局から送信される放送波は、多種多様なコンテンツを含んでいる。コンテンツは、通常の番組で用いられる映像、音声の他に、データを含む場合がある。データの送信方法にはいくつかの方式があり、大別して時系列に送信する方式と、一定の間隔ごとに繰り返し送信する方式がある。前者の時系列に送信する方式では、例えば、時間経過に合わせて連続するデータを順次送信していく。大量のデータを長時間かけて送信する場合に適しているが、送信タイミングで受信しなかった場合は二度と受信できないという欠点がある。
【０００３】
一方、後者の一定の間隔ごとに繰り返し送信する方式では、同じデータを一定の期間何度も繰り返し送信する。同一データを送信している期間内に、繰り返し送信されているデータのいずれかひとつを受信すればよいので、受信タイミングが限定されないというメリットがある。例えば、ＢＭＬに代表されるデータ放送や、ＤＳＭＣＣデータカルーセルによるファイル送信がこの方式である。特に放送においては、受信者がいつ選局して受信を開始するかわからない。時系列に送信する方式では、受信開始が送信タイミングよりも遅れてしまって、データ取得に失敗した場合、二度と再取得できない。よって、放送波で映像、音声とともにアプリケーションプログラム等のデータを送信したい場合には、一定の間隔ごとに繰り返し送信される方式が好適である。
【０００４】
現在、上記のような方式で、映像、音声とアプリケーションプログラムとを含む放送波を受信し、アプリケーションプログラムを映像、音声と同期して実行するための仕様が策定され、運用されている。通常の映像、音声を見るだけでなく、送信されたアプリケーションプログラムを受信して端末に取り込み、それを実行して様々な付加機能を実現することができる。このようにアプリケーションプログラムを送信して端末に取り込む方法はダウンロードとも呼ばれている。例えば、ＤＶＢ−ＭＨＰ（Ｄｉｇｉｔａｌ  Ｖｉｄｅｏ  Ｂｒｏａｄｃａｓｔｉｎｇ−Ｍｕｌｔｉｍｅｄｉａ  Ｈｏｍｅ  Ｐｌａｔｆｏｒｍ）  ＥＴＳＩ  ＥＳ  ２０１  ８１２  Ｖ１．１．１（２００３−１２）仕様が欧州で策定され、既に仕様に準拠した運用が開始されている。
【０００５】
また米国ではケーブル放送環境で同様の仕組みを提供するＯＣＡＰ（ＯｐｅｎＣａｂｌｅ  Ａｐｐｌｉｃａｔｉｏｎ  Ｐｌａｔｆｏｒｍ）  ＯＣ−ＳＰ−ＯＣＡＰ１．０−Ｉ１４−０５０１１９仕様が策定されており、実際に運用開始予定である。これらの仕様では、アプリケーションプログラムがＪａｖａ言語で記述されている。端末上にはチューニングやグラフィックス表示のための様々なＡＰＩ（アプリケーションプログラミングインタフェース）が用意されており、ＪａｖａアプリケーションプログラムはＡＰＩを呼び出すことでそれらの機能を制御できる。
【０００６】
さらに、北米では、ＯＣＡＰ仕様にコンテンツの録画再生機能を追加するためのＯＣＡＰ−ＤＶＲ  ＯＣ−ＳＰ−ＯＣＡＰ−ＤＶＲ−Ｉ０１−０４０５２４仕様を策定中である。これはケーブルテレビ放送として送出される映像、音声およびそれらと同期して実行されるＪａｖａアプリケーションプログラムをコンテンツとして録画し、さらに録画したコンテンツを放送波から直接再生する場合と同じように再生するものである。アプリケーションプログラムは、放送波からの直接再生と同様に映像、音声と同期をとって再生される。
【０００７】
またＯＣＡＰ−ＤＶＲでは、ハードディスクや半導体メモリといった高速ランダムアクセス可能な記録媒体に放送されたコンテンツを録画することで、コンテンツの特殊再生を実現している。ここで、特殊再生とは、早送り、巻戻し、スロー、一時停止、スキップ等の、コンテンツを任意の速度で再生したり、任意の位置から再生したりする機能である。ＯＣＡＰ−ＤＶＲでは、放送波から端末に取り込んだアプリケーションプログラムがコンテンツの録画や特殊再生を制御できる。すなわち、端末上に録画や特殊再生のためのＡＰＩが用意されており、ＪａｖａアプリケーションプログラムがそのＡＰＩを呼び出すことで各機能を制御できる。
【０００８】
通常、放送波には、アプリケーションプログラムを映像、音声と同期して実行するために、同期のための制御情報があらかじめ多重化されている。アプリケーションプログラムは、その同期制御情報に従って逐次実行および終了されていく。これによって、映像、音声の特定のシーンに合わせて適切なアプリケーションプログラムを切り替えて実行可能になる。
【０００９】
また、ＯＣＡＰ−ＤＶＲ規格においては、記録領域はボリュームという単位に分割されて管理される。コンテンツ蓄積時において、アプリケーションプログラムは特定のボリュームを指定して、そのボリュームにコンテンツを蓄積させる。
【発明の開示】
【００１０】
上述したように、ＯＣＡＰ−ＤＶＲ規格においては、記録領域はボリュームという単位に分割されて管理される。コンテンツ蓄積時において、アプリケーションプログラムは特定のボリュームを指定して、そのボリュームにコンテンツを蓄積させる。ボリュームはアプリケーションプログラムによって指定された容量分のみ確保される。現在蓄積中のコンテンツが、アプリケーションプログラムによって指定されたボリュームの容量を超過した場合は、当該コンテンツの蓄積は途中で停止させられる。
【００１１】
つまり、従来の記録装置では、コンテンツの全てを蓄積することができずに喪失させてしまうという問題がある。
【００１２】
しかしながら、記録領域にはいまだボリュームが割り当てられていない領域が存在する可能性がある。そのような記録領域におけるボリューム未割当の領域にコンテンツを蓄積するための枠組さえあれば、現在蓄積中のコンテンツが、アプリケーションプログラムによって指定されたボリュームの容量を超過した場合であっても、喪失されるコンテンツを最小限に抑制することが可能となる。
【００１３】
そこで本発明は、かかる問題に鑑みてなされたものであって、喪失されるコンテンツを最小限に抑制する記録装置を提供することを目的とする。
【００１４】
上記目的を達成するために、本発明の記録装置は、放送波に含まれるデータを記録する記録装置であって、記録領域内の予め定められた容量を単位領域とし、前記単位領域内に前記放送波に含まれるデータを記録するレコーディング生成手段と、前記単位領域内の記録可能な残量を検出するボリューム残量検出手段と、前記ボリューム残量検出手段によって検出される前記単位領域内の記録可能な残量が予め定められた容量未満になったことを検知するボリューム残量不足検知手段と、前記ボリューム残量不足検知手段により、記録している前記単位領域内の記録可能な前記残量が、前記予め定められた容量未満になったことが検知された場合に呼び出される残量不足時ハンドラと、前記残量不足時ハンドラを登録する残量不足時ハンドラ登録手段とを備え、前記ボリューム残量不足検知手段によって、前記単位領域内の記録可能な前記残量が前記予め定められた容量未満になったことが検知された場合に、前記残量不足時ハンドラ登録手段に登録されている前記残量不足時ハンドラが呼び出されることを特徴とする。
【００１５】
これにより、放送波の記録時に、放送波を記録する単位の残量不足を検知した場合、登録されている残量不足時ハンドラが呼び出されることで、残量不足時ハンドラに処理を委ねることが可能となるとともに、より柔軟な処理を実行することが可能となる。その結果、喪失されるコンテンツを最小限に抑制することができる。
【００１６】
また、上記目的を達成するために、本発明の記録装置は、放送波に含まれるデータを記録する記録装置であって、記録領域内の予め定められた容量を単位領域とし、前記単位領域内に前記放送波に含まれるデータを所定の時間だけ記録するレコーディング生成手段と、前記単位領域内の記録可能な残量を検出するボリューム残量検出手段と、前記ボリューム残量検出手段によって検出される前記単位領域内の記録可能な残量が、前記放送波を前記所定の時間だけ記録するために必要な最小限の容量未満になったことを検知するボリューム残量不足検知手段と、前記ボリューム残量不足検知手段によって、前記単位領域内の記録可能な残量が前記最小限の容量未満になったことが検知された場合に、前記記録領域内に他の単位領域を新規に生成し、前記放送波に含まれるデータを新規に生成した前記他の単位領域内へ記録する補足ボリューム生成手段とを備えることを特徴とする。
【００１７】
これにより、放送波の記録時に、放送波を記録する単位の残量不足が検知された場合、記録領域の余剰部分に補足単位を生成するとともに、放送波で記録不可とされた部分をその補足単位に記録することで、記録領域の余剰部分を活用して、放送波の記録を完了することが可能となる。その結果、喪失されるコンテンツを最小限に抑制することができる。
【００１８】
なお、本発明は、上記記録装置だけでなく、その記録装置が行う記録の方法、その記録装置が記録を行うためのプログラム、及びそのプログラムを格納する記憶媒体としても実現することができる。
【００１９】
２００５年１２月１９日に出願された、明細書と図面と請求項とを含む米国仮出願番号６０／７５１，３２１を本願に引用して援用する。
【発明を実施するための最良の形態】
【００２０】
本発明は以下に示す特徴を有する。
第１の発明は、放送波を記録するとともに、記録された放送波を再生する記録再生装置であって、特定の前記放送波を記録領域の特定の単位内に記録するレコーディング生成手段と、前記記録領域に前記単位を生成するボリューム生成手段と、前記記録領域の特定の前記単位内の前記放送波が記録可能な残量を検出するボリューム残量検出手段と、特定の前記放送波を記録するために必要な容量と、前記ボリューム残量検出手段から取得される特定の前記単位内の前記放送波が記録可能な残量を比較して、特定の前記放送波を記録するために、特定の前記単位が不足することを検知するボリューム残量不足検知手段と、前記ボリューム残量不足検知手段によって、特定の前記放送波を記録するために、特定の前記単位が不足することが検知された場合に、前記ボリューム生成手段へ、特定の前記単位外に他の前記単位を生成することを要求するとともに、前記レコーディング生成手段へ、特定の前記放送波の記録を他の前記単位内へ移行することを要求する補足ボリューム生成手段と、を備えることを特徴とする。
【００２１】
上記第１の発明によれば、放送波の記録時に、放送波を記録する単位の残量不足を検知した場合、記録領域の余剰部分に補足単位を生成するとともに、放送波で記録不可とされた部分をその補足単位に記録することで、記録領域の余剰部分を活用して、放送波の記録を完了することが可能となる。
【００２２】
第２の発明は、放送波を記録するとともに、記録された放送波を再生する記録再生装置であって、特定の前記放送波を記録領域の特定の単位内に記録するレコーディング生成手段と、前記記録領域の特定の前記単位内の前記放送波が記録可能な残量を検出するボリューム残量検出手段と、特定の前記放送波を記録するために必要な容量と、前記ボリューム残量検出手段から取得される特定の前記単位内の前記放送波が記録可能な残量を比較して、特定の前記放送波を記録するために、特定の前記単位が不足することを検知するボリューム残量不足検知手段と、前記ボリューム残量不足検知手段によって、特定の前記放送波を記録するために、特定の前記単位が不足することが検知された場合に、登録されているハンドラを呼び出す残量不足時ハンドラ登録手段と、を備えることを特徴とする。
【００２３】
上記第２の発明によれば、放送波の記録時に、放送波を記録する単位の残量不足を検知した場合、登録されている残量不足時ハンドラが呼び出されることで、残量不足時ハンドラに処理を委ねることが可能となるとともに、より柔軟な処理を実行することが可能となる。
【００２４】
第３の発明は、第２の発明に従属する発明であって、前記残量不足時ハンドラ登録手段は、登録されているハンドラが返す結果に依存して、後処理を変化させることを特徴とする。
【００２５】
上記第３の発明によれば、放送波の記録時に、放送波を記録する単位の残量不足を検知した場合、登録されている残量不足時ハンドラが呼び出されるとともに、その戻り値によって単位の残量不足への対処が変化することで、残量不足時ハンドラがその戻り値によって、既定の処理を選択して実行することが可能となる。
【００２６】
第４の発明は、放送波を記録するとともに、記録された放送波を再生する記録再生方法であって、特定の前記放送波を記録領域の特定の単位内に記録するレコーディング生成ステップと、前記記録領域に前記単位を生成するボリューム生成ステップと、前記記録領域の特定の前記単位内の前記放送波が記録可能な残量を検出するボリューム残量検出ステップと、特定の前記放送波を記録するために必要な容量と、前記ボリューム残量検出ステップから取得される特定の前記単位内の前記放送波が記録可能な残量を比較して、特定の前記放送波を記録するために、特定の前記単位が不足することを検知するボリューム残量不足検知ステップと、前記ボリューム残量不足検知ステップによって、特定の前記放送波を記録するために、特定の前記単位が不足することが検知された場合に、前記ボリューム生成ステップへ、特定の前記単位外に他の前記単位を生成することを要求するとともに、前記レコーディング生成ステップへ、特定の前記放送波の記録を他の前記単位内へ移行することを要求する補足ボリューム生成ステップと、を備えることを特徴とする。
【００２７】
上記第４の発明によれば、放送波の記録時に、放送波を記録する単位の残量不足を検知した場合、記録領域の余剰部分に補足単位を生成するとともに、放送波で記録不可とされた部分をその補足単位に記録することで、記録領域の余剰部分を活用して、放送波の記録を完了することが可能となる。
【００２８】
第５の発明は、放送波を記録するとともに、記録された放送波を再生する記録再生方法であって、特定の前記放送波を記録領域の特定の単位内に記録するレコーディング生成ステップと、前記記録領域の特定の前記単位内の前記放送波が記録可能な残量を検出するボリューム残量検出ステップと、特定の前記放送波を記録するために必要な容量と、前記ボリューム残量検出ステップから取得される特定の前記単位内の前記放送波が記録可能な残量を比較して、特定の前記放送波を記録するために、特定の前記単位が不足することを検知するボリューム残量不足検知ステップと、前記ボリューム残量不足検知ステップによって、特定の前記放送波を記録するために、特定の前記単位が不足することが検知された場合に、登録されているハンドラを呼び出す残量不足時ハンドラ登録ステップと、を備えることを特徴とする。
【００２９】
上記第５の発明によれば、放送波の記録時に、放送波を記録する単位の残量不足を検知した場合、登録されている残量不足時ハンドラが呼び出されることで、残量不足時ハンドラに処理を委ねることが可能となるとともに、より柔軟な処理を実行することが可能となる。
【００３０】
第６の発明は、第５の発明に従属する発明であって、前記残量不足時ハンドラ登録ステップは、登録されているハンドラが返す結果に依存して、後処理を変化させることを特徴とする。
【００３１】
上記第６の発明によれば、放送波の記録時に、放送波を記録する単位の残量不足を検知した場合、登録されている残量不足時ハンドラが呼び出されるとともに、その戻り値によって単位の残量不足への対処が変化することで、残量不足時ハンドラがその戻り値によって、既定の処理を選択して実行することが可能となる。
【００３２】
（実施の形態１）
以下に、本発明の第１の実施形態に係る装置および方法を、図面を参照しながら説明する。本発明は、任意の媒体で送受信されるコンテンツの録画および再生を対象としたものであるが、本実施例ではケーブルテレビ放送システムでの実施の形態を例にとって説明する。ケーブルテレビ放送システムでは、本発明の放送録画再生装置は一般的に端末装置と呼ばれる。
【００３３】
図１は、放送システムを構成する装置の関係を表したブロック図であり、放送局側システム１０１および三個の記録装置または記録再生装置たる端末装置Ａ１１１、端末装置Ｂ１１２、端末装置Ｃ１１３で構成される。放送局側システムと各端末装置間の結合１２１は、ケーブルシステムでは同軸ケーブルや光ファイバでの有線結合である。図１では、１つの放送局側システムに対して三つの端末装置が結合されているが、端末装置の数は任意である。
【００３４】
放送局側システム１０１は、複数の端末装置に対して映像・音声・データ放送用データ等の情報を放送信号に含めて送信する。放送信号は放送システムの運用既定や、放送システムが運用される国・地域の法律により定められた周波数帯域内の周波数を利用して伝送される。
【００３５】
本実施例のケーブルシステムでは、放送信号伝送に利用する周波数帯域は、そのデータの内容と伝送方向（上り、下り）ごとに分割して割り当てる。
【００３６】
図２は、周波数帯域の分割の一例を示す表である。周波数帯域は、Ｏｕｔ  Ｏｆ  Ｂａｎｄ（略称ＯＯＢ）とＩｎ−Ｂａｎｄの２種類に大別される。５〜１３０ＭＨｚがＯＯＢに割り当てられ、主に放送局側システム１０１と端末装置Ａ１１１、端末装置Ｂ１１２、端末装置Ｃ１１３間の上下双方向データのやり取りに使用される。１３０ＭＨｚ〜８６４ＭＨｚはＩｎ−Ｂａｎｄに割り当てられ、主として、映像・音声を含む下りのみの放送チャンネルに使用される。ＯＯＢではＱＰＳＫ変調方式が、Ｉｎ−ＢａｎｄはＱＡＭ６４またはＱＡＭ２５６変調方式が使用される。変調方式技術については、本発明に関与が薄い公知技術であるので、詳細な説明は省略する。
【００３７】
図３は、ＯＯＢ周波数帯域のさらに詳細な使用の一例である。７０ＭＨｚ〜７４ＭＨｚは放送局側システム１０１からの下りデータ送信に使用され、すべての端末装置Ａ１１１、端末装置Ｂ１１２、端末装置Ｃ１１３が、放送局側システム１０１から等しいデータを受け取ることになる。一方、１０．０ＭＨｚ〜１０．１ＭＨｚは端末装置Ａ１１１から放送局側システム１０１への上りデータ送信に使用され、１０．１ＭＨｚ〜１０．２ＭＨｚは端末装置Ｂ１１２から放送局側システム１０１への上りデータ送信に使用され、１０．２ＭＨｚ〜１０．３ＭＨｚは端末装置Ｃ１１３から放送局側システム１０１への上りデータ送信に使用される。これにより、各端末装置固有のデータを各端末装置Ａ１１１、端末装置Ｂ１１２、端末装置Ｃ１１３から放送局側システム１０１に独立して送信することができる。
【００３８】
図４は、Ｉｎ−Ｂａｎｄの周波数帯に対する使用の一例である。１５０〜１５６ＭＨｚと１５６〜１６２ＭＨｚはそれぞれテレビチャンネル１とテレビチャンネル２に割り当てられ、以降、６ＭＨｚ間隔でテレビチャンネルが割り当てられている。３１０ＭＨｚ以降は、１ＭＨｚ単位でラジオチャンネルに割り当てられている。これらの各チャンネルはアナログ放送として使用してもディジタル放送として使用してもよい。ディジタル放送の場合は、ＭＰＥＧ２仕様にもとづいたＴＳパケット形式で伝送され、音声や映像に加え、各種データ放送用データやＥＰＧを構成するための番組編成情報も送信することができる。
【００３９】
放送局側システム１０１は、以上に説明した周波数帯域を利用して端末装置に適切な放送信号を送信するため、ＱＰＳＫ変調部やＱＡＭ変調部等をもつ。また、端末装置からのデータを受信するため、ＱＰＳＫ復調器をもつ。また、放送局側システム１０１は、これら変調部および復調部に関連する様々な機器をもつと考えられる。しかし、本発明は主として端末装置に関わるので、詳細な説明は省略する。
【００４０】
一方、端末装置Ａ１１１、端末装置Ｂ１１２、端末装置Ｃ１１３は、放送局側システム１０１からの放送信号を受信し再生するために、ＱＡＭ復調部やＱＰＳＫ復調部を持つ。また、放送局側システム１０１に対して、各端末装置固有のデータを送信するためにＱＰＳＫ変調部を持つ。本発明では、端末装置は放送録画再生装置であり、その詳細な構成は後述する。
【００４１】
放送局側システム１０１は、ＭＰＥＧ２トランスポートストリームを変調して放送信号に含めて伝送する。端末装置は放送信号を受信し、復調してＭＰＥＧ２トランスポートストリームを再現し、その中から必要な情報を抽出して用いる。端末装置に存在するデバイスの機能と接続の構成を説明するため、まずＭＰＥＧ２トランスポートストリームの構成を簡単に述べる。
【００４２】
図５はＴＳパケットの構成を表す図である。ＴＳパケット５００は１８８バイトの長さを持ち、ヘッダ５０１、アダプテーションフィールド５０２、ペイロード５０３からなる。ヘッダ５０１はＴＳパケットの制御情報を保持する。４バイトの長さを持ち、５０４で表される構成をとる。この中に“Ｐａｃｋｅｔ  ＩＤ（以下ＰＩＤ）”と記述されるフィールドを持ち、このＰＩＤの値によって、ＴＳパケットの識別を行う。アダプテーションフィールド５０２は時刻情報等の付加的な情報を保持する。アダプテーションフィールド５０２の存在は必須ではなく、存在しない場合もある。ペイロード５０３は映像・音声やデータ放送用データ等、ＴＳパケットが伝送する情報を保持する。
【００４３】
図６はＭＰＥＧ２トランスポートストリームの模式図である。ＴＳパケットはそのペイロードに映像や音声、データ放送用のデータ等様々な情報を保持する。ＴＳパケット６０１およびＴＳパケット６０３はヘッダにＰＩＤ１００を保持し、ペイロードに映像１に関する情報を保持する。ＴＳパケット６０２およびＴＳパケット６０５はヘッダにＰＩＤ２００を保持し、ペイロードにデータ１に関する情報を保持する。ＴＳパケット６０４はヘッダにＰＩＤ３００を保持し、ペイロードに音声１に関する情報を保持する。このように様々な種類のデータをペイロードに保持したＴＳパケットを混合して一連のシーケンスとして送出することを多重と呼ぶ。ＭＰＥＧ２トランスポートストリーム６００はＴＳパケット６０１〜６０５を多重した構成の一例である。
【００４４】
同一ＰＩＤをもつＴＳパケットは同一種類の情報を保持する。そのため、端末装置は多重されたＴＳパケットを受信して、各ＴＳパケットが保持する情報をＰＩＤごとに抽出することで、映像・音声を再現したり、番組編成情報等のデータを再現したりできる。図６においては、ＴＳパケット６０１およびＴＳパケット６０３は共に映像１に関する情報を伝送し、またＴＳパケット６０２およびＴＳパケット６０５は共にデータ１に関する情報を伝送する。
【００４５】
ここで、ペイロードに内包される各種データの形式について説明する。
映像および音声は、ＰＥＳ（Ｐａｃｋｅｔｉｚｅｄ  Ｅｌｅｍｅｎｔａｒｙ  Ｓｔｒｅａｍ）パケットと呼ばれる形式で表現される。ＰＥＳパケットはある時間帯の映像情報または音声情報を含み、放送録画再生装置は、ＰＥＳパケットを受信することで、そのＰＥＳパケットが内包する映像・音声情報を画面・スピーカに出力することができる。放送局がＰＥＳパケットを途切れなく伝送することで、放送録画再生装置は、映像・音声を途切れなく再生し続けることが可能となる。ＰＥＳパケットは、実際に伝送される際、一つのＴＳパケットのペイロードよりも大きいサイズをもつ場合は分割されて複数のＴＳパケットのペイロードに格納される。
【００４６】
図７はＰＥＳパケットを伝送する際の分割例を表す。ＰＥＳパケット７０１は一つのＴＳパケット内のペイロードに格納して伝送するには大きいため、ＰＥＳパケット分割Ａ７０２ａ、ＰＥＳパケット分割Ｂ７０２ｂ、ＰＥＳパケット分割Ｃ７０２ｃに分割され、同一ＰＩＤをもつ三つのＴＳパケット７０３〜７０５によって伝送される。実際には、映像や音声は、複数のＰＥＳパケットのペイロードに含まれるデータを結合して得られるエレメンタリストリーム（ＥＳ）として得られる。このエレメンタリストリームは、ＭＰＥＧ２ Ｖｉｄｅｏ規格やＭＰＥＧ１、２ Ａｕｄｉｏ規格で定義されるディジタル化映像、音声の形式になっている。
【００４７】
一方、番組編成情報やデータ放送用のデータ等の情報はＭＰＥＧ２セクションと呼ばれる形式を用いて表現される。ＭＰＥＧ２セクションは実際に伝送される際、一つのＴＳパケットのペイロードよりも大きいサイズをもつ場合は分割されて複数のＴＳパケットのペイロードに格納される。
【００４８】
図８はＭＰＥＧ２セクションを伝送する際の分割例を表す。ＭＰＥＧ２セクション８０１は一つのＴＳパケット内のペイロードに格納して伝送するには大きいため、セクション分割Ａ８０２ａ、セクション分割Ｂ８０２ｂ、セクション分割Ｃ８０２ｃに分割され、同一ＰＩＤをもつ三つのＴＳパケット８０３〜８０５によって伝送される。
【００４９】
図９はＭＰＥＧ２セクションの構造を表現する。ＭＰＥＧ２セクション９００はヘッダ９０１およびペイロード９０２から構成される。ヘッダ９０１はＭＰＥＧ２セクションの制御情報を保持する。その構成はヘッダ構成９０３によって表現される。ペイロード９０２はＭＰＥＧ２セクション９００が伝送するデータを保持する。ヘッダ構成９０３に存在するｔａｂｌｅ＿ｉｄはＭＰＥＧ２セクションの種類を表現し、さらにｔａｂｌｅ＿ｉｄ＿ｅｘｔｅｎｓｉｏｎはｔａｂｌｅ＿ｉｄが等しいＭＰＥＧ２セクション同士を区別する際に用いられる拡張識別子である。
【００５０】
ＭＰＥＧ２セクションの使用例として、図１０に番組編成情報を伝送する場合を挙げる。この例では、行１００４に記載されるように、放送信号の復調に必要な情報はヘッダ構成９０３内のｔａｂｌｅ＿ｉｄが６４であるＭＰＥＧ２セクションに記載され、さらにそのＭＰＥＧ２セクションはＰＩＤに１６が付与されたＴＳパケットによって伝送される。
【００５１】
ＭＰＥＧ２セクションの場合、ＰＥＳ形式は存在しない。そのため、ＭＰＥＧ２トランスポートストリームの中の同一ＰＩＤによって識別されるＴＳパケットのペイロードを結合したものをエレメンタリーストリーム（ＥＳ）とする。例えば、図８において、ＭＰＥＧ２セクション８０１を分割して伝送しているＴＳパケット８０３〜８０５はすべてＰＩＤが２００で識別される。これはＭＰＥＧ２セクション８０１を伝送するＥＳである、と言うことができる。
【００５２】
ＭＰＥＧ２トランスポートストリーム内にはさらにプログラムという概念が存在する。プログラムはＥＳの集合として表現され、複数のＥＳをまとめて扱いたい場合に利用される。プログラムを利用すると、映像・音声や、それに付随するデータ放送用データ等を一まとめに扱うことが可能となる。例えば、同時に再生したい映像・音声をまとめて扱う場合、映像ＥＳと、音声ＥＳをプログラムとしてまとめることで、放送録画再生装置はこれら二つのＥＳを１つの番組として同時に再生すべきであることがわかる。
【００５３】
プログラムを表現するために、ＭＰＥＧ２ではＰＭＴ（Ｐｒｏｇｒａｍ  Ｍａｐ  Ｔａｂｌｅ）およびＰＡＴ（Ｐｒｏｇｒａｍ  Ａｓｓｏｃｉａｔｉｏｎ  Ｔａｂｌｅ）と呼ばれる二つのテーブルが利用される。詳細な説明はＩＳＯ／ＩＥＣ１３８１８−１、“ＭＰＥＧ２  Ｓｙｓｔｅｍｓ”仕様を参照されたい。以下ではＰＭＴおよびＰＡＴに関して簡単に説明する。
【００５４】
ＰＭＴはＭＰＥＧ２トランスポートストリーム中に、プログラムの数だけ含まれるテーブルである。ＰＭＴはＭＰＥＧ２セクションとして構成され、ｔａｂｌｅ＿ｉｄは２である。ＰＭＴにはプログラムの識別に用いられるプログラムナンバーとプログラムの付加情報、さらにプログラムに属するＥＳに関する情報を保持する。
【００５５】
ＰＭＴの例を図１１に挙げる。１１００はプログラムナンバーである。プログラムナンバーは同一トランスポートストリーム内でプログラムに一意に割り当てられ、ＰＭＴの識別に用いられる。行１１１１〜１１１５は個々のＥＳに関する情報を表現する。列１１０１はＥＳのタイプであり、“映像”、“音声”、“データ”等が指定される。列１１０２はＥＳを構成するＴＳパケットのＰＩＤである。列１１０３はＥＳに関する付加情報である。例えば、行１１１１に表されるＥＳは、音声ＥＳであり、ＰＩＤが５０１１であるＴＳパケットによって伝送される。
【００５６】
ＰＡＴはＭＰＥＧ２トランスポートストリームに一つだけ存在するテーブルである。ＰＡＴはＭＰＥＧ２セクションとして構成され、ｔａｂｌｅ＿ｉｄは０であり、ＰＩＤが０であるＴＳパケットによって伝送される。ＰＡＴには、ＭＰＥＧ２トランスポートストリームの識別に用いられるｔｒａｎｓｐｏｒｔ＿ｓｔｒｅａｍ＿ｉｄと、ＭＰＥＧ２トランスポートストリーム内に存在するプログラムを表現するすべてのＰＭＴに関する情報を保持する。
【００５７】
ＰＡＴの例を図１２に挙げる。１２００はｔｒａｎｓｐｏｒｔ＿ｓｔｒｅａｍ＿ｉｄである。ｔｒａｎｓｐｏｒｔ＿ｓｔｒｅａｍ＿ｉｄはＭＰＥＧ２トランスポートストリームの識別に用いられる。行１２１１〜１２１３はプログラムに関する情報を表現する。列１２０１はプログラムナンバーである。列１２０２はプログラムに対応するＰＭＴを伝送するＴＳパケットのＰＩＤである。例えば、行１２１１に表されるプログラムのＰＭＴは、プログラムナンバーが１０１であり、対応するＰＭＴはＰＩＤが５０１であるＴＳパケットによって伝送される。
【００５８】
端末装置があるプログラムを再生する場合は、ＰＡＴおよびＰＭＴを用いてプログラムを構成する映像・音声を特定し、それらを再生する。
【００５９】
例えば、図１２のＰＡＴおよび図１１のＰＭＴを伝送するＭＰＥＧ２トランスポートストリームに関して、プログラムナンバーが１０１であるプログラムに属する映像・音声の再生を行う場合は以下のような手順をとる。まずＰＩＤが“０”であるＴＳパケットより、ｔａｂｌｅ＿ｉｄが“０”のＭＰＥＧ２セクションとして伝送されるＰＡＴを取得する。ＰＡＴよりプログラムナンバーが“１０１”であるプログラムを探索し、行１２１１を得る。行１２１１より、プログラムナンバーが“１０１”であるプログラムのＰＭＴを伝送するＴＳパケットのＰＩＤ“５０１”を得る。次いでＰＩＤが“５０１”であるＴＳパケットより、ｔａｂｌｅ＿ｉｄが“２”のＭＰＥＧ２セクションとして伝送されるＰＭＴを取得する。ＰＭＴより、音声のＥＳ情報である行１１１１および映像のＥＳ情報である行１１１２を得る。行１１１１より、音声ＥＳを伝送するＴＳパケットのＰＩＤ“５０１１”を得る。また行１１１２より、映像ＥＳを伝送するＴＳパケットのＰＩＤ“５０１２”を得る。次いでＰＩＤ“５０１１”のＴＳパケットより音声用ＰＥＳパケットを、ＰＩＤ“５０１２”のＴＳパケットより映像用ＰＥＳパケットを取得する。これにより、再生対象となる映像・音声のＥＳパケットを取得することが可能となり、プログラムナンバー１０１を構成する映像と音声を再生することができる。
【００６０】
なお、ＭＰＥＧ２トランスポートストリームは暗号化されている場合がある。これは限定視聴とも呼ばれる仕組みである。例えば、ある映像・音声情報を伝送するＰＥＳパケットに対して暗号化処理を行うことで、その暗号を解読できる特定視聴者のみが視聴できるようになる。暗号を解読して映像や音声を視聴するために、視聴者はデスクランブラと呼ばれるデバイスを用いて暗号解除を行う。例えば、ＯＣＡＰ対応の端末装置は、デスクランブラを内蔵したカード型のアダプタを利用する。ケーブルテレビのオペレータは、視聴者ごとに特定のプログラムを解読できるように設定したアダプタを配布し、視聴者はそのアダプタを端末装置に挿入する。すると、アダプタは、暗号解除鍵等の暗号解除情報や各契約者の契約情報を元に、特定のプログラムに関して暗号を解除する。暗号解除の方式や、暗号解除鍵の入手方法はアダプタ依存であり、本発明の実現には影響しない。
【００６１】
ここまでＭＰＥＧ２仕様に関する簡単な説明を行ったが、ここで、単語の詳細な定義を行う。本発明に関して、「プログラム」という単語が二種類存在する。一つはＭＰＥＧ２仕様に登場する「プログラム」であり、もう一つはＣＰＵが実行するコードの集合という意味での「プログラム」である。前者に関しては、運用規定で用いられる「サービス」という単語と同義であるため、混乱を避けるため、以降、前者を「サービス」と呼び、後者を単に「プログラム」とよぶ。さらに後者に関して、特にＪａｖａ言語で記述された「プログラム」を「Ｊａｖａプログラム」とよぶ。
【００６２】
以上、本発明に関わる、ＭＰＥＧ２仕様にて決定されるいくつかの一般的な情報に関して説明を行った。以降、本実施の形態で用いる放送録画再生端末に関して詳細に説明する。
【００６３】
図１３は、本実施例の放送録画再生装置の一般的なハードウェア構成を表すブロック図であり、すなわち図１における端末装置１１１、１１２、１１３の具体的な内部構成である。１３００は記録装置または記録再生装置たる放送録画再生装置であり、チューナ１３０１、ＴＳデコーダ（ＴＳ  Ｄｅｍｕｌｔｉｐｌｅｘｅｒ）１３０２、ＡＶデコーダ１３０３、スピーカ１３０４、ディスプレイ１３０５、ＣＰＵ１３０６、２次記憶部１３０７、１次記憶部１３０８、ＲＯＭ１３０９、入力部１３１０、アダプタ１３１１、ＡＶエンコーダ１３１２、多重器（ＭＰＥＧ２  Ｔｒａｎｓｐｏｒｔ  Ｓｔｒｅａｍ  Ｍｕｌｔｉｐｌｅｘｅｒ等）１３１３で構成される。なお本実施例は、ＯＣＡＰ−ＤＶＲ仕様で実現される放送録画再生端末を拡張して得られるものであり、基本的なハードウェア構成はＯＣＡＰ−ＤＶＲ仕様で要求されるものとほぼ同じである。
【００６４】
チューナ１３０１は、ＣＰＵ１３０６が指定する周波数等のチューニング情報に従って、放送局側システム１０１から伝送される変調された放送信号を復調するデバイスである。ここで、チューニング情報は、周波数や変調方式等が特定可能な情報である。チューナ１３０１が復調した結果得られるＭＰＥＧ２トランスポートストリームは、暗号解除機能をもつアダプタ１３１１を経て、ＴＳデコーダ１３０２に送信される。
【００６５】
ＴＳデコーダ１３０２は、ＣＰＵ１３０６が指定するＰＩＤ、セクションフィルタ条件等の指定にもとづいてＭＰＥＧ２トランスポートストリームから指定条件に合致するＰＥＳパケットやＭＰＥＧ２セクションを選別する機能をもつデバイスである。放送を受信してサービスを記録せずに再生する場合は、アダプタ１３１１が出力するＭＰＥＧ２トランスポートストリームがＴＳデコーダ１３０２に入力される。一方、２次記憶部１３０７に記録されているサービスを再生する場合は、２次記憶部１３０７が出力するＭＰＥＧ２トランスポートストリームがＴＳデコーダ１３０２に入力される。いずれの入力を受けるかは、ＣＰＵ１３０６によって制御される。
【００６６】
ＴＳデコーダ１３０２が選別した映像および音声のＰＥＳパケットは、ＡＶデコーダ１３０３に出力される。また、ＴＳデコーダ１３０２が選別したＭＰＥＧ２セクションは、１次記憶部１３０８にＤＭＡ（Ｄｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ）転送され、ＣＰＵ１３０６が実行するプログラムによって利用される。
【００６７】
ＡＶデコーダ１３０３はエンコードされた映像ＥＳおよび音声ＥＳをデコードする機能をもつデバイスである。ＡＶデコーダはＴＳデコーダから転送される音声および映像情報を伝送するＰＥＳパケットからＥＳを取り出してデコードする。ＡＶデコーダ１３０３がデコードして得られたａｕｄｉｏ信号およびｖｉｄｅｏ信号は、サービスの再生時にはスピーカ１３０４、ディスプレイ１３０５に出力されるが、一方、サービスの記録時にはＡＶエンコーダ１３１２へ出力される。いずれの出力経路を取るかは、ユーザの指示に従ってＣＰＵ１３０６によって制御される。
【００６８】
スピーカ１３０４は、ＡＶデコーダ１３０３から出力された音声を再生する。
ディスプレイ１３０５は、ＡＶデコーダ１３０３から出力された映像を再生する。
【００６９】
ＣＰＵ１３０６は放送録画再生装置上で動作するプログラムを実行する。ＣＰＵ１３０６は、ＲＯＭ１３０９に内蔵されるプログラムを実行する。あるいは、放送信号やネットワークよりダウンロードされ１次記憶部１３０８に保持されているプログラムも実行する。あるいは、放送信号やネットワークよりダウンロードされ２次記憶部１３０７に保存されているプログラムも実行する。そして実行するプログラムの指示に従い、チューナ１３０１、ＴＳデコーダ１３０２、ＡＶデコーダ１３０３、スピーカ１３０４、ディスプレイ１３０５、２次記憶部１３０７、１次記憶部１３０８、ＲＯＭ１３０９、入力部１３１０、アダプタ１３１１、ＡＶエンコーダ１３１２、多重器１３１３を制御する。また、ＣＰＵ１３０６は端末装置１３００内に存在するデバイスだけでなく、アダプタ１３１１内のデバイスと通信し、アダプタ１３１１を制御することが可能である。
【００７０】
２次記憶部１３０７は機器の電源が遮断されても記憶が消去されない記憶装置である。例えばＦＬＡＳＨ−ＲＯＭ等の不揮発性メモリ、ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）、ＣＤ−ＲやＤＶＤ−Ｒ等の書き換え可能のメディア等、端末装置１３００の電源断の際にも情報が消去されない機器によって構成され、ＣＰＵ１３０６の指示により情報の保存を行う。
【００７１】
１次記憶部１３０８は、ＣＰＵ１３０６やＤＭＡ転送可能なデバイスの指示に従って情報を一時的に保存する機能をもつデバイスであり、ＲＡＭ等によって構成される。
【００７２】
ＲＯＭ１３０９は、書き換え不可能なメモリーデバイスであり、具体的にはＲＯＭやＣＤ−ＲＯＭ、ＤＶＤ等で構成される。ＲＯＭ１３０９には、ＣＰＵ１３０６が実行するプログラムが格納されている。
【００７３】
入力部１３１０は、具体的には、フロントパネルやリモコン受信機で構成され、ユーザからの入力を受け付ける。
【００７４】
図１４は、フロントパネルで入力部１３１０を構成した場合の一例である。フロントパネル１４００は七つのボタン、上カーソルボタン１４０１、下カーソルボタン１４０２、左カーソルボタン１４０３、右カーソルボタン１４０４、ＯＫボタン１４０５、取消ボタン１４０６、ＥＰＧボタン１４０７、モード切換ボタン１４０８を備えている。ユーザがボタンを押下すると、押下されたボタンの識別子が、ＣＰＵ１３０６に通知される。
【００７５】
アダプタ１３１１は、Ｉｎ−ｂａｎｄ周波数帯で伝送されるＭＰＥＧ２トランスポートストリームにかけられた暗号を解除する装置で、1つ以上のデスクランブラを搭載する。アダプタ１３１１にはチューナ１３０１ａが出力するＭＰＥＧ２トランスポートストリームが入力され、ＣＰＵ１３０６が指定したＰＩＤをもつＴＳパケットに対して暗号解除を行う。アダプタ１３１１は、暗号を解除したＭＰＥＧ２トランスポートストリームをＴＳデコーダ１３０２に出力する。
【００７６】
さらに、アダプタ１３１１は、ＯＯＢ周波数帯で伝送されるデータの形式変換も行う。ＯＯＢで伝送される情報は、ＱＰＳＫ変調方式で変調される。下り方向の伝送に関しては、ＱＰＳＫ復調器１３０１ｂは放送局側システム１０１から送信されてくる下りの信号を復調し、生成されたビットストリームをアダプタ１３１１に入力する。アダプタ１３１１はビットストリームが含む様々な情報の中から、ＣＰＵ１３０６が指定する情報を抽出して、ＣＰＵ１３０６上で動作するプログラムが解釈可能な形式に変換して、ＣＰＵ１３０６に提供する。一方、上り方向の伝送に関しては、ＣＰＵ１３０６が、放送局側システム１０１に対して送信したい情報を、アダプタ１３１１に入力する。アダプタ１３１１は、ＣＰＵ１３０６から入力された情報を放送局側システム１０１が解釈可能な形式に変換し、ＱＰＳＫ変調器１３０１ｃに入力する。ＱＰＳＫ変調器１３０１ｃはアダプタ１３１１から入力された情報をＱＰＳＫ変調し、放送局側システム１０１に送信する。
【００７７】
アダプタ１３１１の具体例としては、米国ケーブルシステムで利用されるＣａｂｌｅＣＡＲＤ、旧名ＰＯＤ（Ｐｏｉｎｔ  Ｏｆ  Ｄｅｐｌｏｙｍｅｎｔ）が挙げられる。
【００７８】
ＡＶエンコーダ１３１２は、ＡＶデコーダ１３０３によってデコードされたａｕｄｉｏ信号をＭＰＥＧ  ａｕｄｉｏ形式の音声にエンコードし、ｖｉｄｅｏ信号をＭＰＥＧ  ｖｉｄｅｏ形式の映像にエンコードする。ＡＶエンコーダ１３１２がエンコードした映像および音声は、多重器１３１３へ出力される。
【００７９】
多重器１３１３は、ＡＶエンコーダ１３１２から入力された映像および音声を、ＭＰＥＧ２トランスポートストリームへ多重化する機能をもつデバイスである。
【００８０】
以上説明した放送録画再生装置が、放送波に含まれるサービスを２次記憶部１３０７に記録する動作と、２次記憶部１３０７から逐次読み出してサービスを再生する動作について、以下に詳細に説明する。
【００８１】
まず、放送波に含まれるサービスを２次記憶部１３０７に記録する動作について述べる。
【００８２】
図１５に、サービスの記録時における、各デバイスの物理的な接続順序と処理内容、入出力のデータ形式を表現する概念図を示す。１５００は端末装置であり、チューナ１３０１、アダプタ１３１１、デスクランブラ１５０１、ＴＳデコーダ１３０２、ＰＩＤフィルタ１５０２、セクションフィルタ１５０３、ＡＶデコーダ１３０３、１次記憶部１３０８、ＡＶエンコーダ１３１２、多重器１３１３、および、記録領域１５０４をもつ。図１５の構成要素のうち、図１３の構成要素と同一符号を持つものは、それらと同等の機能をもつため、説明を省略する。
【００８３】
まずＣＰＵ１３０６が指定したチューニング情報に従って、チューナ１３０１が放送波をチューニングする。ここで、チューニング情報は、周波数や変調方式等が特定可能な情報である。チューナ１３０１は、放送波を復調し、アダプタ１３１１にＭＰＥＧ２トランスポートストリームを入力する。
【００８４】
アダプタ１３１１内にあるデスクランブラ１５０１は、視聴者ごとの限定解除情報に基づいて、ＭＰＥＧ２トランスポートストリームの暗号解除を行う。暗号解除されたＭＰＥＧ２トランスポートストリームは、ＴＳデコーダに入力される。
【００８５】
ＴＳデコーダ１３０２内にはＭＰＥＧ２トランスポートストリームに対して処理を行う２種類のデバイス、ＰＩＤフィルタ１５０２、セクションフィルタ１５０３が存在する。
【００８６】
ＰＩＤフィルタ１５０２は、入力されたＭＰＥＧ２トランスポートストリームから、ＣＰＵ１３０６が指定したＰＩＤをもつＴＳパケットを抽出し、さらにそのペイロードに存在するＰＥＳパケットやＭＰＥＧ２セクションを抽出する。例えば、ＣＰＵ１３０６がＰＩＤ＝１００のＴＳパケットを抽出するＰＩＤフィルタリングを指示した場合に図６のＭＰＥＧ２トランスポートストリームが入力されたとすると、パケット６０１および６０３が抽出されて更に連結され、映像１のＰＥＳパケットが再構成される。あるいは、ＣＰＵ１３０６がＰＩＤ＝２００のＴＳパケットを抽出するＰＩＤフィルタリングを指示した場合に図６のＭＰＥＧ２トランスポートストリームが入力されたとすると、パケット６０２および６０５が抽出されて更に連結され、データ１のＭＰＥＧ２セクションが再構成される。
【００８７】
セクションフィルタ１５０３は、入力されたＭＰＥＧ２セクションの中から、ＣＰＵ１３０６が指定するセクションフィルタ条件に合致するＭＰＥＧ２セクションを抽出し、１次記憶部１３０８にＤＭＡ転送する。例えば、ＣＰＵ１３０６はＰＩＤ＝２００のＴＳパケットを抽出するＰＩＤフィルタリングとｔａｂｌｅ＿ｉｄが６４であるセクションを抽出するセクションフィルタリングをセクションフィルタ１５０３に対して指定したとする。先に述べたように、データ１のＭＰＥＧ２セクションが再構成された後、セクションフィルタ１５０３はそのＭＰＥＧ２セクションの中からｔａｂｌｅ＿ｉｄが６４であるセクションのみを抽出し、１次記憶部１３０８にＤＭＡ転送する。
【００８８】
１次記憶部１３０８に入力されたＭＰＥＧ２セクションは、多重器１３１３に入力される。
【００８９】
ＴＳデコーダ１３０２によって抽出された映像ＰＥＳパケットと音声ＰＥＳパケットは、ＡＶデコーダ１３０３に入力される。
【００９０】
ＡＶデコーダは、映像ＰＥＳパケットをデコードして映像に変換し、ＡＶエンコーダ１３１２に入力する。また音声ＰＥＳパケットをデコードして音声に変換し、ＡＶエンコーダ１３１２に入力する。
【００９１】
ＡＶエンコーダ１３１２は、映像をＭＰＥＧ  ｖｉｄｅｏに変換し、多重器１３１３に入力する。また音声をＭＰＥＧ  ａｕｄｉｏに変換し、多重器１３１３に入力する。
【００９２】
多重器１３１３は、ＡＶエンコーダから入力されたＭＰＥＧ  ｖｉｄｅｏとＭＰＥＧ  ａｕｄｉｏと、１次記憶１３０８から入力されたＭＰＥＧ２セクションを多重してＭＰＥＧ２トランスポートストリームを生成する。生成されたＭＰＥＧ２トランスポートストリームは、記録領域１５０４に記録される。
【００９３】
記録領域１５０４は２次記憶部１３０７の全体または一部、あるいは、その他の記録領域で構成され、サービスを構成するＭＰＥＧ２トランスポートストリームを記憶する。
【００９４】
次いで、２次記憶部１３０７から逐次読み出してサービスを再生する動作について述べる。
【００９５】
図１６に、サービスの再生時における、各デバイスの物理的な接続順序と処理内容、入出力のデータ形式を表現する概念図を示す。１６００は端末装置であり、記録領域１５０４、ＴＳデコーダ１３０２、ＰＩＤフィルタ１５０２、セクションフィルタ１５０３、ＡＶデコーダ１３０３、スピーカ１３０４、ディスプレイ１３０５、および、１次記憶部１３０８をもつ。図１６の構成要素のうち、図１３の構成要素と同一符号を持つものは、それらと同等の機能をもつため、説明を省略する。
【００９６】
図１５で説明した手順で記録領域１５０４に記録されたＭＰＥＧ２トランスポートストリームが、ＴＳデコーダ１３０２に入力される。
【００９７】
次いで、ＴＳデコーダ１３０２内のＰＩＤフィルタ１５０２によって、ＣＰＵ１３０６が指定したＰＩＤを持つ映像ＰＥＳおよび音声ＰＥＳが抽出される。抽出されたＰＥＳパケットはＡＶデコーダ１３０３に入力される。あるいは、ＴＳデコーダ１３０２内のＰＩＤフィルタ１５０２とセクションフィルタ１５０３によって、ＣＰＵ１３０６が指定したＰＩＤとｔａｂｌｅ＿ｉｄ持つＭＰＥＧ２セクションが抽出される。抽出されたＭＰＥＧ２セクションは１次記憶部１３０８にＤＭＡ転送される。
【００９８】
ＡＶデコーダ１３０３に入力された映像ＰＥＳと音声ＰＥＳは、デコードされてａｕｄｉｏ信号およびｖｉｄｅｏ信号が出力される。その後、ａｕｄｉｏ信号およびｖｉｄｅｏ信号はディスプレイ１３０５およびスピーカ１３０４に入力され、映像および音声が再生される。
【００９９】
１次記憶部１３０８に入力されたＭＰＥＧ２セクションは、適宜ＣＰＵ１３０６に入力される。
【０１００】
ここまでは、本発明に関するハードウェアの構成例に関して述べたが、以降、本発明の主要機能である、Ｊａｖａプログラムによるサービスの記録制御に関して説明する。
【０１０１】
本発明におけるサービスの記録とは、サービスに含まれる映像、音声、Ｊａｖａプログラム、Ｊａｖａプログラムの同期情報等をハードディスク、ＢＤ（Ｂｌｕ−ｒａｙ  Ｄｉｓｃ）、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｃ）、ＳＤ（Ｓｅｃｕｒｅ  Ｄｉｇｉｔａｌ）メモリカードといった記録媒体に記録することである。サービスの再生とは、記録媒体に記録された映像、音声、Ｊａｖａプログラムを同期情報に基づいて再生および実行することである。記録済みサービスの再生結果は、放送波を受信して直接サービスを再生した結果とほぼ等価であることが要求される。
【０１０２】
図１７は、サービスの記録と再生に必要とされるプログラムの構成図であり、ＲＯＭ１３０９に記憶されているソフトウェアである。
【０１０３】
プログラム１７００は、サブプログラムであるＯＳ１７０１、ＥＰＧ１７０２、ＪａｖａＶＭ１７０３、Ｊａｖａライブラリ１７０４で構成される。
【０１０４】
ＯＳ１７０１は、オペレーティングシステム（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）であり、Ｌｉｎｕｘ、Ｗｉｎｄｏｗｓ等が一例である。ＯＳ１７０１は、他のサブプログラム、例えばＥＰＧ１７０２とＪａｖａＶＭ１７０３を実行するためのカーネル１７０１ａ、サブプログラムが端末装置１３００の構成要素を制御するために利用するライブラリ１７０１ｂで構成される。カーネル１７０１ａは公知技術であり、詳細な説明は省略する。
【０１０５】
ライブラリ１７０１ｂは、例えばチューナを制御するチューニング機能を提供する。ライブラリ１７０１ｂは、他のサブプログラムから周波数や変調方式等が特定可能なチューニング情報を受け取り、それをチューナ１３０１に引き渡す。チューナ１３０１は与えられたチューニング情報にもとづき復調処理を行い、復調したＭＰＥＧ２トランスポートストリームをＴＳデコーダ１３０２に引き渡すことができる。この結果、他のサブプログラムはライブラリ１７０１ｂを通してチューナ１３０１を制御することができる。
【０１０６】
また、ライブラリ１７０１ｂは、チャンネルを一意に識別するためのチャンネル情報を提供する。
【０１０７】
チャンネル情報の一例を図２０に示す。チャンネル情報はＯＯＢあるいはＩｎ−ｂａｎｄ周波数帯を利用して送信され、アダプタ１３１１で表形式に変換され、ライブラリがアクセス可能な１次記憶部に格納される。列２００１は、チャンネル識別子で、例えば、ＳＣＴＥ  ６５  Ｓｅｒｖｉｃｅ  Ｉｎｆｏｒｍａｔｉｏｎ  Ｄｅｌｉｖｅｒｅｄ  Ｏｕｔ−Ｏｆ−Ｂａｎｄ  Ｆｏｒ Ｄｉｇｉｔａｌ Ｃａｂｌｅ Ｔｅｌｅｖｉｓｉｏｎで定義されるｓｏｕｒｃｅ＿ＩＤが相当する。列２００２は、チャンネル名であり、同ＳＣＴＥ  ６５規格ではｓｏｕｒｃｅ＿ｎａｍe等に相当する。列２００３はチューニング情報であり、周波数や転送レート、変調方式が特定可能な情報であって、チューナ１３０１に与える情報である。列２００４はＰＭＴを指定するためのプログラムナンバーである。例えば、行２０１１はチャンネル識別子が「１」、チャンネル名が「チャンネル１」、チューニング情報に周波数「１５０ＭＨｚ，．．．．」、プログラムナンバーが「１０１」であるサービス情報の組となっている。
【０１０８】
ＪａｖａＶＭ１７０３は、Ｊａｖａ（登録商標）言語で記述されたプログラムを逐次解析し実行するＪａｖａバーチャルマシンである。Ｊａｖａ言語で記述されたプログラムはバイトコードと呼ばれる、ハードウェアに依存しない中間コードにコンパイルされる。Ｊａｖａバーチャルマシンは、このバイトコードを実行するインタープリタである。ＪａｖａＶＭ１７０３は、Ｊａｖａ言語で記述されたＪａｖａライブラリ１７０４を実行する。Ｊａｖａ言語やＪａｖａＶＭの詳細は、書籍「Ｊａｖａ  Ｌａｎｇｕａｇｅ  Ｓｐｅｃｉｆｉｃａｔｉｏｎ（ＩＳＢＮ  ０−２０１−６３４５１−１）」や「Ｊａｖａ  Ｖｉｒｔｕａｌ  Ｍａｃｈｉｎｅ  Ｓｐｅｃｉｆｉｃａｔｉｏｎ（ＩＳＢＮ  ０−２０１−６３４５１―Ｘ）」等を参照のこと。また、ＪＮＩ（Ｊａｖａ  Ｎａｔｉｖｅ  Ｉｎｔｅｒｆａｃｅ）を通して、Ｊａｖａ言語で記述されていない他のサブプログラムを呼び出したり、または、呼び出されたりすることが可能である。ＪＮＩに関しては、書籍「Ｊａｖａ  Ｎａｔｉｖｅ  Ｉｎｔｅｒｆａｃｅ」等を参照のこと。
【０１０９】
Ｊａｖａライブラリ１７０４は、Ｊａｖａプログラムが放送録画再生装置の機能を制御するために呼び出すＪａｖａ言語で記述されたライブラリである。ただし、必要に応じて、ＯＳ１７０１のライブラリ１７０１ｂ等非Ｊａｖａ言語で記述されたサブプログラムを利用することもある。Ｊａｖａプログラムは、Ｊａｖａライブラリ１７０４が持つＪａｖａ  ＡＰＩ（アプリケーションプログラミングインタフェース）を呼び出すことで、Ｊａｖａライブラリ１７０４が提供する機能を利用できる。
【０１１０】
Ｔｕｎｅｒ１７０４ｃは、放送録画再生端末のＩｎ−ｂａｎｄ受信用チューナ１３０１ａを制御するためのＪａｖａライブラリである。ＪａｖａプログラムがＴｕｎｅｒ１７０４ｃにチューニング情報を渡すと、Ｔｕｎｅｒ１７０４ｃはそれを用いてライブラリ１７０１ｂのチューナ機能を呼び出し、結果、放送録画再生端末のＩｎ−ｂａｎｄ受信用チューナ１３０１ａの動作を制御できる。ここで、チューニング情報は、周波数や変調方式等が特定可能な情報である。
【０１１１】
ＳＦ１７０４ｅは、放送録画再生端末のＰＩＤフィルタ１５０２およびセクションフィルタ１５０３機能を制御するためのＪａｖａライブラリである。ＪａｖａプログラムがＳＦ１７０４ｅにＰＩＤやｔａｂｌｅ＿ｉｄ等のフィルタ条件を渡すと、ＳＦ１７０４ｅはその条件を元にライブラリ１７０１ｂの機能等を用いてＰＩＤフィルタ１５０２およびセクションフィルタ１５０３を制御し、所望のフィルタ条件に叶うＭＰＥＧ２セクションを取得して、フィルタ条件を設定したＪａｖａプログラムに渡す。
【０１１２】
ＤＳＭ−ＣＣ１７０４ｄは、ＤＳＭ−ＣＣオブジェクトカルーセルのファイルシステムにアクセスするためのＪａｖａライブラリである。ＤＳＭ−ＣＣオブジェクトカルーセルは、ＳＦ１７０４ｅによって取得されるＭＰＥＧ２セクションが内包している。ＤＳＭ−ＣＣは、ＩＳＯ／ＩＥＣ１３８１８−６規格で定義されており、ＭＰＥＧ２セクションを利用して任意のファイルを伝送するための仕組みである。これを利用することで、放送局から端末にファイルを伝送することができる。ＤＳＭ−ＣＣ１７０４ｄは、Ｊａｖａプログラム等から指定されたファイル識別子等を元に、ＳＦ１７０４ｅを利用してＭＰＥＧ２セクションを取得し、ＩＳＯ／ＩＥＣ１３８１８−６規格に基づいてファイルを取り出して一次記憶部１３０８に出力する。ＤＳＭ−ＣＣの詳細な実現方法は本発明とは関係ないため、説明を省略する。
【０１１３】
ＡＭ１７０４ｂは、サービスに含まれるＪａｖａプログラムの実行や終了を管理する機能を提供するアプリケーションプログラムマネージャである。ＡＭ１７０４ｂは指定されたＭＰＥＧ２トランスポートストリームの指定されたチャンネルに多重されたＪａｖａプログラムを抽出し、その抽出したＪａｖａプログラムを別途多重された同期情報に従って実行したり、あるいは終了させたりする。ＪａｖａプログラムのＪａｖａクラスファイルは、前述のＤＳＭ−ＣＣ方式でＭＰＥＧ２トランスポートストリームに多重されている。また、Ｊａｖａプログラムの同期情報はＡＩＴと呼ばれる形式で、ＭＰＥＧ２トランスポートストリームに多重されている。ＡＩＴは、ＤＶＢ−ＭＨＰ規格（ＥＴＳＩ  ＴＳ  １０１  ８１２  ＤＶＢ−ＭＨＰ仕様Ｖ１．０．２）の１０章に定義されている、Ａｐｐｌｉｃａｔｉｏｎ  Ｉｎｆｏｒｍａｔｉｏｎ  Ｔａｂｌｅの略であり、ｔａｂｌｅ＿ｉｄが「０ｘ７４」であるＭＰＥＧ２セクションである。
【０１１４】
ＡＭ１７０４ｂは、ＭＰＥＧ２トランスポートストリームとチャンネル識別子を入力として、ＡＩＴの更新状況を監視するとともに、ＡＩＴが更新された場合は、そのＡＩＴにもとづいて、Ｊａｖａプログラムを起動あるいは終了する等の処理を実行する。まず、ＡＭ１７０４ｂは、指定されたチャンネル識別子をキーとしてライブラリ１７０１ｂのチャンネル情報を検索し、プログラムナンバーを得る。次にＳＦ１７０４ｅ等を利用して、ＭＰＥＧ２トランスポートストリームからＰＡＴを取得する。さらにＰＭＴの情報から、先ほど得られたプログラムナンバーに対応するＰＭＴのＰＩＤが得られる。再度ＳＦ１７０４ｅを利用して、実際のＰＭＴを取得する。取得されたＰＭＴは図１１の形式をしており、ストリーム種別が「データ」で補足情報として「ＡＩＴ」をもつエレメンタリーストリームのＰＩＤが書かれている。更にＳＦ１７０４ｅに、フィルタリング条件として今得られたＡＩＴのＰＩＤとｔａｂｌｅ＿ｉｄ「０ｘ７４」を与えると、ＡＩＴの実体が得られる。
【０１１５】
図２２は、ＡＩＴの情報の一例を模式的に表した表である。ＡＩＴバージョン２２００は、そのＡＩＴのバージョンを表現する。ＡＩＴバージョンが大きいほど、そのＡＩＴはより新しいＡＩＴである。等しいＡＩＴバージョンをもつＡＩＴは繰り返し受信されるが、ＡＭ１７０４ｂはすでに解析したＡＩＴと等しいＡＩＴバージョンをもつＡＩＴは解析せず、すでに解析したＡＩＴよりも新しいＡＩＴのみを解析して、それに対応した処理をする。列２２０１はＪａｖａプログラムの識別子である。列２２０２はＪａｖａプログラムの制御情報である。制御情報には「ａｕｔｏｓｔａｒｔ」「ｐｒｅｓｅｎｔ」「ｋｉｌｌ」等があり、「ａｕｔｏｓｔａｒｔ」は即時に端末装置１３００がこのＪａｖａプログラムを自動的に実行することを意味し、「ｐｒｅｓｅｎｔ」は自動実行しないことを意味し、「ｋｉｌｌ」はＪａｖａプログラムを停止することを意味する。列２２０３は、ＤＳＭ−ＣＣ方式でＪａｖａプログラムを含んでいるＰＩＤを抽出するためのＤＳＭ−ＣＣ識別子である。列２２０４はＪａｖａプログラムのプログラム名である。
【０１１６】
行２２１１、行２２１２、行２２１３、行２２１４は、Ｊａｖａプログラムの情報の組である。行２２１１で定義されるＪａｖａプログラムは、Ｊａｖａプログラムの識別子「３０１」、制御情報「ａｕｔｏｓｔａｒｔ」、ＤＳＭ−ＣＣ識別子「１」、プログラム名「ａ／ＴｏｐＸｌｅｔ」の組である。同様に、行２２１２で定義されるＪａｖａプログラムは、Ｊａｖａプログラムの識別子「３０２」、制御情報「ｐｒｅｓｅｎｔ」、ＤＳＭ−ＣＣ識別子「１」、プログラム名「ｂ／ＧａｍｅＸｌｅｔ」の組である。ここで、行２２１１、行２２１２、行２２１４で定義される３つのＪａｖａプログラムは同一のＤＳＭ−ＣＣ識別子をもつが、これは１つのＤＳＭ−ＣＣ方式でエンコードされたファイルシステム内に３つのＪａｖａプログラムが含まれていることを表す。ここでは、Ｊａｖａプログラムに対して４つの情報しか規定しないが、実際にはより多くの情報が定義される。詳細はＤＶＢ−ＭＨＰ規格を参照されたい。
【０１１７】
ＡＭ１７０４ｂは、更新されたＡＩＴの内容を解析することで、Ｊａｖａプログラムの実行状態を制御する。まず、ＡＭ１７０４ｂは、ＡＩＴの中から「ａｕｔｏｓｔａｒｔ」のＪａｖａプログラムを見つけ出し、対応するＤＳＭ−ＣＣ識別子およびＪａｖａプログラム名を抽出する。図２２を参照して、ＡＭ１７０４ｂは行２２１１のＪａｖａプログラムを抽出し、ＤＳＭ−ＣＣ識別子「１」およびＪａｖａプログラム名「ａ／ＴｏｐＸｌｅｔ」を取得する。次いで、ＡＩＴから取得したＤＳＭ−ＣＣ識別子を用いて、ＪａｖａプログラムをＤＳＭ−ＣＣ方式で格納しているＴＳパケットのＰＩＤをＰＭＴから取得する。具体的には、ＰＭＴの中でストリーム種別が「データ」で、補足情報のＤＳＭ−ＣＣ識別子が合致するエレメンタリストリームのＰＩＤを取得する。ここで、ＤＳＭ−ＣＣ識別子が「１」であり、ＰＭＴが図１１とすると、行１１１４のエレメンタリストリームが合致し、ＰＩＤ「５０１４」を取り出す。
【０１１８】
ＡＭ１７０４ｂは、ＳＦ１７０４ｅに、ＤＳＭ−ＣＣ方式でデータが埋めこまれたＭＰＥＧ２セクションを伝送するＴＳパケットのＰＩＤおよびセクションフィルタ条件を指定する。ここでは、ＰＩＤ「５０１４」を与える。この結果、ＡＭ１７０４ｂは、ＤＳＭ−ＣＣ１７０４ｄを用いて、ＤＳＭ−ＣＣ方式に従ってファイルシステムを復元し、１次記憶部１３０８に保存する。ＭＰＥＧ２トランスポートストリーム中のＴＳパケットからファイルシステム等のデータを取り出し１次記憶部１３０８、２次記憶部１３０７等の記憶手段に保存することを以降、ダウンロードとよぶ。
【０１１９】
図２３は、ダウンロードしたファイルシステムの一例である。図中、丸はディレクトリを四角はファイルを表し、２３０１はルートディレクトリ、２３０２はディレクトリ「ａ」、２３０３はディレクトリ「ｂ」、２３０４はファイル「ＴｏｐＸｌｅｔ．ｃｌａｓｓ」、２３０５はファイル「ＧａｍｅＸｌｅｔ．ｃｌａｓｓ」、２３０６はディレクトリ「ｚ」、２３０７はファイル「ＭｕｓｉｃＸｌｅｔ．ｃｌａｓｓ」、２３０８はファイル「ＳｔｕｄｙＸｌｅｔ．ｃｌａｓｓ」である。
【０１２０】
次いでＡＭ１７０４ｂは、１次記憶部１３０８にダウンロードしたファイルシステム中から実行するＪａｖａプログラムをＪａｖａＶＭ１７０３に引き渡す。ここで、実行するＪａｖａプログラム名が「ａ／ＴｏｐＸｌｅｔ」とすると、Ｊａｖａプログラム名の最後に「．ｃｌａｓｓ」を付加したファイル「ａ／ＴｏｐＸｌｅｔ．ｃｌａｓｓ」が実行すべきファイルとなる。「／」はディレクトリやファイル名の区切りであり、図２３を参照して、ファイル２３０４が実行すべきＪａｖａプログラムである。次いでＡＭ１７０４ｂは、ファイル２３０４をＪａｖａＶＭ１７０３に引き渡すと、そのファイルはＪａｖａプログラムとしてＪａｖａ ＶＭ上で実行される。制御情報に「ｋｉｌｌ」が指定されていた場合は、Ｊａｖａプログラムを終了させる。
【０１２１】
ＡＭ１７０４ｂは、新しいＡＩＴバージョンを持つＡＩＴが来る度にそのＡＩＴを解析してＪａｖａプログラムの実行状態を変更させる。
【０１２２】
ＪＭＦ１７０４ａは、サービスに含まれる映像と音声の再生制御を担う。具体的には、指定されたＭＰＥＧ２トランスポートストリームの指定されたチャンネルに多重された映像ＥＳと音声ＥＳをＡＶデコーダに入力して再生させる。受信した放送波から直接サービスを再生する場合は、アダプタ１３１１から出力されるＭＰＥＧ２トランスポートストリームを再生するように指定される。一方、２次記憶部１３０７に一旦記録されたサービスを再生する場合は、２次記憶部１３０７内の記録領域１５０４から出力されるＭＰＥＧ２トランスポートストリームを再生するように指定される。
【０１２３】
まず、ＪＭＦ１７０４ａは、指定されたチャンネル識別子をキーとしてライブラリ１７０１ｂのチャンネル情報を検索し、プログラムナンバーを得る。次にＳＦ１７０４ｅ等を利用して、ＭＰＥＧ２トランスポートストリームからＰＡＴを取得する。さらにＰＭＴの情報から、先ほど得られたプログラムナンバーに対応するＰＭＴのＰＩＤが得られる。再度ＳＦ１７０４ｅを利用して、実際のＰＭＴを取得する。取得されたＰＭＴは図１１の形式をしており、ストリーム種別が「映像」および「音声」であるエレメンタリストリームのＰＩＤが書かれている。ＪＭＦ１７０４ａが、それらのＰＩＤをＴＳデコーダ１３０２のＰＩＤフィルタ１５０２に設定すると、図１５あるいは図１６に示されたごとく、該当ＰＩＤで多重されている映像ＥＳと音声ＥＳがＡＶデコーダ１３０３経由で再生される。
【０１２４】
ここで、特にＪＭＦ１７０４ａが２次記憶部に記録済みのＭＰＥＧ２トランスポートストリームを入力とする場合は、ＪＭＦ１７０４ａは２次記憶部１３０７等の記録領域１５０４からのＭＰＥＧ２トランスポートストリームの読出速度や読出位置を変更させることで、映像や音声の再生速度を変更させることができる。これにより早送りやスキップといった特殊再生が可能となる。例えば、通常速度の２倍の速度でＭＰＥＧ２トランスポートストリームを読み出すようにすれば、映像や音声も２倍の速度で再生される。また、ＭＰＥＧ２トランスポートストリームの読出位置を特定間隔だけ飛ばして読み出せば、映像や音声はスキップ再生される。ＪＭＦ１７０４ａは、ライブラリ１７０１ｂの機能を利用することで、２次記憶部１３０７を制御し、ＭＰＥＧ２トランスポートストリームの読出速度や読出位置を変更させる。これらの特殊再生を高水準で滑らかに行う方法については本発明の範囲外であるため、説明を省略する。
【０１２５】
ストレージマネージャ１７０４ｇは、ストレージすなわち記録領域１５０４を１つあるいは複数のボリュームという単位に分割して管理する。
【０１２６】
図２７は、ストレージとボリュームとの関係を表現した概念図である。１つのストレージには、ストレージマネージャ１７０４ｇによって、１つあるいは複数のボリュームが生成される。レコーディングマネージャ１７０４ｈは、サービスを記録するボリュームとして、あるボリュームを指定する。
【０１２７】
ストレージマネージャ１７０４ｇは、図２８に示すように、ボリューム生成部２８１１、ボリューム情報保持部２８１２、ボリューム残量検出部２８１３、および、ストレージ残量検出部２８１４で構成される。
【０１２８】
ボリューム生成部２８１１は、Ｊａｖａプログラムあるいは補足ボリューム生成部２８０４によって指定されるボリューム名およびボリューム容量にもとづいて、記録領域１５０４にボリュームを生成する。例えば、ボリューム名として“ＭＥＤＩＡ”、ボリューム容量として“１０２４０”と指定された場合は、１０２４０キロバイトの“ＭＥＤＩＡ”というボリュームを記録領域１５０４に生成する。ボリューム生成部２８１１が、ストレージ残量検出部２８１４からストレージすわなち記録領域１５０４の残量を取得して、記録領域１５０４に十分な空容量がない、あるいは、ボリューム情報保持部２８１２から記録領域１５０４に既存のボリューム情報を取得して、記録領域１５０４にすでに同名のボリュームが存在する場合は、ボリュームの生成に失敗する。ボリュームの生成に成功すれば、ボリュームを識別するためのボリューム識別子、ボリューム名、および、ボリューム容量等の情報が、ボリューム情報として、ボリューム情報保持部２８１２へ通知されて保持されるとともに、記録領域１５０４にも記録される。
【０１２９】
Ｊａｖａプログラムあるいは補足ボリューム生成部２８０４によって指定されたボリュームを生成するまでの動作の流れを図３０に示す。
【０１３０】
Ｊａｖａプログラムあるいは補足ボリューム生成部２８０４からボリューム名およびボリューム容量が指定されて、ボリューム生成部２８１１へボリュームの生成が要求される（Ｓ３００１）。ボリューム生成部２８１１は、ストレージ残量検出部２８１４からストレージの残量を取得して（Ｓ３００２）、ストレージにボリュームを生成するための十分な残量があるか判定する（Ｓ３００３）。ストレージに十分な残量がない場合は、ボリュームの生成に失敗する。ストレージに十分な残量がある場合は、ボリューム情報保持部２８１２からストレージに既存のボリューム情報を取得して（Ｓ３００４）、ストレージに同名のボリュームがないか判定する（Ｓ３００５）。ストレージにすでに同名のボリュームがある場合は、ボリュームの生成に失敗する。ストレージに同名のボリュームがない場合は、ボリュームを生成して（Ｓ３００６）、生成したボリュームを識別するボリューム識別子を割り当てる。そのボリューム識別子、ボリューム名、および、ボリューム容量等の情報を、ボリューム情報として、ボリューム情報保持部２８１２に通知して保持させる（Ｓ３００７）。
【０１３１】
ボリューム情報保持部２８１２は、ボリューム生成時にボリューム生成部２８１１から通知されるボリュームを識別するためのボリューム識別子、ボリューム名、および、ボリューム容量等の情報を、ボリューム情報として、保持する。ボリューム情報保持部２８１２に保持されているボリューム情報は、Ｊａｖａプログラムによって取得されて、サービスの記録時にサービスを記録するボリュームとして、あるボリューム識別子が指定される。
【０１３２】
ボリューム残量検出部２８１３は、Ｊａｖａプログラム、あるいは、ボリューム残量不足検知部２８０２からの問合せにもとづいて、その時点でコンテンツが記録されていないボリュームの容量を返す。
【０１３３】
ストレージ残量検出部２８１４は、Ｊａｖａプログラム、ボリューム生成部２８１１、あるいは、補足ボリューム生成部２８０４からの問合せにもとづいて、その時点でボリュームが割り当てられていないストレージすなわち記録領域１５０４の容量を返す。
【０１３４】
本実施の形態においては、ストレージすなわち記録領域１５０４が１つである場合を挙げるが、複数であってもよい。その場合は、ボリューム生成部２８１１、ボリューム情報保持部２８１２、ボリューム残量検出部２８１３、および、ストレージ残量検出部２８１４に対して、ストレージを識別するためのストレージ識別子も併せて指定する。
【０１３５】
レコーディングマネージャ１７０４ｈは、現在放送されているサービスを、指定された期間において、指定されたビットレートで、記録領域１５０４の指定されたボリュームに記録する。レコーディングマネージャ１７０４ｈは、図２８に示すように、レコーディング生成部２８０１、ボリューム残量不足検知部２８０２、レコーディング情報保持部２８０３、補足ボリューム生成部２８０４で構成される。
【０１３６】
レコーディング生成部２８０１は、Ｊａｖａプログラムによって指定されたチャンネル識別子、開始時刻、終了時刻、ビットレート、および、ボリューム識別子にもとづいて、チャンネル識別子によって識別されるサービスを、指定された開始時刻と終了時刻の間だけ、指定されたビットレートで、記録領域１５０４の指定されたボリュームに記録する。また、指定されたチャンネル識別子、開始時刻、終了時刻、ビットレート、および、ボリューム識別子等をレコーディング情報として、レコーディング情報保持部２８０３へ通知して保持させるとともに、記録領域１５０４にも記録する。
【０１３７】
さらに、レコーディング生成部２８０１は、ボリューム残量不足検知部２８０２によって指定されたレコーディング識別子、開始時刻、終了時刻、ビットレート、および、ボリューム識別子にもとづいて、レコーディング識別子によって識別される現在記録されているサービスと等しいサービスを、指定された開始時刻と終了時刻の間だけ、指定されたビットレートで、記録領域１５０４の指定されたボリュームに記録する。Ｊａｖａプログラムが指定するチャンネル識別子によって識別されるサービスの記録と同様に、指定されたレコーディング識別子から導出されるサービスを識別するチャンネル識別子、開始時刻、終了時刻、ビットレート、および、ボリューム識別子等をレコーディング情報として、レコーディング情報保持部２８０３へ通知して保持させるとともに、記録領域１５０４にも記録する。
【０１３８】
まず、Ｊａｖａプログラムが指定するチャンネル識別子によって識別されるサービスの記録に関して、その動作の流れを以下に記述する。
【０１３９】
レコーディング生成部２８０１は、Ｊａｖａプログラムからチャンネル識別子、開始時刻、終了時刻、ビットレート、および、ボリューム識別子を指定されると、それらの情報をレコーディング情報として識別するためのレコーディング識別子を割り当てて、開始時刻になるまで待機する。その後、開始時刻に至ると、まず、レコーディング生成部２８０１は、ボリューム残量不足検知部２８０２へ、レコーディング情報のうち、レコーディング識別子、終了時刻、ビットレート、および、ボリューム識別子を引き渡して、サービスを記録するボリュームの残量を監視させる。
【０１４０】
次に、レコーディング生成部２８０１は、チャンネル識別子をキーとして、ライブラリ１７０１ｂが保有するチャンネル情報から当該チャンネル識別子に相当するチューニング情報を得る。その後、Ｔｕｎｅｒ１７０４ｃにチューニング情報を与えると、Ｔｕｎｅｒ１７０４ｃはチューニングを開始する。ここで、チューニング情報は、周波数や変調方式等が特定可能な情報である。すると図１５に示されるように、アダプタ１３１１経由でＭＰＥＧ２トランスポートストリームがＴＳデコーダに入力される。
【０１４１】
また、レコーディング生成部２８０１は、ＳＦ１７０４ｅを利用して、チューニングで得られたＭＰＥＧ２トランスポートストリームからＰＡＴを取得する。さらに、指定されたチャンネル識別子に対応するプログラムナンバーをライブラリ１７０１ｂから検索し、得られたプログラムナンバーに対応するＰＭＴのＰＩＤをＰＡＴから検索する。その後、ＳＦ１７０４ｅを利用して、実際のＰＭＴを取得し、指定されたチャンネルを構成するＥＳの全ＰＩＤを得る。レコーディング生成部２８０１は、得られたＰＩＤをＴＳデコーダのＰＩＤフィルタ１５０２に設定する。さらに、放送波に含まれるサービスを、記録領域１５０４の指定されたボリュームに指定されたビットレートで記録するように、ライブラリ１７０１ｂを通じて各ハードウェア構成要素の出力先を設定する。すると、図１５で説明した流れに沿って、所望のチャンネルを構成する全ＥＳが、記録領域１５０４の指定されたボリュームに指定されたビットレートで記録される。
【０１４２】
その後、指定された終了時刻に至ると、レコーディング生成部２８０１はＴｕｎｅｒ１７０４ｃのチューニング動作を停止させ、記録領域１５０４の指定されたボリュームへのＭＰＥＧ２トランスポートストリームの書込を終了させる。また、先ほど記録したＭＰＥＧ２トランスポートストリームの管理情報として、図２１に示すレコーディング情報管理テーブルを生成する。
【０１４３】
図２１はレコーディング情報保持部２８０３に保持されている、あるいは、２次記憶部１３０７等の記録領域１５０４に記録されているレコーディング情報を管理するためのレコーディング情報管理テーブルの一例である。レコーディング情報は表形式で記録されている。列２１０１は、レコーディング識別子である。列２１０２は、チャンネル識別子である。列２１０３はプログラムナンバーである。列２１０４はサービスの記録開始時刻、列２１０５はサービスの記録終了時刻である。列２１０６はサービスを記録するビットレートである。そして、列２１０７はサービスとして記録されたＭＰＥＧ２トランスポートストリームを識別するメディア識別子である。
【０１４４】
メディア識別子をキーとして、さらに図２９におけるメディア情報管理テーブルを参照することで、そのメディア識別子と対応するコンテンツが記録されているストレージの識別子、ボリュームの識別子、および、コンテンツの識別子が導出される。行２１１１〜２１１３の各行は、各レコーディング識別子、チャンネル識別子、プログラムナンバー、開始時刻、終了時刻、ビットレート、および、メディア識別子の組となる。例えば、行２１１１はレコーディング識別子が「０００」、チャンネル識別子が「２」、プログラムナンバーが「１０２」、開始時刻が「２００５／０３／３０  １１：００」、終了時刻が「２００５／０３／３０  １２：００」、ビットレート「ＨＩＧＨ」、および、メディア識別子が「０００」であることを示す。
【０１４５】
次に、ボリューム残量不足検知部２８０２が指定するレコーディング識別子によって識別されるサービスの記録に関して、その動作の流れを以下に記述する。
【０１４６】
レコーディング生成部２８０１は、ボリューム残量不足検知部２８０２からレコーディング識別子、開始時刻、終了時刻、ビットレート、および、ボリューム識別子を指定されると、保持するレコーディング情報から、指定されたレコーディング識別子をキーとして、対応するレコーディング情報を導出する。そして、そのレコーディング情報によって現在記録されているサービスを、指定された開始時刻と終了時刻の間だけ、指定されたビットレートで、記録領域１５０４の指定されたボリュームに記録する。
【０１４７】
ただし、Ｊａｖａプログラムが指定するチャンネル識別子によって識別されるサービスの記録とは異なって、開始時刻に至っても、レコーディング生成部２８０１は、ボリューム残量不足検知部２８０２へ、レコーディング情報のうち、レコーディング識別子、終了時刻、ビットレート、および、ボリューム識別子を引き渡すことはなく、すなわち、サービスを記録するボリュームの残量を監視させることはない。
【０１４８】
以下の動作の流れは、Ｊａｖａプログラムが指定するチャンネル識別子によって識別されるサービスの記録と同様であるので、ここでは省略する。
【０１４９】
レコーディング情報保持部２８０３は、Ｊａｖａプログラムからチャンネル識別子、開始時刻、終了時刻、ビットレート、および、ボリューム識別子が指定されてサービスの記録が要求された場合に、あるいは、ボリューム残量不足検知部２８０２からレコーディング識別子、開始時刻、終了時刻、ビットレート、および、ボリューム識別子が指定されてサービスの記録が要求された場合に、レコーディング生成部２８０１から通知されるレコーディング識別子、チャンネル識別子、プログラムナンバー、開始時刻、終了時刻、ビットレート、および、メディア識別子等の情報を、レコーディング情報として、保持する。レコーディング情報保持部２８０３に保持されているレコーディング情報は、Ｊａｖａプログラムによって取得されて、サービスの再生時に再生対象サービスとして、レコーディング識別子が指定される。
【０１５０】
ボリューム残量不足検知部２８０２は、あるサービスの記録開始時に、レコーディング生成部２８０１から、レコーディング情報のうち、レコーディング識別子、終了時刻、ビットレート、および、ボリューム識別子が引き渡されて、サービスが記録されるボリュームの残量を監視する。一定周期ごとにストレージマネージャ１７０４ｇのボリューム残量検出部２８１３にボリューム識別子を引き渡して、そのボリューム識別子によって識別されるボリュームの残量を取得する。また、サービスが記録されるボリュームの残量不足が検知された場合は、補足ボリューム生成部２８０４へ、ボリューム名およびボリューム容量を引き渡して、補足ボリュームの生成を要求する。ここで、ボリューム名はストレージに既存のボリューム名とは重複しないことが保証される。例えば、“ＳＵＢ”を予約語、“０００”を残量不足が検知されたボリューム識別子として、“ＳＵＢ＿０００”等である。
【０１５１】
また、ボリューム容量はレコーディング生成部２８０１から引き渡されたビットレートと終了時刻までの残り時間によって算出される値である。さらに、補足ボリュームの生成に成功した場合は、補足ボリューム生成部２８０４から生成された補足ボリューム識別子が返されるとともに、引き続いてレコーディング生成部２８０１へ、レコーディング生成部２８０１から引き渡されたレコーディング識別子、記録開始時刻、記録終了時刻、ビットレート、および、生成された補足ボリューム識別子を引き渡して、補足レコーディングの生成を要求する。ここで、記録開始時刻は現在記録されているボリュームの残量がなくなる時刻である。また、記録終了時刻、あるいは、ビットレートは生成された補足ボリュームにおいて記録可能なように設定される。よって、レコーディング生成部２８０１から引き渡された記録終了時刻、あるいは、ビットレートとは異なる可能性がある。
【０１５２】
補足ボリューム生成部２８０４は、ボリューム残量不足検知部２８０２から引き渡された補足ボリューム名および補足ボリューム容量にもとづいて、補足ボリュームを生成するとともに、その補足ボリュームの生成に成功すれば、ボリューム残量不足検知部２８０２へ生成された補足ボリューム識別子を返す。補足ボリューム生成部２８０４は、ボリューム残量不足検知部２８０２から補足ボリューム名および補足ボリューム容量が引き渡されると、ストレージマネージャ１７０４ｇのストレージ残量検出部２８１４からボリュームが割り当てられていないストレージの容量を取得する。ストレージ残量検出部２８１４から取得されたストレージの残量が、ボリューム残量不足検知部２８０２から引き渡された補足ボリューム容量以上である場合は、ボリューム残量不足検知部２８０２から引き渡された補足ボリューム容量と補足ボリューム名を指定して、ボリューム生成部２８１１へ、ボリュームの生成を要求する。
【０１５３】
しかし、ストレージ残量検出部２８１４から取得されたストレージの残量が、ボリューム残量不足検知部２８０２から引き渡された補足ボリューム容量未満である場合は、ストレージ残量検出部２８１４から取得されたストレージの残量と補足ボリューム名を指定して、ボリューム生成部２８１１へ、ボリュームの生成を要求する。ボリュームの生成に成功すれば、ボリューム生成部２８１１から生成されたボリューム識別子が返される。さらに、補足ボリューム生成部２８０４は、そのボリューム識別子を補足ボリューム識別子として、ボリューム残量不足検知部２８０２へ返す。
【０１５４】
サービスマネージャ１７０４ｆは、２次記憶部１３０７等の記録領域１５０４のボリュームに記録済みのＭＰＥＧ２トランスポートストリーム中のサービス、あるいはアダプタ１３１１から入力されるＭＰＥＧ２トランスポートストリーム中のサービスの再生を管理する。
【０１５５】
以下に、記録領域１５０４のボリュームに記録済みのＭＰＥＧ２トランスポートストリーム中のサービスの再生を管理する場合の動作について述べる。これは記録済みサービスの再生に相当する。この場合、サービスマネージャ１７０４ｆは、レコーディング識別子を入力とする。そのレコーディング識別子で特定される、記録領域１５０４のボリュームに記録済みのサービスが、再生対象である。
【０１５６】
サービスマネージャ１７０４ｆは、まず、レコーディングマネージャ１７０４ｈが生成したレコーディング情報管理テーブルを参照して、指定されたレコーディング識別子で再生されるべきチャンネル識別子と、メディア識別子を得る。
【０１５７】
レコーディング情報管理テーブルを参照して、等しいレコーディング識別子が複数存在する場合は、記録開始時刻がより早い順序にもとづいて、再生されるべきチャンネル識別子と、メディア識別子を得る。そして、それらのメディア識別子によって識別されるコンテンツを連続で再生する。例えば、図２１のレコーディング情報管理テーブルにおいては、行２１１２と行２１１３とは等しいレコーディング識別子“００１”をもつ。再生するレコーディング識別子として、サービスマネージャ１７０４ｆへ“００１”が指定された場合は、行２１１２における記録開始時刻“２００５／０４／０１  ２１：００”と行２１１３における記録開始時刻“２００５／０４／０１  ２２：００”とを比較して、より早い行２１１２からチャンネル識別子とメディア識別子を得て再生する。行２１１２の再生が終点へ達すれば、行２１１３からチャンネル識別子とメディア識別子を得て始点から再生する。また、巻戻しすることで、行２１１３の再生が始点へ達すれば、行２１１２からチャンネル識別子とメディア識別子を得て終点から再生する。
【０１５８】
次いで、記録領域１５０４のボリュームに対して、今得られたメディア識別子で特定されるＭＰＥＧ２トランスポートストリームをＴＳデコーダ１３０２に出力するように、ライブラリ１７０１ｂを通して指示する。また、ライブラリ１７０１ｂを通して各ハードウェア構成要素の出力先を図１６に示す経路で流れるように設定する。その後、ＪＭＦ１７０４ａにＭＰＥＧ２トランスポートストリームの所在として記録領域１５０４のボリュームを与え、また再生すべきチャンネル識別子を与える。すると、ＪＭＦ１７０４ａは、既に述べた動作によって、記録領域１５０４のボリュームから出力されるＭＰＥＧ２トランスポートストリームに多重された映像と音声の再生を開始する。更に、ＡＭ１７０４ｂにもＭＰＥＧ２トランスポートストリームの所在として記録領域１５０４のボリュームを与え、また再生すべきチャンネル識別子を与える。すると、ＡＭ１７０４ｂは記録領域１５０４のボリュームから出力されるＭＰＥＧ２トランスポートストリームに多重されたＡＩＴに従って、記録領域１５０４のボリュームから出力されるＭＰＥＧ２トランスポートストリームに多重されたＪａｖａプログラムの実行および終了を開始する。その後、記録領域１５０４のボリュームから出力されるＭＰＥＧ２トランスポートストリームの終端まで、上述のサービスの再生を継続する。
【０１５９】
一方、以下に、アダプタ１３１１から入力されるＭＰＥＧ２トランスポートストリーム中のサービスの再生を管理する場合を説明する。これは、放送波から直接サービスを再生することに相当する。この場合、サービスマネージャ１７０４ｆは、再生対象サービスのチャンネル識別子を入力とする。
【０１６０】
サービスマネージャ１７０４ｆは、図１５のアダプタ１３１１から出力されるＭＰＥＧ２トランスポートストリームをＴＳデコーダ１３０２に出力するように、ライブラリ１７０１ｂを通して指示する。また、ライブラリ１７０１ｂを通して各ハードウェア構成要素の出力先を図１６に示す経路で流れるように設定する。まず、サービスマネージャ１７０４ｆは、チャンネル識別子をキーとして、ライブラリ１７０１ｂが保有するチャンネル情報から当該チャンネル識別子に相当するチューニング情報を得る。その後、Ｔｕｎｅｒ１７０４ｃにチューニング情報を与えると、Ｔｕｎｅｒ１７０４ｃはチューニングを開始する。ここで、チューニング情報は、周波数や変調方式等が特定可能な情報である。
【０１６１】
その後、ＪＭＦ１７０４ａにＭＰＥＧ２トランスポートストリームの所在としてアダプタ１３１１を与え、また再生すべきチャンネル識別子を与える。すると、ＪＭＦ１７０４ａは、既に述べた動作によって、アダプタ１３１１から出力されるＭＰＥＧ２トランスポートストリームに多重された映像と音声の再生を開始する。更に、ＡＭ１７０４ｂにもＭＰＥＧ２トランスポートストリームの所在としてアダプタ１３１１を与え、また再生すべきチャンネル識別子を与える。すると、ＡＭ１７０４ｂはアダプタ１３１１から出力されるＭＰＥＧ２トランスポートストリームに多重されたＡＩＴに従って、２次記憶部１３０７から出力されるＭＰＥＧ２トランスポートストリームに多重されたＪａｖａプログラムの実行および終了を開始する。その後、２次記憶部１３０７から出力されるＭＰＥＧ２トランスポートストリームの終端まで、上述のサービスの再生を継続する。
【０１６２】
ＥＰＧ１７０２は、電子番組表（Ｅｌｅｃｔｒｉｃ  Ｐｒｏｇｒａｍ  Ｇｕｉｄｅの略）であり、記録や再生の対象とする番組をユーザに選択させる機能である。放送波を受信しての通常の再生は本発明の趣旨から外れるため、説明を省略する。
【０１６３】
番組を記録する場合は、ＥＰＧ１７０２は、放送番組一覧を表示してユーザに希望の番組を選択させる。
【０１６４】
図１９は、記録対象とする番組を選択させるための画面表示の一例である。時刻１９０１とチャンネル１９０２と１９０３が格子状に表示され、各時刻で記録可能な各チャンネルの番組を一覧できる。ユーザは端末装置１３００の入力部１３１０に備わっている上下左右カーソルボタン１４０１〜１４０４を用いて画面上のフォーカス１９１１を移動させることができる。更にＯＫボタン１４０５を押下すると、現在フォーカスが当たっている番組が記録対象として選択される。ＥＰＧ１７０２は当該番組のチャンネル識別子をライブラリから取得して知っており、ユーザによって記録対象番組が選択されると、当該番組のチャンネル識別子、開始時刻、終了時刻をレコーディングマネージャ１７０４ｈに通知する。レコーディングマネージャ１７０４ｈは、その情報に基づいて、当該番組を２次記憶部１３０７に記録する。ここで、２次記憶部１３０７に記録するビットレートおよびボリュームを併せて指定することも可能であるが、ここでは省略する。２次記憶部１３０７に記録するビットレートおよびボリュームが指定されなかった場合、既定の値のビットレートで既定のボリュームに記録される。
【０１６５】
一方、記録済みの番組を再生する場合は、ＥＰＧ１７０２は、記録済み番組一覧を表示してユーザに希望の番組を選択させる。
【０１６６】
図１８は、記録済み番組を選択させるための画面表示の一例である。その時点で２次記憶部１３０７に記憶されている番組がすべて一覧表示される。ユーザは端末装置１３００の入力部１３１０に備わっている上下カーソルボタン１４０１、１４０２を用いて画面上のフォーカス１８０１を移動させることができる。更にＯＫボタン１４０５を押下すると、現在フォーカスが当たっている番組が再生対象として選択される。ＥＰＧ１７０２は当該番組のレコーディング識別子をレコーディングマネージャ１７０４ｈから取得して知っており、ユーザによって再生対象番組が選択されると、当該番組のレコーディング識別子をサービスマネージャ１７０４ｆに通知する。 サービスマネージャ１７０４ｆは、その情報に基づいて、当該番組を２次記憶部１３０７から読み出して再生する。
【０１６７】
以上説明した構成による本実施例において特徴的な動作を、以下にフローチャートを用いて説明する。
【０１６８】
図３１は、サービスの記録が開始されてから、サービスを記録するボリュームの残量不足が検知されて、補足レコーディングが生成されるまでの動作の流れを示すフローチャートである。
【０１６９】
レコーディング生成部２８０１は、サービスの記録開始時刻に至ると、ボリューム残量不足検知部２８０２へ、レコーディング情報のうち、レコーディング識別子、終了時刻、ビットレート、および、ボリューム識別子を引き渡す（Ｓ３１０１）。ボリューム残量不足検知部２８０２は、現在時刻がサービスの記録終了時刻を超過しているか判定して（Ｓ３１０２）、サービスの記録終了時刻を超過していれば、終了する。サービスの記録終了時刻を超過していなければ、ストレージマネージャ１７０４ｇのボリューム残量検出部２８１３へボリューム識別子を引き渡して、そのボリューム識別子によって識別されるボリュームの残量を取得する（Ｓ３１０３）。取得されたボリュームの残量と、サービスの記録を完了するまでに必要と見積もられるボリュームの容量とを比較して（Ｓ３１０４）、ボリュームの残量が必要なボリュームの容量以上ならば、一定期間が経過するまで待機する（Ｓ３１０５）。
【０１７０】
そして、一定期間経過後に、再び現在時刻がサービスの記録終了時刻を超過しているか判定して（Ｓ３１０２）、超過していなければ、ストレージマネージャ１７０４ｇのボリューム残量検出部２８１３からボリュームの残量を取得して（Ｓ３１０３）、ボリュームの残量が必要なボリュームの容量以上か判定する（Ｓ３１０４）。ボリュームの残量が必要なボリュームの容量未満ならば、補足ボリューム生成部２８０４へ、ボリューム名およびボリューム容量を引き渡して、補足ボリュームの生成を要求する（Ｓ３１０６）。ここで、ボリューム名はストレージに既存のボリューム名とは重複しないことが保証される。例えば、“ＳＵＢ”を予約語、“０００”を残量不足が検知されたボリューム識別子として、“ＳＵＢ＿０００”等である。また、ボリューム容量はレコーディング生成部２８０１から引き渡されたビットレートと終了時刻までの残り時間によって算出される値である。次いで、補足ボリュームの生成に成否を判定する（Ｓ３１０７）。
【０１７１】
補足ボリュームの生成に失敗した場合は、終了する。補足ボリュームの生成に成功した場合は、補足ボリューム生成部２８０４から生成された補足ボリューム識別子が返されるとともに、引き続いてレコーディング生成部２８０１へ、レコーディング生成部２８０１から引き渡されたレコーディング識別子、記録開始時刻、記録終了時刻、ビットレート、および、生成された補足ボリューム識別子を引き渡して、補足レコーディングの生成を要求する（Ｓ３１０８）。ここで、記録開始時刻は現在記録されているボリュームの残量がなくなる時刻である。また、記録終了時刻、あるいは、ビットレートは生成された補足ボリュームにおいて記録可能なように設定される。よって、レコーディング生成部２８０１から引き渡された記録終了時刻、あるいは、ビットレートとは異なる可能性がある。
【０１７２】
図３２はボリューム残量不足検知部２８０２が補足ボリューム生成部２８０４へ補足ボリュームの生成を要求してから、補足ボリューム生成部２８０４が補足ボリュームの生成に成功、あるいは、失敗するまでの動作の流れを示すフローチャートである。
【０１７３】
補足ボリューム生成部２８０４は、ボリューム残量不足検知部２８０２から補足ボリューム名および補足ボリューム容量が引き渡されると、ストレージマネージャ１７０４ｇのストレージ残量検出部２８１４からボリュームが割り当てられていないストレージの容量を取得する（Ｓ３２０１）。まず、ストレージ残量検出部２８１４から取得されたストレージの残量があるか判定する（Ｓ３２０２）。取得されたストレージの残量がない場合は、補足ボリュームの生成に失敗して、終了する。取得されたストレージの残量がある場合は、さらに、ストレージ残量検出部２８１４から取得されたストレージの残量が、ボリューム残量不足検知部２８０２から引き渡された補足ボリューム容量以上であるか判定する（Ｓ３２０３）。取得されたストレージの残量が、必要な補足ボリューム容量以上である場合は、ボリューム残量不足検知部２８０２から引き渡された補足ボリューム容量と補足ボリューム名を指定して、ボリューム生成部２８１１へ、ボリュームの生成を要求する（Ｓ３２０４）。
【０１７４】
しかし、取得されたストレージの残量が、必要な補足ボリューム容量未満である場合は、ストレージ残量検出部２８１４から取得されたストレージの残量と補足ボリューム名を指定して、ボリューム生成部２８１１へ、ボリュームの生成を要求する（Ｓ３２０５）。ボリュームの生成に成功すれば、ボリューム生成部２８１１から生成されたボリューム識別子が返される。さらに、補足ボリューム生成部２８０４は、そのボリューム識別子を補足ボリューム識別子として、ボリューム残量不足検知部２８０２へ返す。
【０１７５】
以上のようにして、サービスの記録時に、サービスを記録するボリュームの残量不足を検知した場合、ストレージの余剰部分に補足ボリュームを生成するとともに、サービスで記録不可とされた部分をその補足ボリュームに記録することで、ストレージの余剰部分を活用して、サービスの記録を完了することが可能となる。
【０１７６】
（実施の形態２）
以下に、本発明の実施の形態２に係る装置および方法を、図面を参照しながら説明する。
【０１７７】
実施の形態２に用いるハードウェア構成等は、本発明の実施の形態１と同様であるので、図１から図１６までを援用することとする。図中の構成要素は、実施の形態１の同一名称、同一符号の構成要素と同様の機能をもつため、再度の説明は省略する。
【０１７８】
実施の形態２のソフトウェア構成は、図１７に示すものと同様である。ストレージマネージャ１７０４ｇおよびレコーディングマネージャ１７０４ｈ以外の構成要素は、実施の形態１のソフトウェア構成の同一名称、同一符号の構成要素と同様の機能をもつため、再度の説明は省略する。また、実施の形態２で用いる各種データ形式は、図２０から図２２までの図面、および、図２９に示すものと同様であるため、再度の説明は省略する。
【０１７９】
図３３は、Ｊａｖａライブラリ１７０４におけるストレージマネージャ１７０４ｇ、および、レコーディングマネージャ１７０４ｈの詳細な構成を示す図である。
【０１８０】
ストレージマネージャ１７０４ｇは、ストレージすなわち記録領域１５０４を１つあるいは複数のボリュームという単位に分割して管理する。ストレージマネージャ１７０４ｇは、ボリューム生成部２８１１、ボリューム情報保持部２８１２、ボリューム残量検出部２８１３、および、ストレージ残量検出部２８１４で構成される。ボリューム情報保持部２８１２、および、ボリューム残量検出部２８１３は、実施の形態１と同様の機能をもつため、再度の説明は省略する。
【０１８１】
ボリューム生成部２８１１は、Ｊａｖａプログラムによって指定されるボリューム名およびボリューム容量にもとづいて、記録領域１５０４にボリュームを生成する。ボリュームを生成する動作の流れは実施の形態１と同様であるため、再度の説明は省略する。
【０１８２】
ストレージ残量検出部２８１４は、Ｊａｖａプログラム、あるいは、ボリューム生成部２８１１からの問合せにもとづいて、その時点でボリュームが割り当てられていないストレージすなわち記録領域１５０４の容量を返す。
【０１８３】
レコーディングマネージャ１７０４ｈは、現在放送されているサービスを、指定された期間において、指定されたビットレートで、記録領域１５０４の指定されたボリュームに記録する。レコーディングマネージャ１７０４ｈは、レコーディング生成部２８０１、ボリューム残量不足検知部２８０２、レコーディング情報保持部２８０３、残量不足時ハンドラ登録部３３０１、および、残量不足時ハンドラ登録特権判定部３３０２で構成される。
【０１８４】
残量不足時ハンドラ登録部３３０１は、ボリューム残量不足検知部２８０２において現在実行されているサービスを記録するボリュームの残量不足が検知された場合に、現在実行されているサービスの記録を識別するレコーディング識別子を引き渡されて呼び出される、特権Ｊａｖａプログラムによって事前に登録された、ボリュームの残量不足時に対処するための残量不足時ハンドラを保持する。
【０１８５】
残量不足時ハンドラ登録特権判定部３３０２は、あるＪａｖａプログラムが残量不足時ハンドラ登録部３３０１に残量不足時ハンドラを登録しようとした場合に、残量不足時ハンドラ登録部３３０１からそのＪａｖａプログラム識別するＪａｖａプログラム識別子を引き渡されて、そのＪａｖａプログラムが残量不足時ハンドラを登録するために必要な特権を有するかどうかを判定する。Ｊａｖａプログラムがその特権を有するＪａｖａプログラムである場合は、残量不足時ハンドラは残量不足時ハンドラ登録部３３０１に保持される。例えば、あるＪａｖａプログラムが残量不足時ハンドラ“ｌＨａｎｄｌｅｒ”を残量不足時ハンドラ登録部３３０１に登録するためには、残量不足時ハンドラを登録するためのＪａｖａメソッド“ｓｅｔＬａｃｋＨａｎｄｌｅｒ”によって、“ｓｅｔＬａｃｋＨａｎｄｌｅｒ（ｌＨａｎｄｌｅｒ）”と呼び出す。ここで、残量不足時ハンドラ“ｌＨａｎｌｄｅｒ”の引数としては、現在実行されているサービスの記録を特定するレコーディング識別子“ｒｅｃＩＤ”等が挙げられる。
【０１８６】
図３４は、あるＪａｖａプログラムがレコーディングマネージャ１７０４ｈの残量不足時ハンドラ登録部３３０１に残量不足時ハンドラを登録する場合のフローチャートである。
【０１８７】
残量不足時ハンドラを登録しようとするＪａｖａプログラムはまずレコーディングマネージャ１７０４ｈへ残量不足時ハンドラを登録するよう要求する（Ｓ３４０１）。残量不足時ハンドラの登録要求を受けたレコーディングマネージャ１７０４ｈは残量不足時ハンドラ登録特権判定部３３０２において、そのＪａｖａプログラムが残量不足時ハンドラを登録するために必要な特権を有するか判別する（Ｓ３４０２）。そのＪａｖａプログラムが残量不足時ハンドラを登録するために必要な特権を有すると判別された場合はそのＪａｖａプログラムが要求する残量不足時ハンドラを残量不足時ハンドラ登録部３３０１へ登録する（Ｓ３４０３）。
【０１８８】
レコーディング生成部２８０１は、Ｊａｖａプログラムによって指定されたチャンネル識別子、開始時刻、終了時刻、ビットレート、および、ボリューム識別子にもとづいて、チャンネル識別子によって識別されるサービスを、指定された開始時刻と終了時刻の間だけ、指定されたビットレートで、記録領域１５０４の指定されたボリュームに記録する。また、指定されたチャンネル識別子、開始時刻、終了時刻、ビットレート、および、ボリューム識別子等をレコーディング情報として、レコーディング情報保持部２８０３へ通知して保持させるとともに、記録領域１５０４にも記録する。
【０１８９】
さらに、レコーディング生成部２８０１は、Ｊａｖａプログラムが実装する残量不足時ハンドラによって指定されたレコーディング識別子にもとづいて、レコーディング識別子によって識別される現在実行されているサービスの記録を停止する。
【０１９０】
まず、Ｊａｖａプログラムが指定するチャンネル識別子によって識別されるサービスの記録に関して、その動作の流れは実施の形態１と同様であるため、再度の説明は省略する。
【０１９１】
次に、Ｊａｖａプログラムが実装する残量不足時ハンドラが指定するレコーディング識別子によって識別される現在実行されているサービスの記録の停止に関して、その動作の流れを以下に記述する。
【０１９２】
レコーディング生成部２８０１は、Ｊａｖａプログラムが実装する残量不足時ハンドラからレコーディング識別子を指定されて、そのレコーディング識別子によって識別される現在実行されているサービスの記録の停止を要求されると、保持するレコーディング情報から、指定されたレコーディング識別子をキーとして、対応するレコーディング情報を導出する。そして、そのレコーディング情報によって現在実行されているサービスの記録を、停止する。具体的には、レコーディング生成部２８０１はＴｕｎｅｒ１７０４ｃのチューニング動作を停止させ、記録領域１５０４の指定されたボリュームへのＭＰＥＧ２トランスポートストリームの書込を終了させる。また、先ほど記録したＭＰＥＧ２トランスポートストリームの管理情報として、図２１に示すレコーディング情報管理テーブルを生成する。
【０１９３】
レコーディング情報保持部２８０３は、実施の形態１と同様の機能をもつため、再度の説明は省略する。
【０１９４】
ボリューム残量不足検知部２８０２は、あるサービスの記録開始時に、レコーディング生成部２８０１から、レコーディング情報のうち、レコーディング識別子、終了時刻、ビットレート、および、ボリューム識別子が引き渡されて、サービスが記録されるボリュームの残量を監視する。一定周期ごとにストレージマネージャ１７０４ｇのボリューム残量検出部２８１３にボリューム識別子を引き渡して、そのボリューム識別子によって識別されるボリュームの残量を取得する。また、サービスが記録されるボリュームの残量不足が検知された場合は、残量不足時ハンドラ登録部３３０１へ、ボリュームの残量不足が検知された現在実行されているサービスの記録を識別するレコーディング識別子を引き渡して、特権Ｊａｖａプログラムによって残量不足時ハンドラ登録部３３０１に登録された残量不足時ハンドラの呼出を要求する。
【０１９５】
残量不足時ハンドラは、残量不足時ハンドラ登録部３３０１から、ボリュームの残量不足が検知された現在実行されているサービスの記録を識別するレコーディング識別子が引き渡されて、実行される。残量不足時ハンドラは、レコーディング生成部２８０１へ、そのレコーディング識別子を指定して、そのレコーディング識別子から導出されるサービスの記録の停止を要求する。
【０１９６】
以上説明した構成による本実施例において特徴的な動作を、以下にフローチャートを用いて説明する。
【０１９７】
図３５は、サービスの記録が開始されてから、サービスを記録するボリュームの残量不足が検知されて、残量不足時ハンドラが呼び出されるまでの動作の流れを示すフローチャートである。
【０１９８】
レコーディング生成部２８０１は、サービスの記録開始時刻に至ると、ボリューム残量不足検知部２８０２へ、レコーディング情報のうち、レコーディング識別子、終了時刻、ビットレート、および、ボリューム識別子を引き渡す（Ｓ３５０１）。ボリューム残量不足検知部２８０２は、現在時刻がサービスの記録終了時刻を超過しているか判定して（Ｓ３５０２）、サービスの記録終了時刻を超過していれば、終了する。サービスの記録終了時刻を超過していなければ、ストレージマネージャ１７０４ｇのボリューム残量検出部２８１３へボリューム識別子を引き渡して、そのボリューム識別子によって識別されるボリュームの残量を取得する（Ｓ３５０３）。取得されたボリュームの残量と、サービスの記録を完了するまでに必要と見積もられるボリュームの容量とを比較して（Ｓ３５０４）、ボリュームの残量が必要なボリュームの容量以上ならば、一定期間が経過するまで待機する（Ｓ３５０５）。
【０１９９】
そして、一定期間経過後に、再び現在時刻がサービスの記録終了時刻を超過しているか判定して（Ｓ３５０２）、超過していなければ、ストレージマネージャ１７０４ｇのボリューム残量検出部２８１３からボリュームの残量を取得して（Ｓ３５０３）、ボリュームの残量が必要なボリュームの容量以上か判定する（Ｓ３５０４）。ボリュームの残量が必要なボリュームの容量未満ならば、残量不足時ハンドラ登録部３３０１へ、残量不足が検知されたボリュームに現在実行されているサービスの記録を識別するレコーディング識別子を引き渡して、残量不足時ハンドラの呼出を要求する（Ｓ３５０６）。
【０２００】
図３６は、残量不足時ハンドラが呼び出された場合の動作の流れを示すフローチャートである。
【０２０１】
ボリューム残量不足検知部２８０２から、残量不足時ハンドラ登録部３３０１へ、残量不足が検知されたボリュームに現在実行されているサービスの記録を識別するレコーディング識別子が引き渡されて、残量不足時ハンドラの呼出が要求された場合、残量不足時ハンドラ登録部は、そのレコーディング識別子とともに残量不足時ハンドラを呼び出す。残量不足時ハンドラは、レコーディング生成部２８０１へ、そのレコーディング識別子を引き渡して、そのレコーディング識別子から導出される現在実行されているサービスの記録の停止を要求する（Ｓ３６０１）。
【０２０２】
以上のようにして、サービスの記録時に、サービスを記録するボリュームの残量不足を検知した場合、Ｊａｖａプログラムが登録した残量不足時ハンドラを呼び出すとともに、現在実行されているサービスの記録を停止することで、不完全な状態でのサービスの記録の終了を防止することが可能となる。
【０２０３】
（実施の形態３）
以下に、本発明の実施の形態３に係る装置および方法を、図面を参照しながら説明する。
【０２０４】
実施の形態３に用いるハードウェア構成等は、本発明の実施の形態１と同様であるので、図１から図１６までを援用することとする。図中の構成要素は、実施の形態１の同一名称、同一符号の構成要素と同様の機能をもつため、再度の説明は省略する。
【０２０５】
実施の形態３のソフトウェア構成は、図３３に示すものと同様である。レコーディングマネージャ１７０４ｈ以外の構成要素は、実施の形態２のソフトウェア構成の同一名称、同一符号の構成要素と同様の機能をもつため、再度の説明は省略する。また、実施の形態３で用いる各種データ形式は、図２０から図２２までの図面、および、図２９に示すものと同様であるため、再度の説明は省略する。
【０２０６】
レコーディングマネージャ１７０４ｈは、現在放送されているサービスを、指定された期間において、指定されたビットレートで、記録領域１５０４の指定されたボリュームに記録する。レコーディングマネージャ１７０４ｈは、レコーディング生成部２８０１、ボリューム残量不足検知部２８０２、レコーディング情報保持部２８０３、残量不足時ハンドラ登録部３３０１、および、残量不足時ハンドラ登録特権判定部３３０２で構成される。
【０２０７】
残量不足時ハンドラ登録部３３０１、レコーディング生成部２８０１、および、ボリューム残量不足検知部２８０２以外の構成要素は、実施の形態２と同様の機能をもつため、再度の説明は省略する。
【０２０８】
残量不足時ハンドラ登録部３３０１は、ボリューム残量不足検知部２８０２において現在実行されているサービスを記録するボリュームの残量不足が検知された場合に、現在実行されているサービスの記録を識別するレコーディング識別子、レコーディング生成部２８０１から引き渡されたビットレート、および、ボリュームの残量を引き渡されて呼び出される、特権Ｊａｖａプログラムによって事前に登録された、ボリュームの残量不足時に対処するための残量不足時ハンドラを保持する。
【０２０９】
レコーディング生成部２８０１は、Ｊａｖａプログラムによって指定されたチャンネル識別子、開始時刻、終了時刻、ビットレート、および、ボリューム識別子にもとづいて、チャンネル識別子によって識別されるサービスを、指定された開始時刻と終了時刻の間だけ、指定されたビットレートで、記録領域１５０４の指定されたボリュームに記録する。また、指定されたチャンネル識別子、開始時刻、終了時刻、ビットレート、および、ボリューム識別子等をレコーディング情報として、レコーディング情報保持部２８０３へ通知して保持させるとともに、記録領域１５０４にも記録する。
【０２１０】
さらに、レコーディング生成部２８０１は、Ｊａｖａプログラムが実装する残量不足時ハンドラによって指定されたレコーディング識別子および終了時刻にもとづいて、レコーディング識別子によって識別される現在実行されているサービスの記録の終了時刻を修正する。
【０２１１】
まず、Ｊａｖａプログラムが指定するチャンネル識別子によって識別されるサービスの記録に関して、その動作の流れは実施の形態１と同様であるため、再度の説明は省略する。
【０２１２】
次に、Ｊａｖａプログラムが実装する残量不足時ハンドラが指定するレコーディング識別子および終了時刻によって、識別される現在実行されているサービスの記録の終了時刻の修正に関して、その動作の流れを以下に記述する。
【０２１３】
レコーディング生成部２８０１は、Ｊａｖａプログラムが実装する残量不足時ハンドラから、レコーディング識別子、および、修正された終了時刻を指定されて、そのレコーディング識別子によって識別される現在実行されているサービスの記録の終了時刻の修正を要求されると、保持するレコーディング情報から、指定されたレコーディング識別子をキーとして、対応するレコーディング情報を導出する。そして、そのレコーディング情報によって現在実行されているサービスの記録の終了時刻を修正する。
【０２１４】
ボリューム残量不足検知部２８０２は、あるサービスの記録開始時に、レコーディング生成部２８０１から、レコーディング情報のうち、レコーディング識別子、終了時刻、ビットレート、および、ボリューム識別子が引き渡されて、サービスが記録されるボリュームの残量を監視する。一定周期ごとにストレージマネージャ１７０４ｇのボリューム残量検出部２８１３にボリューム識別子を引き渡して、そのボリューム識別子によって識別されるボリュームの残量を取得する。また、サービスが記録されるボリュームの残量不足が検知された場合は、残量不足時ハンドラ登録部３３０１へ、ボリュームの残量不足が検知された現在実行されているサービスの記録を識別するレコーディング識別子、レコーディング生成部２８０１から引き渡されたビットレート、および、ボリュームの残量を引き渡して、特権Ｊａｖａプログラムによって残量不足時ハンドラ登録部３３０１に登録された残量不足時ハンドラの呼出を要求する。
【０２１５】
残量不足時ハンドラは、残量不足時ハンドラ登録部３３０１から、ボリュームの残量不足が検知された現在実行されているサービスの記録を識別するレコーディング識別子、レコーディング生成部２８０１からボリューム残量不足検知部２８０２を経て引き渡されたビットレート、および、ボリュームの残量が引き渡されて、実行される。残量不足時ハンドラは、レコーディング生成部２８０１へ、そのレコーディング識別子、および、記録終了時刻を引き渡して、そのレコーディング識別子から導出されるサービスの記録の終了時刻の修正を要求する。ここで、記録終了時刻は、ビットレートとボリュームの残量によって算出されるそのボリュームで記録可能と見積もられる記録終了時刻である。
【０２１６】
以上説明した構成による本実施例において特徴的な動作を、以下にフローチャートを用いて説明する。
【０２１７】
サービスの記録が開始されてから、サービスを記録するボリュームの残量不足が検知されて、残量不足時ハンドラが呼び出されるまでの動作の流れは、実施の形態２と同様であるため、図３５のフローチャートを参照することとする。
【０２１８】
図３７は、残量不足時ハンドラが呼び出された場合の動作の流れを示すフローチャートである。
【０２１９】
ボリューム残量不足検知部２８０２から、残量不足時ハンドラ登録部３３０１へ、残量不足が検知されたボリュームに現在実行されているサービスの記録を識別するレコーディング識別子、レコーディング生成部２８０１から引き渡されたビットレート、および、ボリュームの残量が引き渡されて、残量不足時ハンドラの呼出が要求された場合、残量不足時ハンドラ登録部は、そのレコーディング識別子、ビットレート、および、ボリュームの残量とともに残量不足時ハンドラを呼び出す。残量不足時ハンドラは、レコーディング生成部２８０１へ、そのレコーディング識別子および記録終了時刻を引き渡して、そのレコーディング識別子から導出される現在実行されているサービスの記録の終了時刻を修正する（Ｓ３７０１）。ここで、記録終了時刻は、ビットレートとボリュームの残量によって算出されるそのボリュームで記録可能と見積もられる記録終了時刻である。
【０２２０】
以上のようにして、サービスの記録時に、サービスを記録するボリュームの残量不足を検知した場合、Ｊａｖａプログラムが登録した残量不足時ハンドラを呼び出すとともに、現在実行されているサービスの記録の終了時刻を修正することで、ボリュームの残量を最大限活用しつつ、不完全な状態でのサービスの記録の終了を防止することが可能となる。
【０２２１】
（実施の形態４）
以下に、本発明の実施の形態４に係る装置および方法を、図面を参照しながら説明する。
【０２２２】
実施の形態４に用いるハードウェア構成等は、本発明の実施の形態１と同様であるので、図１から図１６までを援用することとする。図中の構成要素は、実施の形態１の同一名称、同一符号の構成要素と同様の機能をもつため、再度の説明は省略する。
【０２２３】
実施の形態４のソフトウェア構成は、図３３に示すものと同様である。レコーディングマネージャ１７０４ｈ以外の構成要素は、実施の形態２のソフトウェア構成の同一名称、同一符号の構成要素と同様の機能をもつため、再度の説明は省略する。また、実施の形態４で用いる各種データ形式は、図２０から図２２までの図面、および、図２９に示すものと同様であるため、再度の説明は省略する。
【０２２４】
レコーディングマネージャ１７０４ｈは、現在放送されているサービスを、指定された期間において、指定されたビットレートで、記録領域１５０４の指定されたボリュームに記録する。レコーディングマネージャ１７０４ｈは、レコーディング生成部２８０１、ボリューム残量不足検知部２８０２、レコーディング情報保持部２８０３、残量不足時ハンドラ登録部３３０１、および、残量不足時ハンドラ登録特権判定部３３０２で構成される。
【０２２５】
残量不足時ハンドラ登録部３３０１、レコーディング生成部２８０１、および、ボリューム残量不足検知部２８０２以外の構成要素は、実施の形態２と同様の機能をもつため、再度の説明は省略する。
【０２２６】
残量不足時ハンドラ登録部３３０１は、ボリューム残量不足検知部２８０２において現在実行されているサービスを記録するボリュームの残量不足が検知された場合に、現在実行されているサービスの記録を識別するレコーディング識別子、レコーディング生成部２８０１から引き渡された終了時刻、および、ボリュームの残量を引き渡されて呼び出される、特権Ｊａｖａプログラムによって事前に登録された、ボリュームの残量不足時に対処するための残量不足時ハンドラを保持する。
【０２２７】
レコーディング生成部２８０１は、Ｊａｖａプログラムによって指定されたチャンネル識別子、開始時刻、終了時刻、ビットレート、および、ボリューム識別子にもとづいて、チャンネル識別子によって識別されるサービスを、指定された開始時刻と終了時刻の間だけ、指定されたビットレートで、記録領域１５０４の指定されたボリュームに記録する。また、指定されたチャンネル識別子、開始時刻、終了時刻、ビットレート、および、ボリューム識別子等をレコーディング情報として、レコーディング情報保持部２８０３へ通知して保持させるとともに、記録領域１５０４にも記録する。
【０２２８】
さらに、レコーディング生成部２８０１は、Ｊａｖａプログラムが実装する残量不足時ハンドラによって指定されたレコーディング識別子およびビットレートにもとづいて、レコーディング識別子によって識別される現在実行されているサービスの記録のビットレートを修正する。
【０２２９】
まず、Ｊａｖａプログラムが指定するチャンネル識別子によって識別されるサービスの記録に関して、その動作の流れは実施の形態１と同様であるため、再度の説明は省略する。
【０２３０】
次に、Ｊａｖａプログラムが実装する残量不足時ハンドラが指定するレコーディング識別子およびビットレートによって、識別される現在実行されているサービスの記録のビットレートの修正に関して、その動作の流れを以下に記述する。
【０２３１】
レコーディング生成部２８０１は、Ｊａｖａプログラムが実装する残量不足時ハンドラから、レコーディング識別子、および、修正されたビットレートを指定されて、そのレコーディング識別子によって識別される現在実行されているサービスの記録のビットレートの修正を要求されると、保持するレコーディング情報から、指定されたレコーディング識別子をキーとして、対応するレコーディング情報を導出する。そして、そのレコーディング情報によって現在実行されているサービスの記録のビットレートを修正する。
【０２３２】
ボリューム残量不足検知部２８０２は、あるサービスの記録開始時に、レコーディング生成部２８０１から、レコーディング情報のうち、レコーディング識別子、終了時刻、ビットレート、および、ボリューム識別子が引き渡されて、サービスが記録されるボリュームの残量を監視する。一定周期ごとにストレージマネージャ１７０４ｇのボリューム残量検出部２８１３にボリューム識別子を引き渡して、そのボリューム識別子によって識別されるボリュームの残量を取得する。また、サービスが記録されるボリュームの残量不足が検知された場合は、残量不足時ハンドラ登録部３３０１へ、ボリュームの残量不足が検知された現在実行されているサービスの記録を識別するレコーディング識別子、レコーディング生成部２８０１から引き渡された終了時刻、および、ボリュームの残量を引き渡して、特権Ｊａｖａプログラムによって残量不足時ハンドラ登録部３３０１に登録された残量不足時ハンドラの呼出を要求する。
【０２３３】
残量不足時ハンドラは、残量不足時ハンドラ登録部３３０１から、ボリュームの残量不足が検知された現在実行されているサービスの記録を識別するレコーディング識別子、レコーディング生成部２８０１からボリューム残量不足検知部２８０２を経て引き渡された終了時刻、および、ボリュームの残量が引き渡されて、実行される。残量不足時ハンドラは、レコーディング生成部２８０１へ、そのレコーディング識別子、および、ビットレートを引き渡して、そのレコーディング識別子から導出されるサービスの記録のビットレートの修正を要求する。ここで、ビットレートは、終了時刻とボリュームの残量によって算出されるそのボリュームで記録可能と見積もられるビットレートである。
【０２３４】
以上説明した構成による本実施例において特徴的な動作を、以下にフローチャートを用いて説明する。
【０２３５】
サービスの記録が開始されてから、サービスを記録するボリュームの残量不足が検知されて、残量不足時ハンドラが呼び出されるまでの動作の流れは、実施の形態２と同様であるため、図３５のフローチャートを参照することとする。
【０２３６】
図３８は、残量不足時ハンドラが呼び出された場合の動作の流れを示すフローチャートである。
【０２３７】
ボリューム残量不足検知部２８０２から、残量不足時ハンドラ登録部３３０１へ、残量不足が検知されたボリュームに現在実行されているサービスの記録を識別するレコーディング識別子、レコーディング生成部２８０１から引き渡された終了時刻、および、ボリュームの残量が引き渡されて、残量不足時ハンドラの呼出が要求された場合、残量不足時ハンドラ登録部は、そのレコーディング識別子、終了時刻、および、ボリュームの残量とともに残量不足時ハンドラを呼び出す。残量不足時ハンドラは、レコーディング生成部２８０１へ、そのレコーディング識別子およびビットレートを引き渡して、そのレコーディング識別子から導出される現在実行されているサービスの記録のビットレートを修正する（Ｓ３８０１）。ここで、ビットレートは、終了時刻、および、ボリュームの残量によって算出されるそのボリュームで記録可能と見積もられるビットレートである。
【０２３８】
以上のようにして、サービスの記録時に、サービスを記録するボリュームの残量不足を検知した場合、Ｊａｖａプログラムが登録した残量不足時ハンドラを呼び出すとともに、現在実行されているサービスの記録のビットレートを修正することで、ボリュームの残量を最大限活用しつつ、不完全な状態でのサービスの記録の終了を防止することが可能となる。
【０２３９】
（実施の形態５）
以下に、本発明の実施の形態５に係る装置および方法を、図面を参照しながら説明する。
【０２４０】
実施の形態５に用いるハードウェア構成等は、本発明の実施の形態１と同様であるので、図１から図１６までを援用することとする。図中の構成要素は、実施の形態１の同一名称、同一符号の構成要素と同様の機能をもつため、再度の説明は省略する。
【０２４１】
実施の形態５のソフトウェア構成は、図３３に示すものと同様である。レコーディングマネージャ１７０４ｈ以外の構成要素は、実施の形態２のソフトウェア構成の同一名称、同一符号の構成要素と同様の機能をもつため、再度の説明は省略する。また、実施の形態５で用いる各種データ形式は、図２０から図２２までの図面、および、図２９に示すものと同様であるため、再度の説明は省略する。
【０２４２】
レコーディングマネージャ１７０４ｈは、現在放送されているサービスを、指定された期間において、指定されたビットレートで、記録領域１５０４の指定されたボリュームに記録する。レコーディングマネージャ１７０４ｈは、レコーディング生成部２８０１、ボリューム残量不足検知部２８０２、レコーディング情報保持部２８０３、残量不足時ハンドラ登録部３３０１、および、残量不足時ハンドラ登録特権判定部３３０２で構成される。
【０２４３】
残量不足時ハンドラ登録部３３０１、レコーディング生成部２８０１、および、ボリューム残量不足検知部２８０２以外の構成要素は、実施の形態２と同様の機能をもつため、再度の説明は省略する。
【０２４４】
残量不足時ハンドラ登録部３３０１は、ボリューム残量不足検知部２８０２において現在実行されているサービスを記録するボリュームの残量不足が検知された場合に、現在実行されているサービスの記録を識別するレコーディング識別子、レコーディング生成部２８０１からボリューム残量不足検知部２８０２を経て引き渡された終了時刻、ビットレート、および、ボリュームの残量を引き渡されて呼び出される、特権Ｊａｖａプログラムによって事前に登録された、ボリュームの残量不足時に対処するための残量不足時ハンドラを保持する。
【０２４５】
レコーディング生成部２８０１は、Ｊａｖａプログラムによって指定されたチャンネル識別子、開始時刻、終了時刻、ビットレート、および、ボリューム識別子にもとづいて、チャンネル識別子によって識別されるサービスを、指定された開始時刻と終了時刻の間だけ、指定されたビットレートで、記録領域１５０４の指定されたボリュームに記録する。また、指定されたチャンネル識別子、開始時刻、終了時刻、ビットレート、および、ボリューム識別子等をレコーディング情報として、レコーディング情報保持部２８０３へ通知して保持させるとともに、記録領域１５０４にも記録する。
【０２４６】
さらに、レコーディング生成部２８０１は、Ｊａｖａプログラムが実装する残量不足時ハンドラによって指定されたレコーディング識別子、開始時刻、終了時刻、ビットレート、および、ボリューム識別子にもとづいて、レコーディング識別子によって識別される現在記録されているサービスと等しいサービスを、指定された開始時刻と終了時刻の間だけ、指定されたビットレートで、記録領域１５０４の指定されたボリュームに記録する。Ｊａｖａプログラムが指定するチャンネル識別子によって識別されるサービスの記録と同様に、指定されたレコーディング識別子から導出されるサービスを識別するチャンネル識別子、開始時刻、終了時刻、ビットレート、および、ボリューム識別子等をレコーディング情報として、レコーディング情報保持部２８０３へ通知して保持させるとともに、記録領域１５０４にも記録する。
【０２４７】
まず、Ｊａｖａプログラムが指定するチャンネル識別子によって識別されるサービスの記録に関して、その動作の流れは実施の形態１と同様であるため、再度の説明は省略する。
【０２４８】
次に、Ｊａｖａプログラムが実装する残量不足時ハンドラが指定するレコーディング識別子、開始時刻、終了時刻、ビットレート、および、ボリューム識別子によって、識別されるサービスの記録に関して、その動作の流れを以下に記述する。
【０２４９】
レコーディング生成部２８０１は、Ｊａｖａプログラムが実装する残量不足時ハンドラからレコーディング識別子、開始時刻、終了時刻、ビットレート、および、ボリューム識別子を指定されると、保持するレコーディング情報から、指定されたレコーディング識別子をキーとして、対応するレコーディング情報を導出する。そして、そのレコーディング情報によって現在記録されているサービスを、指定された開始時刻と終了時刻の間だけ、指定されたビットレートで、記録領域１５０４の指定されたボリュームに記録する。
【０２５０】
ただし、Ｊａｖａプログラムが指定するチャンネル識別子によって識別されるサービスの記録とは異なって、開始時刻に至っても、レコーディング生成部２８０１は、ボリューム残量不足検知部２８０２へ、レコーディング情報のうち、レコーディング識別子、終了時刻、ビットレート、および、ボリューム識別子を引き渡すことはなく、すなわち、サービスを記録するボリュームの残量を監視させることはない。
【０２５１】
以下の動作の流れは、Ｊａｖａプログラムが指定するチャンネル識別子によって識別されるサービスの記録と同様であるので、ここでは省略する。
【０２５２】
ボリューム残量不足検知部２８０２は、あるサービスの記録開始時に、レコーディング生成部２８０１から、レコーディング情報のうち、レコーディング識別子、終了時刻、ビットレート、および、ボリューム識別子が引き渡されて、サービスが記録されるボリュームの残量を監視する。一定周期ごとにストレージマネージャ１７０４ｇのボリューム残量検出部２８１３にボリューム識別子を引き渡して、そのボリューム識別子によって識別されるボリュームの残量を取得する。また、サービスが記録されるボリュームの残量不足が検知された場合は、残量不足時ハンドラ登録部３３０１へ、ボリュームの残量不足が検知された現在実行されているサービスの記録を識別するレコーディング識別子、レコーディング生成部２８０１から引き渡された終了時刻、ビットレート、および、ボリュームの残量を引き渡して、特権Ｊａｖａプログラムによって残量不足時ハンドラ登録部３３０１に登録された残量不足時ハンドラの呼出を要求する。
【０２５３】
残量不足時ハンドラは、残量不足時ハンドラ登録部３３０１から、ボリュームの残量不足が検知された現在実行されているサービスの記録を識別するレコーディング識別子、レコーディング生成部２８０１からボリューム残量不足検知部２８０２を経て引き渡された終了時刻、ビットレート、および、ボリュームの残量が引き渡されて、実行される。残量不足時ハンドラは、レコーディング生成部２８０１へ、そのレコーディング識別子、記録開始時刻、記録終了時刻、ビットレート、および、残量不足時ハンドラによって生成されたボリューム識別子を引き渡して、補足レコーディングの生成を要求する。ここで、記録開始時刻は現在記録されているボリュームの残量がなくなる時刻である。また、記録終了時刻、あるいは、ビットレートは生成されたボリュームにおいて記録可能なように設定される。よって、レコーディング生成部２８０１からボリューム残量不足検知部２８０２を経て引き渡された終了時刻、あるいは、ビットレートとは異なる可能性がある。
【０２５４】
以上説明した構成による本実施例において特徴的な動作を、以下にフローチャートを用いて説明する。
【０２５５】
サービスの記録が開始されてから、サービスを記録するボリュームの残量不足が検知されて、残量不足時ハンドラが呼び出されるまでの動作の流れは、実施の形態２と同様であるため、図３５のフローチャートを参照することとする。
【０２５６】
図３９は、残量不足時ハンドラが呼び出された場合の動作の流れを示すフローチャートである。
【０２５７】
ボリューム残量不足検知部２８０２から、残量不足時ハンドラ登録部３３０１へ、残量不足が検知されたボリュームに現在実行されているサービスの記録を識別するレコーディング識別子、および、レコーディング生成部２８０１から引き渡された終了時刻、ビットレート、および、ボリュームの残量が引き渡されて、残量不足時ハンドラの呼出が要求された場合、残量不足時ハンドラ登録部は、そのレコーディング識別子、終了時刻、ビットレート、および、ボリュームの残量とともに残量不足時ハンドラを呼び出す。残量不足時ハンドラは、ストレージマネージャ１７０４ｇのストレージ残量検出部２８１４からボリュームが割り当てられていないストレージの容量を取得する（Ｓ３９０１）。
【０２５８】
まず、ストレージ残量検出部２８１４から取得されたストレージの残量があるか判定する（Ｓ３９０２）。取得されたストレージの残量がない場合は、ボリュームの生成に失敗して、終了する。取得されたストレージの残量がある場合は、さらに、ストレージ残量検出部２８１４から取得されたストレージの残量が、終了時刻、ビットレート、および、ボリュームの残量によって算出される、サービスの記録の完了までに不足すると見積もられるボリューム容量以上であるか判定する（Ｓ３９０３）。取得されたストレージの残量が、不足するボリューム容量以上である場合は、不足するボリューム容量と既定されているボリューム名を指定して、ボリューム生成部２８１１へ、ボリュームの生成を要求する（Ｓ３９０４）。
【０２５９】
しかし、取得されたストレージの残量が、不足するボリューム容量未満である場合は、ストレージ残量検出部２８１４から取得されたストレージの残量と既定されているボリューム名を指定して、ボリューム生成部２８１１へ、ボリュームの生成を要求する（Ｓ３９０５）。ボリュームの生成に成功すれば、ボリューム生成部２８１１から生成されたボリューム識別子が返される。ボリュームの生成に成功した場合は、レコーディング生成部２８０１へ、レコーディング生成部２８０１からボリューム残量不足検知部２８０２を経て引き渡されたレコーディング識別子、記録開始時刻、記録終了時刻、ビットレート、および、生成されたボリューム識別子を引き渡して、補足レコーディングの生成を要求する（Ｓ３９０６）。
【０２６０】
ここで、記録開始時刻は現在記録されているボリュームの残量がなくなる時刻である。また、記録終了時刻、あるいは、ビットレートは生成されたボリュームにおいて記録可能なように設定される。よって、レコーディング生成部２８０１からボリューム残量不足検知部２８０２を経て引き渡された終了時刻、あるいは、ビットレートとは異なる可能性がある。
【０２６１】
以上のようにして、サービスの記録時に、サービスを記録するボリュームの残量不足を検知した場合、Ｊａｖａプログラムが登録した残量不足時ハンドラを呼び出すとともに、サービスの記録の完了までに不足すると見積もられる容量分のボリュームを生成して、そのボリュームに現在実行しているサービスの記録を移行することで、ストレージの余剰部分を活用して、サービスの記録を完了することが可能となる。
【０２６２】
（実施の形態６）
以下に、本発明の実施の形態６に係る装置および方法を、図面を参照しながら説明する。
【０２６３】
実施の形態６に用いるハードウェア構成等は、本発明の実施の形態１と同様であるので、図１から図１６までを援用することとする。図中の構成要素は、実施の形態１の同一名称、同一符号の構成要素と同様の機能をもつため、再度の説明は省略する。また、実施の形態６で用いる各種データ形式は、図２０から図２２までの図面、および、図２９に示すものと同様であるため、再度の説明は省略する。
【０２６４】
図４０は、Ｊａｖａライブラリ１７０４におけるストレージマネージャ１７０４ｇ、および、レコーディングマネージャ１７０４ｈの詳細な構成を示す図である。ストレージマネージャ１７０４ｇおよびレコーディングマネージャ１７０４ｈ以外の構成要素は、実施の形態２のソフトウェア構成の同一名称、同一符号の構成要素と同様の機能をもつため、再度の説明は省略する。
【０２６５】
ストレージマネージャ１７０４ｇは、ストレージすなわち記録領域１５０４を１つあるいは複数のボリュームという単位に分割して管理する。ストレージマネージャ１７０４ｇは、ボリューム生成部２８１１、ボリューム情報保持部２８１２、ボリューム残量検出部２８１３、および、ストレージ残量検出部２８１４で構成される。
【０２６６】
ボリューム生成部２８１１、および、ストレージ残量検出部２８１４以外の構成要素は、実施の形態５と同様の機能をもつため、再度の説明は省略する。
【０２６７】
ボリューム生成部２８１１は、Ｊａｖａプログラムあるいは残量不足時ハンドラ登録部３３０１によって指定されるボリューム名およびボリューム容量にもとづいて、記録領域１５０４にボリュームを生成する。例えば、ボリューム名として“ＭＥＤＩＡ”、ボリューム容量として“１０２４０”と指定された場合は、１０２４０キロバイトの“ＭＥＤＩＡ”というボリュームを記録領域１５０４に生成する。ボリューム生成部２８１１が、ストレージ残量検出部２８１４からストレージすわなち記録領域１５０４の残量を取得して、記録領域１５０４に十分な空容量がない、あるいは、ボリューム情報保持部２８１２から記録領域１５０４に既存のボリューム情報を取得して、記録領域１５０４にすでに同名のボリュームが存在する場合は、ボリュームの生成に失敗する。ボリュームの生成に成功すれば、ボリュームを識別するためのボリューム識別子、ボリューム名、および、ボリューム容量等の情報が、ボリューム情報として、ボリューム情報保持部２８１２へ通知されて保持されるとともに、記録領域１５０４にも記録される。
【０２６８】
Ｊａｖａプログラムあるいは残量不足時ハンドラ登録部３３０１によって指定されたボリュームを生成するまでの動作の流れを図３０に示す。
【０２６９】
Ｊａｖａプログラムあるいは残量不足時ハンドラ登録部３３０１からボリューム名およびボリューム容量が指定されて、ボリューム生成部２８１１へボリュームの生成が要求される。ボリューム生成部２８１１は、ストレージ残量検出部２８１４からストレージの残量を取得して、ストレージにボリュームを生成するための十分な残量があるか判定する。ストレージに十分な残量がない場合は、ボリュームの生成に失敗する。ストレージに十分な残量がある場合は、ボリューム情報保持部２８１２からストレージに既存のボリューム情報を取得して、ストレージに同名のボリュームがないか判定する。ストレージにすでに同名のボリュームがある場合は、ボリュームの生成に失敗する。ストレージに同名のボリュームがない場合は、ボリュームを生成して、生成したボリュームを識別するボリューム識別子を割り当てる。そのボリューム識別子、ボリューム名、および、ボリューム容量等の情報を、ボリューム情報として、ボリューム情報保持部２８１２に通知して保持させる。
【０２７０】
ストレージ残量検出部２８１４は、Ｊａｖａプログラム、ボリューム生成部２８１１、あるいは、残量不足時ハンドラ登録部３３０１からの問合せにもとづいて、その時点でボリュームが割り当てられていないストレージすなわち記録領域１５０４の容量を返す。
【０２７１】
レコーディングマネージャ１７０４ｈは、現在放送されているサービスを、指定された期間において、指定されたビットレートで、記録領域１５０４の指定されたボリュームに記録する。レコーディングマネージャ１７０４ｈは、レコーディング生成部２８０１、ボリューム残量不足検知部２８０２、レコーディング情報保持部２８０３、残量不足時ハンドラ登録部３３０１、および、残量不足時ハンドラ登録特権判定部３３０２で構成される。
【０２７２】
残量不足時ハンドラ登録部３３０１、および、レコーディング生成部２８０１以外の構成要素は、実施の形態５と同様の機能をもつため、再度の説明は省略する。
【０２７３】
残量不足時ハンドラ登録部３３０１は、ボリューム残量不足検知部２８０２において現在実行されているサービスを記録するボリュームの残量不足が検知された場合に、現在実行されているサービスの記録を識別するレコーディング識別子、レコーディング生成部２８０１からボリューム残量不足検知部２８０２を経て引き渡された終了時刻、ビットレート、および、ボリュームの残量を引き渡されて呼び出される、特権Ｊａｖａプログラムによって事前に登録された、ボリュームの残量不足時に対処するための残量不足時ハンドラを保持する。
【０２７４】
残量不足時ハンドラ登録部３３０１が保持する残量不足時ハンドラが呼び出された場合、その戻り値によって残量不足時ハンドラ登録部３３０１はボリュームの残量不足への対処を変化させる。
【０２７５】
残量不足時ハンドラからの戻り値が“ＳＴＯＰ＿ＲＥＣＯＲＤＩＮＧ”であった場合は、残量不足時ハンドラ登録部３３０１は、レコーディング生成部２８０１へ、ボリュームの残量不足が検知されたサービスの記録を識別するレコーディング識別子を指定して、サービスの記録を停止させる。
【０２７６】
残量不足時ハンドラからの戻り値が“ＴＩＭＥ＿ＦＯＲＷＡＲＤ”であった場合は、残量不足時ハンドラ登録部３３０１は、レコーディング生成部２８０１へ、ボリュームの残量不足が検知されたサービスの記録を識別するレコーディング識別子、および、修正された記録終了時刻を指定して、サービスの記録の終了時刻を修正させる。ここで、修正された記録終了時刻は、ビットレートとボリュームの残量によって算出されるそのボリュームで記録可能と見積もられる記録終了時刻である。
【０２７７】
残量不足時ハンドラからの戻り値が“ＲＡＴＥ＿ＤＯＷＮ”であった場合は、残量不足時ハンドラ登録部３３０１は、レコーディング生成部２８０１へ、ボリュームの残量不足が検知されたサービスの記録を識別するレコーディング識別子、および、修正されたビットレートを指定して、サービスの記録のビットレートを修正させる。ここで、修正されたビットレートは、終了時刻とボリュームの残量によって算出されるそのボリュームで記録可能と見積もられるビットレートである。
【０２７８】
残量不足時ハンドラからの戻り値が“ＣＲＥＡＴＥ＿ＶＯＬＵＭＥ”であった場合は、残量不足時ハンドラ登録部３３０１は、ストレージマネージャ１７０４ｇのストレージ残量検出部２８１４からボリュームが割り当てられていないストレージの容量を取得する。まず、ストレージ残量検出部２８１４から取得されたストレージの残量があるか判定する。取得されたストレージの残量がない場合は、ボリュームの生成に失敗して、終了する。取得されたストレージの残量がある場合は、さらに、ストレージ残量検出部２８１４から取得されたストレージの残量が、終了時刻、ビットレート、および、ボリュームの残量によって算出される、サービスの記録の完了までに不足すると見積もられるボリューム容量以上であるか判定する。
【０２７９】
取得されたストレージの残量が、不足するボリューム容量以上である場合は、残量不足時ハンドラ登録部３３０１は、不足するボリューム容量と既定されているボリューム名を指定して、ボリューム生成部２８１１へ、ボリュームの生成を要求する。しかし、取得されたストレージの残量が、不足するボリューム容量未満である場合は、残量不足時ハンドラ登録部３３０１は、ストレージ残量検出部２８１４から取得されたストレージの残量と既定されているボリューム名を指定して、ボリューム生成部２８１１へ、ボリュームの生成を要求する。ボリュームの生成に成功すれば、ボリューム生成部２８１１から生成されたボリューム識別子が返される。
【０２８０】
ボリュームの生成に成功した場合は、残量不足時ハンドラ登録部３３０１は、レコーディング生成部２８０１へ、ボリュームの残量不足が検知されたサービスの記録を識別するレコーディング識別子、記録開始時刻、記録終了時刻、ビットレート、および、生成されたボリューム識別子を引き渡して、補足レコーディングの生成を要求する。ここで、記録開始時刻は現在記録されているボリュームの残量がなくなる時刻である。また、記録終了時刻、あるいは、ビットレートは生成されたボリュームにおいて記録可能なように設定される。よって、レコーディング生成部２８０１からボリューム残量不足検知部２８０２を経て引き渡された終了時刻、あるいは、ビットレートとは異なる可能性がある。
【０２８１】
レコーディング生成部２８０１は、Ｊａｖａプログラムによって指定されたチャンネル識別子、開始時刻、終了時刻、ビットレート、および、ボリューム識別子にもとづいて、チャンネル識別子によって識別されるサービスを、指定された開始時刻と終了時刻の間だけ、指定されたビットレートで、記録領域１５０４の指定されたボリュームに記録する。また、指定されたチャンネル識別子、開始時刻、終了時刻、ビットレート、および、ボリューム識別子等をレコーディング情報として、レコーディング情報保持部２８０３へ通知して保持させるとともに、記録領域１５０４にも記録する。
【０２８２】
まず、Ｊａｖａプログラムが指定するチャンネル識別子によって識別されるサービスの記録に関して、その動作の流れは実施の形態１と同様であるため、再度の説明は省略する。
【０２８３】
さらに、レコーディング生成部２８０１は、残量不足時ハンドラ登録部３３０１によって指定されたレコーディング識別子にもとづいて、レコーディング識別子によって識別される現在実行されているサービスの記録を停止する。
【０２８４】
残量不足時ハンドラ登録部３３０１が指定するレコーディング識別子によって識別される現在実行されているサービスの記録の停止に関して、その動作の流れを以下に記述する。
【０２８５】
レコーディング生成部２８０１は、残量不足時ハンドラ登録部３３０１からレコーディング識別子を指定されて、そのレコーディング識別子によって識別される現在実行されているサービスの記録の停止を要求されると、保持するレコーディング情報から、指定されたレコーディング識別子をキーとして、対応するレコーディング情報を導出する。そして、そのレコーディング情報によって現在実行されているサービスの記録を、停止する。具体的には、レコーディング生成部２８０１はＴｕｎｅｒ１７０４ｃのチューニング動作を停止させ、記録領域１５０４の指定されたボリュームへのＭＰＥＧ２トランスポートストリームの書込を終了させる。また、先ほど記録したＭＰＥＧ２トランスポートストリームの管理情報として、図２１に示すレコーディング情報管理テーブルを生成する。
【０２８６】
また、レコーディング生成部２８０１は、残量不足時ハンドラ登録部３３０１によって指定されたレコーディング識別子および終了時刻にもとづいて、レコーディング識別子によって識別される現在実行されているサービスの記録の終了時刻を修正する。
【０２８７】
残量不足時ハンドラ登録部３３０１が指定するレコーディング識別子および終了時刻によって、識別される現在実行されているサービスの記録の終了時刻の修正に関して、その動作の流れを以下に記述する。
【０２８８】
レコーディング生成部２８０１は、残量不足時ハンドラ登録部３３０１から、レコーディング識別子、および、修正された終了時刻を指定されて、そのレコーディング識別子によって識別される現在実行されているサービスの記録の終了時刻の修正を要求されると、保持するレコーディング情報から、指定されたレコーディング識別子をキーとして、対応するレコーディング情報を導出する。そして、そのレコーディング情報によって現在実行されているサービスの記録の終了時刻を修正する。
【０２８９】
また、レコーディング生成部２８０１は、残量不足時ハンドラ登録部３３０１によって指定されたレコーディング識別子およびビットレートにもとづいて、レコーディング識別子によって識別される現在実行されているサービスの記録のビットレートを修正する。
【０２９０】
残量不足時ハンドラ登録部３３０１が指定するレコーディング識別子およびビットレートによって、識別される現在実行されているサービスの記録のビットレートの修正に関して、その動作の流れを以下に記述する。
【０２９１】
レコーディング生成部２８０１は、残量不足時ハンドラ登録部３３０１から、レコーディング識別子、および、修正されたビットレートを指定されて、そのレコーディング識別子によって識別される現在実行されているサービスの記録のビットレートの修正を要求されると、保持するレコーディング情報から、指定されたレコーディング識別子をキーとして、対応するレコーディング情報を導出する。そして、そのレコーディング情報によって現在実行されているサービスの記録のビットレートを修正する。
【０２９２】
また、レコーディング生成部２８０１は、残量不足時ハンドラ登録部３３０１によって指定されたレコーディング識別子、開始時刻、終了時刻、ビットレート、および、ボリューム識別子にもとづいて、レコーディング識別子によって識別される現在記録されているサービスと等しいサービスを、指定された開始時刻と終了時刻の間だけ、指定されたビットレートで、記録領域１５０４の指定されたボリュームに記録する。Ｊａｖａプログラムが指定するチャンネル識別子によって識別されるサービスの記録と同様に、指定されたレコーディング識別子から導出されるサービスを識別するチャンネル識別子、開始時刻、終了時刻、ビットレート、および、ボリューム識別子等をレコーディング情報として、レコーディング情報保持部２８０３へ通知して保持させるとともに、記録領域１５０４にも記録する。
【０２９３】
残量不足時ハンドラ登録部３３０１が指定するレコーディング識別子、開始時刻、終了時刻、ビットレート、および、ボリューム識別子によって、識別されるサービスの記録に関して、その動作の流れを以下に記述する。
【０２９４】
レコーディング生成部２８０１は、残量不足時ハンドラ登録部３３０１からレコーディング識別子、開始時刻、終了時刻、ビットレート、および、ボリューム識別子を指定されると、保持するレコーディング情報から、指定されたレコーディング識別子をキーとして、対応するレコーディング情報を導出する。そして、そのレコーディング情報によって現在記録されているサービスを、指定された開始時刻と終了時刻の間だけ、指定されたビットレートで、記録領域１５０４の指定されたボリュームに記録する。
【０２９５】
ただし、Ｊａｖａプログラムが指定するチャンネル識別子によって識別されるサービスの記録とは異なって、開始時刻に至っても、レコーディング生成部２８０１は、ボリューム残量不足検知部２８０２へ、レコーディング情報のうち、レコーディング識別子、終了時刻、ビットレート、および、ボリューム識別子を引き渡すことはなく、すなわち、サービスを記録するボリュームの残量を監視させることはない。
【０２９６】
以下の動作の流れは、Ｊａｖａプログラムが指定するチャンネル識別子によって識別されるサービスの記録と同様であるので、ここでは省略する。
【０２９７】
以上のようにして、サービスの記録時に、サービスを記録するボリュームの残量不足を検知した場合、Ｊａｖａプログラムが登録した残量不足時ハンドラを呼び出すとともに、その戻り値によってボリュームの残量不足への対処を変化させることで、サービスの記録時にボリュームの残量不足が発生したとしても、その場合に適当な対処を実行することが可能となる。
【０２９８】
（実施の形態７）
以下に、本発明の実施の形態７に係る装置および方法を、図面を参照しながら説明する。
【０２９９】
実施の形態７は、実施の形態１を実現するための異なるハードウェア構成の形態を提供するものである。実施の形態７で用いるハードウェア構成等は、図２４および図２５で示す。
【０３００】
図２４は、サービスの記録時における、各デバイスの物理的な接続順序と処理内容、入出力のデータ形式を表現する概念図を示す。図中の構成要素のうち、図１５と同一番号を付した構成要素は、実施の形態１で既に説明済であるため、再度の説明を省略する。図２４のハードウェア構成では、図１５と異なり、ＴＳデコーダ１３０２でフィルタリングされたセクションが、１次記憶部１３０８を通った後、多重器を経由せずに、記録領域１５０４に記録される。ここで、セクションの記録領域１５０４への記録に関しては、セクションの形式に応じて記録方式が異なる。
【０３０１】
ＤＳＭＣＣファイルシステムにてＭＰＥＧ２トランスポートストリーム中に記録されたファイルシステムに関しては、端末固有の記録領域１５０４独自のファイルシステムフォーマットに変換して記録領域１５０４に記録する。
【０３０２】
また、ＡＩＴに関しては、図２６に拡張したレコーディング情報管理テーブルの形式に変換して記録領域１５０４に記録する。図２６に示したレコーディング情報管理テーブルは、図２１に示したレコーディング情報管理テーブルを拡張したものであり、両図において同一の符号で識別される項目は、図２１に示したレコーディング情報管理テーブルと同等の意味をもつため、説明を省略する。
【０３０３】
各行２６１１〜２６１３はそれぞれ１つのサービスのレコーディング情報を示す。各行２６１１〜２６１３はそれぞれレコーディング識別子２１０１、チャンネル識別子２１０２、プログラムナンバー２１０３、サービスの記録を開始した時間２１０４、サービスの記録を終了した時間２１０５、サービスを記録するビットレート２１０６、メディア識別子２１０７、および、ＡＩＴ情報管理テーブルへの参照をもつ。ＡＩＴ情報管理テーブルはメディア時刻２６２１とそれに対応するＡＩＴバージョン２６２２をもつ。メディア時刻２６２１は対応するＭＰＥＧ２トランスポートストリームの再生時の時刻であって、対応するＭＰＥＧ２トランスポートストリーム上の位置を示す。ＡＩＴバージョン２６２２は図２２におけるＡＩＴバージョン２２００に対応する。
【０３０４】
例えば、レコーディング識別子２１０１として「００１」をもつサービスのレコーディング情報は、メディア識別子２１０７として「００１」をもち、参照されているＡＩＴ情報管理テーブルにおいてメディア時刻２６２１が「００：００：００」時には対応するＡＩＴバージョン２６２２は「１」となって、同様に、メディア時刻２６２１が「００：０５：００」時には対応するＡＩＴバージョン２６２２は「２」、メディア時刻２６２１が「００：２０：００」時には対応するＡＩＴバージョン２６２２は「３」となる。チャンネル識別子２６０１として「００１」をもつサービスの再生時には、レコーディング情報管理テーブルを参照して、メディア識別子２１０７である「００１」によって特定される映像および音声が多重化されたＭＰＥＧ２トランスポートストリームが再生されるとともに、ＡＩＴ情報管理テーブルを参照して、メディア時刻２６２１が「００：００：００」に達すれば、ＡＩＴバージョン２６２２が「１」であるＡＩＴに応じて、Ｊａｖａプログラムが起動あるいは終了等の制御が実行される。
【０３０５】
同様に、メディア時刻２６２１が「００：０５：００」に達すれば、ＡＩＴバージョン２６２２が「２」であるＡＩＴに応じて、メディア時刻２６２１が「００：２０：００」に達すれば、ＡＩＴバージョン２６２２が「３」であるＡＩＴに応じて、Ｊａｖａプログラムが起動あるいは終了等の制御が実行される。実際のＡＩＴは、プライベートセクション形式のバイナリファイルとして、端末固有の記録領域１５０４独自のファイルシステムフォーマットに変換して記録領域１５０４に記録するものとする。記録されたファイルは、一意に特定可能なユニークなファイル名がつけられ、それがレコーディング情報管理テーブル中にＡＩＴファイル名２６２３として記録される。
【０３０６】
実際の放送波においては、同一のＡＩＴバージョンをもつＡＩＴが何度も繰り返し送信されるが、本実施の形態においては、受信されるＡＩＴバージョンの変化を検出することで、その時点における更新された最初のＡＩＴのみを記録領域１５０４に記録することとする。
【０３０７】
図２５に、サービスの再生時における、各デバイスの物理的な接続順序と処理内容、入出力のデータ形式を表現する概念図を示す。図中の構成要素のうち、図１６と同一番号を付した構成要素は、実施の形態１で既に説明済であるため、再度の説明を省略する。
【０３０８】
図２５のハードウェア構成では、図１６と異なり、記録領域１５０４に記録されたセクションが、ＴＳデコーダを経由せずに、一次記憶に読み込まれる。記録領域から読み出したＭＰＥＧ２トランスポートストリームの現在再生時間に対応するメディア時間をレコーディング情報管理テーブルから検索し、そのメディア時間に相当するＡＩＴやＤＳＭＣＣファイルシステムをファイルから読み出す。
【０３０９】
ここで、図２２に示すＡＩＴと、図２６に示すレコーディング情報管理テーブルとによって、チャンネル識別子が「００１」に対応するサービスを記録領域１５０４から再生する場合を一例として挙げる。
【０３１０】
再生するサービスとして、チャンネル識別子が「００１」に対応するサービスが指定されると、サービスの再生において前述したように、サービスに属する音声・映像、および、サービスに属するＪａｖａプログラムがそれぞれ再生および起動される。
【０３１１】
再生を開始するメディア時刻が指定されない場合は、メディア時刻２６２１が「００：００：００」から再生を開始する。すなわち、音声・映像としては、レコーディング識別子２１０１「００１」に対応するメディア識別子２１０７「００１」をもつＭＰＥＧ２トランスポートストリームがメディア時刻２６２１「００：００：００」から再生される。ＡＩＴ情報管理テーブルを参照して、メディア時刻２６２１「００：００：００」に対応するＡＩＴバージョン２６２２が「１」であるので、ＡＩＴバージョン２２００が「１」であるＡＩＴをファイルから読み出す。ＡＩＴの内容に基づいて、制御情報２２０２が「ａｕｔｏｓｔａｒｔ」であるプログラム名２２０４に対応するＪａｖａプログラムが起動される。
【０３１２】
次いで、サービスの再生が継続されて、メディア識別子「００１」に対応するＭＰＥＧ２トランスポートストリームが再生されている位置がメディア時刻２６２１「００：０５：００」となれば、ＡＩＴ情報管理テーブルを参照して、メディア時刻２６２１「００：０５：００」に対応するＡＩＴバージョン２６２２が「２」であるので、ＡＩＴバージョン２２００が「２」であるＡＩＴにもとづいて、制御情報２２０２が「ａｕｔｏｓｔａｒｔ」であるプログラム名２２０４に対応するＪａｖａプログラムが起動されるとともに、制御情報２２０２が「ｄｅｓｔｒｏｙ」、あるいは、「ｋｉｌｌ」であるプログラム名２２０４に対応するＪａｖａプログラムが終了される。ここで、図２２を参照して、制御情報２２０２が「ｄｅｓｔｒｏｙ」であるプログラム名は「／ｂ／ＭｕｓｉｃＸｌｅｔ」、制御情報２２０２が「ｋｉｌｌ」であるプログラム名は 「／ｚ／ＳｔｕｄｙＸｌｅｔ」であるので、メディア時刻２６２１「００：０５：００」において、それらのプログラム名に対応するＪａｖａプログラムが実行されていれば、それらのＪａｖａプログラムは終了される。
【０３１３】
次いで、サービスの再生が継続されて、メディア識別子２１０７「００１」に対応するＭＰＥＧ２トランスポートストリームが再生されている位置がメディア時刻２６２１「００：２０：００」となれば、ＡＩＴ情報管理テーブルを参照して、メディア時刻２６２１「００：２０：００」に対応するＡＩＴバージョン２６２２が「３」であるので、ＡＩＴバージョン２２００が「３」であるＡＩＴにもとづいて、制御情報２２０２が「ａｕｔｏｓｔａｒｔ」であるプログラム名２２０４に対応するＪａｖａプログラムが起動されるとともに、制御情報２２０２が「ｄｅｓｔｒｏｙ」、あるいは、「ｋｉｌｌ」であるプログラム名２２０４に対応するＪａｖａプログラムが終了される。
【０３１４】
以上のようにして、多重器によって多重化された映像および音声と、別途異なる形式で記録されたＤＳＭＣＣファイルシステムおよびＡＩＴファイルを組み合わせてサービス再生することが可能となる。これにより、放送では繰り返し送信されていたＤＳＭＣＣファイルシステムやＡＩＴを更新時の一度分だけ記録すればよいことになり、記録領域の記憶容量の消費を抑えることができる。
【０３１５】
以上説明したいくつかの実施例は、本発明の実現例を示したものであり、本発明の趣旨が実現される限り他の実現例でも実施可能である。
【０３１６】
実施例ではケーブルシステムを対象とした構成を示したが、本発明は放送システムの種類に依存しない。例えば、衛星システム、地上波システム、あるいはＩＰネットワークを用いた番組配信システムなどにも容易に適応可能である。さらに本発明は各放送システムの違いと直接的な関係を持たないため、放送システムに係らず任意の伝送媒体で適用可能である。有線、無線の違いにも依存しない。
【０３１７】
ＡＶデコーダは、必ずしも映像および音声を同時にデコードする必要はない。映像デコーダ、音声デコーダを分離した構成としても、本発明は実現可能である。またＡＶデコーダがクローズドキャプションなどのデータに対するデコード機能を持っていても差し支えない。ＡＶデコーダによってデコードされたａｕｄｉｏ信号およびｖｉｄｅｏ信号が、記録領域１５０４に蓄積されるまでの任意の段階において暗号化されてもよい。
【０３１８】
実施例では、限定視聴を制御するアダプタを導入した例を示したが、アダプタは本発明を実現するために必ずしも必要ではない。アダプタの形式がいかなるものであってもよいし、またアダプタのない構成とすることも可能である。その場合、図１５において、チューナからのＭＰＥＧ２トランスポートストリームが直接ＴＳデコーダに入力される。この場合も本発明は適用可能である。また、アダプタによる限定視聴解除をＴＳデコーダ以前に行う必要はない。任意の位置でアダプタを利用して限定視聴を解除する構成とすることは容易であり、その場合も本発明は適用可能である。
【０３１９】
ＡＶエンコーダによるａｕｄｉｏ信号およびｖｉｄｅｏ信号のエンコード形式は、任意の形式であってもよい。本発明はいかなるエンコード形式であっても適用可能である。
【０３２０】
多重器の多重形式は任意の形式であってもよい。本発明はいかなる多重形式であっても適用可能である。
【０３２１】
ディスプレイおよびスピーカは、放送録画再生装置内部に包含していてもよく、放送録画再生装置に外部ディスプレイおよびスピーカを接続してもよい。ディスプレイおよびスピーカの存在場所や数によらず、本発明は適用可能である。
【０３２２】
ＣＰＵ自身が、ＴＳデコード、ＡＶデコード、ＡＶエンコードおよび多重化のすべてあるいはいくつかの処理を兼用で行うシステムであっても本発明は実施可能である。
【０３２３】
サービスを記録する形式としては、他にもＴＳデコーダを介さずにチューナからのＭＰＥＧ２トランスポートストリーム出力を直接、記録領域記録してもよいし、ＭＰＥＧ２トランスポートストリームの形式を変換するトランスレータを設けてチューナからのＭＰＥＧ２トランスポートストリームを形式変換して記録領域に記録してもよい。いかなるサービス記録方式を用いても、本発明は実施可能である。
【０３２４】
一部のＪａｖａバーチャルマシンは、バイトコードをＣＰＵが理解可能な実行形式に翻訳してから、ＣＰＵに引渡して実行するが、この場合でも本発明は適用可能である。
【０３２５】
以上の実施例では、ストレージすなわち記録領域１５０４が１つである場合を挙げたが、複数であってもよい。その場合は、ボリューム生成部２８１１、ボリューム情報保持部２８１２、ボリューム残量検出部２８１３、および、ストレージ残量検出部２８１４に対して、ストレージを識別するためのストレージ識別子も併せて指定する。
【０３２６】
以上の実施例では、トランスポートストリームがＩｎ−ｂａｎｄから得られるとしてＡＩＴに関して実現方法を説明したが、ＡＭが実行すべきＪａｖａプログラムを参照する手法はＡＩＴによるものだけではない。米国ケーブルシステムで利用されることが想定されるＯＣＡＰでは図３に記載されるＯＯＢにてアプリケーションプログラムの参照情報を記載するＸＡＩＴが利用されている。その他、ＲＯＭに予め記録されているものを起動する、２次記憶にダウンロードして記憶したものを起動する、等の方法も考えられる。
【０３２７】
本発明における録画再生装置、および、録画再生方法によれば、放送波の記録時に、放送波を記録する単位の残量不足を検知した場合、登録されている残量不足時ハンドラが呼び出されるとともに、その戻り値によって単位の残量不足への対処が変化することで、残量不足時ハンドラがその戻り値によって、既定の処理を選択して実行することが可能となる。
【０３２８】
上記に詳細に説明した本発明の実施の形態は単なる例示にすぎず、本発明の新規な教示および効果から実質的に逸脱することなく例示として挙げた実施の形態において様々な変更が可能であることは、当業者であれば容易に理解するところである。したがって、かかる変更はすべて本発明の範囲内に含まれるものである。
【産業上の利用可能性】
【０３２９】
本発明に係る記録装置（録画再生装置および録画再生方法）は、サービスの記録時に、サービスを記録するボリュームの残量不足を検知した場合、ストレージの余剰部分に補足ボリュームを生成するとともに、サービスで記録不可とされた部分をその補足ボリュームに記録することで、ストレージの余剰部分を活用して、サービスの記録を完了することを可能とするため、殊に放送録画再生装置に係る民生機器産業において利用される可能性が高い。例えば、ケーブルＳＴＢ、および、ディジタルＴＶ等として利用可能である。さらに、例えば、携帯電話等の機器においても放送受信機能をもつ機器であれば利用可能である。
【図面の簡単な説明】
【０３３０】
本願におけるこれらの目的および他の目的や、効果、特徴は、実施の形態を示す付属図面に関する以下の説明から明確になる。当該図面において、
【図１】本発明に係る放送システムの構成図である。
【図２】本発明に係るケーブルテレビシステムにおいて放送局側システムと端末装置間の通信に使用される周波数帯域の使い方の一例を示す図である。
【図３】本発明に係るケーブルテレビシステムにおいて放送局側システムと端末装置間の通信に使用される周波数帯域の使い方の一例を示す図である。
【図４】本発明に係るケーブルテレビシステムにおいて放送局側システムと端末装置間の通信に使用される周波数帯域の使い方の一例を示す図である。
【図５】ＭＰＥＧ２仕様で既定されるＴＳパケットの構成図である。
【図６】ＭＰＥＧ２トランスポートストリームの模式図である。
【図７】ＭＰＥＧ２仕様で既定されるＰＥＳパケットがＴＳパケットを用いて伝送される際の分割例を示す図である。
【図８】ＭＰＥＧ２仕様で既定されるＭＰＥＧ２セクションがＴＳパケットを用いて伝送される際の分割例を示す図である。
【図９】ＭＰＥＧ２仕様で既定されるＭＰＥＧ２セクションの構成図である。
【図１０】ＭＰＥＧ２仕様で既定されるＭＰＥＧ２セクションの利用例である。
【図１１】ＭＰＥＧ２仕様で規定されるＰＭＴの利用例を示す図である。
【図１２】ＭＰＥＧ２仕様で規定されるＰＡＴの利用例を示す図である。
【図１３】本発明に係る放送録画再生装置のハードウェア構成の構成例を示す図である。
【図１４】本発明に係る端末装置１２００のハードウェア構成における入力部１３１０のフロントパネル例を示す図である。
【図１５】本発明に係る録画再生装置の記録時におけるデバイス接続例を示す図である。
【図１６】本発明に係る録画再生装置の再生時におけるデバイス接続例を示す図である。
【図１７】本発明に係る端末装置が保存するプログラム構成の構成図を示す図である。
【図１８】本発明に係る端末装置が実行するＥＰＧの一例を示す図である。
【図１９】本発明に係る端末装置が実行するＥＰＧの一例を示す図である。
【図２０】本発明に係る２次記憶部が保存する情報の一例を示す図である。
【図２１】本発明に係るレコーディング情報管理テーブルの一例を示す図である。
【図２２】本発明に係るＤＶＢ−ＭＨＰ規格が規定するＡＩＴの内容を表す模式図である。
【図２３】本発明に係るＤＳＭＣＣ方式で送信されるファイルシステムを表す模式図である。
【図２４】本発明に係る録画再生装置の記録時におけるデバイス接続例を示す図である。
【図２５】本発明に係る録画再生装置の再生時におけるデバイス接続例を示す図である。
【図２６】本発明に係るレコーディング情報管理テーブルの一例を示す図である。
【図２７】本発明に係るストレージとボリュームとの関係を表現する概念図である。
【図２８】本発明に係るレコーディングマネージャおよびストレージマネージャの構成の一例を示す図である。
【図２９】本発明に係るメディア情報管理テーブルの一例を示す図である。
【図３０】本発明に係るボリューム生成部において要求されたボリュームが生成されるフローチャートである。
【図３１】本発明に係るレコーディング生成部において要求された補足レコーディングが生成されるフローチャートである。
【図３２】本発明に係る補足ボリューム生成部において要求された補足ボリュームが生成されるフローチャートである。
【図３３】本発明に係るレコーディングマネージャおよびストレージマネージャの構成の一例を示す図である。
【図３４】本発明に係る残量不足時ハンドラ登録部において残量不足時ハンドラが登録されるフローチャートである。
【図３５】本発明に係る残量不足時ハンドラ登録部において残量不足時ハンドラが呼び出されるフローチャートである。
【図３６】本発明に係る残量不足時ハンドラによってサービス録画が停止されるフローチャートである。
【図３７】本発明に係る残量不足時ハンドラによってサービス録画の終了時刻が修正されるフローチャートである。
【図３８】本発明に係る残量不足時ハンドラによってサービス録画のビットレートが修正されるフローチャートである。
【図３９】本発明に係る残量不足時ハンドラによって生成されたボリュームへサービス録画が移行されるフローチャートである。
【図４０】本発明に係るレコーディングマネージャおよびストレージマネージャの構成の一例を示す図である。
【図１】
2009520381.tif 000003
【図２】
2009520381.tif 000004
【図３】
2009520381.tif 000005
【図４】
2009520381.tif 000006
【図５】
2009520381.tif 000007
【図６】
2009520381.tif 000008
【図７】
2009520381.tif 000009
【図８】
2009520381.tif 000010
【図９】
2009520381.tif 000011
【図１０】
2009520381.tif 000012
【図１１】
2009520381.tif 000013
【図１２】
2009520381.tif 000014
【図１３】
2009520381.tif 000015
【図１４】
2009520381.tif 000016
【図１５】
2009520381.tif 000017
【図１６】
2009520381.tif 000018
【図１７】
2009520381.tif 000019
【図１８】
2009520381.tif 000020
【図１９】
2009520381.tif 000021
【図２０】
2009520381.tif 000022
【図２１】
2009520381.tif 000023
【図２２】
2009520381.tif 000024
【図２３】
2009520381.tif 000025
【図２４】
2009520381.tif 000026
【図２５】
2009520381.tif 000027
【図２６】
2009520381.tif 000028
【図２７】
2009520381.tif 000029
【図２８】
2009520381.tif 000030
【図２９】
2009520381.tif 000031
【図３０】
2009520381.tif 000032
【図３１】
2009520381.tif 000033
【図３２】
2009520381.tif 000034
【図３３】
2009520381.tif 000035
【図３４】
2009520381.tif 000036
【図３５】
2009520381.tif 000037
【図３６】
2009520381.tif 000038
【図３７】
2009520381.tif 000039
【図３８】
2009520381.tif 000040
【図３９】
2009520381.tif 000041
【図４０】
2009520381.tif 000042
【手続補正書】
【提出日】平成19年10月12日(2007.10.12)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
放送波に含まれるデータを記録する記録装置であって、
前記放送波に含まれるデータから抽出されたアプリケーションプログラムを実行する仮想マシンと、
記録領域内の予め定められた容量を単位領域とし、前記実行中のアプリケーションプログラムより指定された単位領域内に、前記放送波に含まれるデータのうち前記実行中のアプリケーションプログラムより指定されたデータを記録するレコーディング生成手段と、
前記実行中のアプリケーションプログラムより指定された単位領域内の記録可能な残量を検出するボリューム残量検出手段と、
前記ボリューム残量検出手段によって検出される、前記実行中のアプリケーションプログラムより指定された単位領域内の記録可能な残量が予め定められた容量未満になったことを検知するボリューム残量不足検知手段と、
前記ボリューム残量不足検知手段により、記録している前記実行中のアプリケーションプログラムより指定された単位領域内の記録可能な前記残量が、前記予め定められた容量未満になったことが検知された場合に呼び出される、前記実行中のアプリケーションプログラムに実装された残量不足時ハンドラと、
前記実行中のアプリケーションプログラムからの要求に応じて、前記実行中のアプリケーションプログラムに実装された前記残量不足時ハンドラを登録する残量不足時ハンドラ登録手段とを備え、
前記ボリューム残量不足検知手段によって、前記単位領域内の記録可能な前記残量が前記予め定められた容量未満になったことが検知された場合に、前記残量不足時ハンドラ登録手段に登録されている前記残量不足時ハンドラが呼び出される
ことを特徴とする記録装置。
【請求項２】
前記残量不足時ハンドラは、前記放送波に含まれるデータの前記単位領域内への記録を停止する
ことを特徴とする請求項１に記載の記録装置。
【請求項３】
前記残量不足時ハンドラは、前記放送波に含まれるデータの前記単位領域内への記録の終了予定時刻を修正する
ことを特徴とする請求項１に記載の記録装置。
【請求項４】
前記残量不足時ハンドラは、前記放送波に含まれるデータの前記単位領域内への記録のビットレートを修正する
ことを特徴とする請求項１に記載の記録装置。
【請求項５】
前記残量不足時ハンドラは、前記記録領域において、記録している前記単位領域とは別の単位領域を新規に生成し、前記新規に生成した別の単位領域内へ前記放送波に含まれるデータを記録する
ことを特徴とする請求項１に記載の記録装置。
【請求項６】
前記残量不足時ハンドラは、前記記録領域において、記録している前記単位領域とは異なる容量を有する領域を新規に生成し、前記新規に生成した別の領域内へ前記放送波に含まれるデータを記録する
ことを特徴とする請求項１に記載の記録装置。
【請求項７】
前記単位領域は、前記放送波に含まれるデータを所定のビットレートで記録するために必要な最小限の容量を有する
ことを特徴とする請求項１に記載の記録装置。
【請求項８】
放送波に含まれるデータを記録する記録装置であって、
前記放送波に含まれるデータから抽出されたアプリケーションプログラムを実行する仮想マシンと、
記録領域内の予め定められた容量を単位領域とし、前記実行中のアプリケーションプログラムより指定された単位領域内に、前記放送波に含まれるデータのうち前記実行中のアプリケーションプログラムより指定されたデータを所定の時間だけ記録するレコーディング生成手段と、
前記実行中のアプリケーションプログラムより指定された単位領域内の記録可能な残量を検出するボリューム残量検出手段と、
前記ボリューム残量検出手段によって検出される、前記実行中のアプリケーションプログラムより指定された単位領域内の記録可能な残量が、前記放送波を前記所定の時間だけ記録するために必要な最小限の容量未満になったことを検知するボリューム残量不足検知手段と、
前記ボリューム残量不足検知手段によって、前記実行中のアプリケーションプログラムより指定された単位領域内の記録可能な残量が前記最小限の容量未満になったことが検知された場合に、前記記録領域内に他の単位領域を新規に生成し、前記放送波に含まれるデータのうち前記実行中のアプリケーションプログラムより指定されたデータを前記新規に生成した他の単位領域内へ記録する補足ボリューム生成手段とを備える
ことを特徴とする記録装置。
【請求項９】
前記ボリューム残量不足検知手段によって、前記実行中のアプリケーションプログラムより指定された単位領域内の記録可能な残量が前記予め定められた容量未満になったことが検知された場合に、前記記録領域内に他の単位領域を新規に生成し、前記放送波に含まれるデータのうち前記実行中のアプリケーションプログラムより指定されたデータを前記新規に生成した前記他の単位領域内へ記録する補足ボリューム生成手段とを備え、
前記補足ボリューム生成手段は、前記呼び出された残量不足時ハンドラからの要求に従って前記記録領域内に他の単位領域を新規に生成する
ことを特徴とする請求項１記載の記録装置。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンテンツを視聴する、および、コンテンツを蓄積するとともに、蓄積されたコンテンツを再生する例えば録画再生装置などの記録装置に関する。殊に、映像、音声およびプログラム等のデータから構成されるコンテンツが相互に同期をとって放送波に多重されて送信され、その放送波を受信して映像、音声、データを視聴する、および、蓄積するための仕組み、コンテンツを蓄積するための記録領域の容量が不足した場合にそれを解消するための仕組みに関する。
【背景技術】
【０００２】
放送局から送信される放送波は、多種多様なコンテンツを含んでいる。コンテンツは、通常の番組で用いられる映像、音声の他に、データを含む場合がある。データの送信方法にはいくつかの方式があり、大別して時系列に送信する方式と、一定の間隔ごとに繰り返し送信する方式がある。前者の時系列に送信する方式では、例えば、時間経過に合わせて連続するデータを順次送信していく。大量のデータを長時間かけて送信する場合に適しているが、送信タイミングで受信しなかった場合は二度と受信できないという欠点がある。
【０００３】
一方、後者の一定の間隔ごとに繰り返し送信する方式では、同じデータを一定の期間何度も繰り返し送信する。同一データを送信している期間内に、繰り返し送信されているデータのいずれかひとつを受信すればよいので、受信タイミングが限定されないというメリットがある。例えば、ＢＭＬに代表されるデータ放送や、ＤＳＭＣＣデータカルーセルによるファイル送信がこの方式である。特に放送においては、受信者がいつ選局して受信を開始するかわからない。時系列に送信する方式では、受信開始が送信タイミングよりも遅れてしまって、データ取得に失敗した場合、二度と再取得できない。よって、放送波で映像、音声とともにアプリケーションプログラム等のデータを送信したい場合には、一定の間隔ごとに繰り返し送信される方式が好適である。
【０００４】
現在、上記のような方式で、映像、音声とアプリケーションプログラムとを含む放送波を受信し、アプリケーションプログラムを映像、音声と同期して実行するための仕様が策定され、運用されている。通常の映像、音声を見るだけでなく、送信されたアプリケーションプログラムを受信して端末に取り込み、それを実行して様々な付加機能を実現することができる。このようにアプリケーションプログラムを送信して端末に取り込む方法はダウンロードとも呼ばれている。例えば、ＤＶＢ−ＭＨＰ（Ｄｉｇｉｔａｌ  Ｖｉｄｅｏ  Ｂｒｏａｄｃａｓｔｉｎｇ−Ｍｕｌｔｉｍｅｄｉａ  Ｈｏｍｅ  Ｐｌａｔｆｏｒｍ）  ＥＴＳＩ  ＥＳ  ２０１  ８１２  Ｖ１．１．１（２００３−１２）仕様が欧州で策定され、既に仕様に準拠した運用が開始されている。
【０００５】
また米国ではケーブル放送環境で同様の仕組みを提供するＯＣＡＰ（ＯｐｅｎＣａｂｌｅ  Ａｐｐｌｉｃａｔｉｏｎ  Ｐｌａｔｆｏｒｍ）  ＯＣ−ＳＰ−ＯＣＡＰ１．０−Ｉ１４−０５０１１９仕様が策定されており、実際に運用開始予定である。これらの仕様では、アプリケーションプログラムがＪａｖａ言語で記述されている。端末上にはチューニングやグラフィックス表示のための様々なＡＰＩ（アプリケーションプログラミングインタフェース）が用意されており、ＪａｖａアプリケーションプログラムはＡＰＩを呼び出すことでそれらの機能を制御できる。
【０００６】
さらに、北米では、ＯＣＡＰ仕様にコンテンツの録画再生機能を追加するためのＯＣＡＰ−ＤＶＲ  ＯＣ−ＳＰ−ＯＣＡＰ−ＤＶＲ−Ｉ０１−０４０５２４仕様を策定中である。これはケーブルテレビ放送として送出される映像、音声およびそれらと同期して実行されるＪａｖａアプリケーションプログラムをコンテンツとして録画し、さらに録画したコンテンツを放送波から直接再生する場合と同じように再生するものである。アプリケーションプログラムは、放送波からの直接再生と同様に映像、音声と同期をとって再生される。
【０００７】
またＯＣＡＰ−ＤＶＲでは、ハードディスクや半導体メモリといった高速ランダムアクセス可能な記録媒体に放送されたコンテンツを録画することで、コンテンツの特殊再生を実現している。ここで、特殊再生とは、早送り、巻戻し、スロー、一時停止、スキップ等の、コンテンツを任意の速度で再生したり、任意の位置から再生したりする機能である。ＯＣＡＰ−ＤＶＲでは、放送波から端末に取り込んだアプリケーションプログラムがコンテンツの録画や特殊再生を制御できる。すなわち、端末上に録画や特殊再生のためのＡＰＩが用意されており、ＪａｖａアプリケーションプログラムがそのＡＰＩを呼び出すことで各機能を制御できる。
【０００８】
通常、放送波には、アプリケーションプログラムを映像、音声と同期して実行するために、同期のための制御情報があらかじめ多重化されている。アプリケーションプログラムは、その同期制御情報に従って逐次実行および終了されていく。これによって、映像、音声の特定のシーンに合わせて適切なアプリケーションプログラムを切り替えて実行可能になる。
【０００９】
また、ＯＣＡＰ−ＤＶＲ規格においては、記録領域はボリュームという単位に分割されて管理される。コンテンツ蓄積時において、アプリケーションプログラムは特定のボリュームを指定して、そのボリュームにコンテンツを蓄積させる。
【発明の開示】
【００１０】
上述したように、ＯＣＡＰ−ＤＶＲ規格においては、記録領域はボリュームという単位に分割されて管理される。コンテンツ蓄積時において、アプリケーションプログラムは特定のボリュームを指定して、そのボリュームにコンテンツを蓄積させる。ボリュームはアプリケーションプログラムによって指定された容量分のみ確保される。現在蓄積中のコンテンツが、アプリケーションプログラムによって指定されたボリュームの容量を超過した場合は、当該コンテンツの蓄積は途中で停止させられる。
【００１１】
つまり、従来の記録装置では、コンテンツの全てを蓄積することができずに喪失させてしまうという問題がある。
【００１２】
しかしながら、記録領域にはいまだボリュームが割り当てられていない領域が存在する可能性がある。そのような記録領域におけるボリューム未割当の領域にコンテンツを蓄積するための枠組さえあれば、現在蓄積中のコンテンツが、アプリケーションプログラムによって指定されたボリュームの容量を超過した場合であっても、喪失されるコンテンツを最小限に抑制することが可能となる。
【００１３】
そこで本発明は、かかる問題に鑑みてなされたものであって、喪失されるコンテンツを最小限に抑制する記録装置を提供することを目的とする。
【００１４】
上記目的を達成するために、本発明の記録装置は、放送波に含まれるデータを記録する記録装置であって、前記放送波に含まれるデータから抽出されたアプリケーションプログラムを実行する仮想マシンと、記録領域内の予め定められた容量を単位領域とし、前記実行中のアプリケーションプログラムより指定された単位領域内に、前記放送波に含まれるデータのうち前記実行中のアプリケーションプログラムより指定されたデータを記録するレコーディング生成手段と、前記実行中のアプリケーションプログラムより指定された単位領域内の記録可能な残量を検出するボリューム残量検出手段と、前記ボリューム残量検出手段によって検出される、前記実行中のアプリケーションプログラムより指定された単位領域内の記録可能な残量が予め定められた容量未満になったことを検知するボリューム残量不足検知手段と、前記ボリューム残量不足検知手段により、記録している前記実行中のアプリケーションプログラムより指定された単位領域内の記録可能な前記残量が、前記予め定められた容量未満になったことが検知された場合に呼び出される、前記実行中のアプリケーションプログラムに実装された残量不足時ハンドラと、前記実行中のアプリケーションプログラムからの要求に応じて、前記実行中のアプリケーションプログラムに実装された前記残量不足時ハンドラを登録する残量不足時ハンドラ登録手段とを備え、前記ボリューム残量不足検知手段によって、前記単位領域内の記録可能な前記残量が前記予め定められた容量未満になったことが検知された場合に、前記残量不足時ハンドラ登録手段に登録されている前記残量不足時ハンドラが呼び出されることを特徴とする。
【００１５】
また、上記目的を達成するために、本発明の記録装置は、放送波に含まれるデータを記録する記録装置であって、記録領域内の予め定められた容量を単位領域とし、前記単位領域内に前記放送波に含まれるデータを記録するレコーディング生成手段と、前記単位領域内の記録可能な残量を検出するボリューム残量検出手段と、前記ボリューム残量検出手段によって検出される前記単位領域内の記録可能な残量が予め定められた容量未満になったことを検知するボリューム残量不足検知手段と、前記ボリューム残量不足検知手段により、記録している前記単位領域内の記録可能な前記残量が、前記予め定められた容量未満になったことが検知された場合に呼び出される残量不足時ハンドラと、前記残量不足時ハンドラを登録する残量不足時ハンドラ登録手段とを備え、前記ボリューム残量不足検知手段によって、前記単位領域内の記録可能な前記残量が前記予め定められた容量未満になったことが検知された場合に、前記残量不足時ハンドラ登録手段に登録されている前記残量不足時ハンドラが呼び出されることを特徴とする。
【００１６】
これにより、放送波の記録時に、放送波を記録する単位の残量不足を検知した場合、登録されている残量不足時ハンドラが呼び出されることで、残量不足時ハンドラに処理を委ねることが可能となるとともに、より柔軟な処理を実行することが可能となる。その結果、喪失されるコンテンツを最小限に抑制することができる。
【００１７】
また、上記目的を達成するために、本発明の記録装置は、放送波に含まれるデータを記録する記録装置であって、記録領域内の予め定められた容量を単位領域とし、前記単位領域内に前記放送波に含まれるデータを所定の時間だけ記録するレコーディング生成手段と、前記単位領域内の記録可能な残量を検出するボリューム残量検出手段と、前記ボリューム残量検出手段によって検出される前記単位領域内の記録可能な残量が、前記放送波を前記所定の時間だけ記録するために必要な最小限の容量未満になったことを検知するボリューム残量不足検知手段と、前記ボリューム残量不足検知手段によって、前記単位領域内の記録可能な残量が前記最小限の容量未満になったことが検知された場合に、前記記録領域内に他の単位領域を新規に生成し、前記放送波に含まれるデータを新規に生成した前記他の単位領域内へ記録する補足ボリューム生成手段とを備えることを特徴とする。
【００１８】
これにより、放送波の記録時に、放送波を記録する単位の残量不足が検知された場合、記録領域の余剰部分に補足単位を生成するとともに、放送波で記録不可とされた部分をその補足単位に記録することで、記録領域の余剰部分を活用して、放送波の記録を完了することが可能となる。その結果、喪失されるコンテンツを最小限に抑制することができる。
【００１９】
なお、本発明は、上記記録装置だけでなく、その記録装置が行う記録の方法、その記録装置が記録を行うためのプログラム、及びそのプログラムを格納する記憶媒体としても実現することができる。
【００２０】
２００５年１２月１９日に出願された、明細書と図面と請求項とを含む米国仮出願番号６０／７５１，３２１を本願に引用して援用する。
【発明を実施するための最良の形態】
【００２１】
本発明は以下に示す特徴を有する。
第１の発明は、放送波を記録するとともに、記録された放送波を再生する記録再生装置であって、特定の前記放送波を記録領域の特定の単位内に記録するレコーディング生成手段と、前記記録領域に前記単位を生成するボリューム生成手段と、前記記録領域の特定の前記単位内の前記放送波が記録可能な残量を検出するボリューム残量検出手段と、特定の前記放送波を記録するために必要な容量と、前記ボリューム残量検出手段から取得される特定の前記単位内の前記放送波が記録可能な残量を比較して、特定の前記放送波を記録するために、特定の前記単位が不足することを検知するボリューム残量不足検知手段と、前記ボリューム残量不足検知手段によって、特定の前記放送波を記録するために、特定の前記単位が不足することが検知された場合に、前記ボリューム生成手段へ、特定の前記単位外に他の前記単位を生成することを要求するとともに、前記レコーディング生成手段へ、特定の前記放送波の記録を他の前記単位内へ移行することを要求する補足ボリューム生成手段と、を備えることを特徴とする。
【００２２】
上記第１の発明によれば、放送波の記録時に、放送波を記録する単位の残量不足を検知した場合、記録領域の余剰部分に補足単位を生成するとともに、放送波で記録不可とされた部分をその補足単位に記録することで、記録領域の余剰部分を活用して、放送波の記録を完了することが可能となる。
【００２３】
第２の発明は、放送波を記録するとともに、記録された放送波を再生する記録再生装置であって、特定の前記放送波を記録領域の特定の単位内に記録するレコーディング生成手段と、前記記録領域の特定の前記単位内の前記放送波が記録可能な残量を検出するボリューム残量検出手段と、特定の前記放送波を記録するために必要な容量と、前記ボリューム残量検出手段から取得される特定の前記単位内の前記放送波が記録可能な残量を比較して、特定の前記放送波を記録するために、特定の前記単位が不足することを検知するボリューム残量不足検知手段と、前記ボリューム残量不足検知手段によって、特定の前記放送波を記録するために、特定の前記単位が不足することが検知された場合に、登録されているハンドラを呼び出す残量不足時ハンドラ登録手段と、を備えることを特徴とする。
【００２４】
上記第２の発明によれば、放送波の記録時に、放送波を記録する単位の残量不足を検知した場合、登録されている残量不足時ハンドラが呼び出されることで、残量不足時ハンドラに処理を委ねることが可能となるとともに、より柔軟な処理を実行することが可能となる。
【００２５】
第３の発明は、第２の発明に従属する発明であって、前記残量不足時ハンドラ登録手段は、登録されているハンドラが返す結果に依存して、後処理を変化させることを特徴とする。
【００２６】
上記第３の発明によれば、放送波の記録時に、放送波を記録する単位の残量不足を検知した場合、登録されている残量不足時ハンドラが呼び出されるとともに、その戻り値によって単位の残量不足への対処が変化することで、残量不足時ハンドラがその戻り値によって、既定の処理を選択して実行することが可能となる。
【００２７】
第４の発明は、放送波を記録するとともに、記録された放送波を再生する記録再生方法であって、特定の前記放送波を記録領域の特定の単位内に記録するレコーディング生成ステップと、前記記録領域に前記単位を生成するボリューム生成ステップと、前記記録領域の特定の前記単位内の前記放送波が記録可能な残量を検出するボリューム残量検出ステップと、特定の前記放送波を記録するために必要な容量と、前記ボリューム残量検出ステップから取得される特定の前記単位内の前記放送波が記録可能な残量を比較して、特定の前記放送波を記録するために、特定の前記単位が不足することを検知するボリューム残量不足検知ステップと、前記ボリューム残量不足検知ステップによって、特定の前記放送波を記録するために、特定の前記単位が不足することが検知された場合に、前記ボリューム生成ステップへ、特定の前記単位外に他の前記単位を生成することを要求するとともに、前記レコーディング生成ステップへ、特定の前記放送波の記録を他の前記単位内へ移行することを要求する補足ボリューム生成ステップと、を備えることを特徴とする。
【００２８】
上記第４の発明によれば、放送波の記録時に、放送波を記録する単位の残量不足を検知した場合、記録領域の余剰部分に補足単位を生成するとともに、放送波で記録不可とされた部分をその補足単位に記録することで、記録領域の余剰部分を活用して、放送波の記録を完了することが可能となる。
【００２９】
第５の発明は、放送波を記録するとともに、記録された放送波を再生する記録再生方法であって、特定の前記放送波を記録領域の特定の単位内に記録するレコーディング生成ステップと、前記記録領域の特定の前記単位内の前記放送波が記録可能な残量を検出するボリューム残量検出ステップと、特定の前記放送波を記録するために必要な容量と、前記ボリューム残量検出ステップから取得される特定の前記単位内の前記放送波が記録可能な残量を比較して、特定の前記放送波を記録するために、特定の前記単位が不足することを検知するボリューム残量不足検知ステップと、前記ボリューム残量不足検知ステップによって、特定の前記放送波を記録するために、特定の前記単位が不足することが検知された場合に、登録されているハンドラを呼び出す残量不足時ハンドラ登録ステップと、を備えることを特徴とする。
【００３０】
上記第５の発明によれば、放送波の記録時に、放送波を記録する単位の残量不足を検知した場合、登録されている残量不足時ハンドラが呼び出されることで、残量不足時ハンドラに処理を委ねることが可能となるとともに、より柔軟な処理を実行することが可能となる。
【００３１】
第６の発明は、第５の発明に従属する発明であって、前記残量不足時ハンドラ登録ステップは、登録されているハンドラが返す結果に依存して、後処理を変化させることを特徴とする。
【００３２】
上記第６の発明によれば、放送波の記録時に、放送波を記録する単位の残量不足を検知した場合、登録されている残量不足時ハンドラが呼び出されるとともに、その戻り値によって単位の残量不足への対処が変化することで、残量不足時ハンドラがその戻り値によって、既定の処理を選択して実行することが可能となる。
【００３３】
（実施の形態１）
以下に、本発明の第１の実施形態に係る装置および方法を、図面を参照しながら説明する。本発明は、任意の媒体で送受信されるコンテンツの録画および再生を対象としたものであるが、本実施例ではケーブルテレビ放送システムでの実施の形態を例にとって説明する。ケーブルテレビ放送システムでは、本発明の放送録画再生装置は一般的に端末装置と呼ばれる。
【００３４】
図１は、放送システムを構成する装置の関係を表したブロック図であり、放送局側システム１０１および三個の記録装置または記録再生装置たる端末装置Ａ１１１、端末装置Ｂ１１２、端末装置Ｃ１１３で構成される。放送局側システムと各端末装置間の結合１２１は、ケーブルシステムでは同軸ケーブルや光ファイバでの有線結合である。図１では、１つの放送局側システムに対して三つの端末装置が結合されているが、端末装置の数は任意である。
【００３５】
放送局側システム１０１は、複数の端末装置に対して映像・音声・データ放送用データ等の情報を放送信号に含めて送信する。放送信号は放送システムの運用既定や、放送システムが運用される国・地域の法律により定められた周波数帯域内の周波数を利用して伝送される。
【００３６】
本実施例のケーブルシステムでは、放送信号伝送に利用する周波数帯域は、そのデータの内容と伝送方向（上り、下り）ごとに分割して割り当てる。
【００３７】
図２は、周波数帯域の分割の一例を示す表である。周波数帯域は、Ｏｕｔ  Ｏｆ  Ｂａｎｄ（略称ＯＯＢ）とＩｎ−Ｂａｎｄの２種類に大別される。５〜１３０ＭＨｚがＯＯＢに割り当てられ、主に放送局側システム１０１と端末装置Ａ１１１、端末装置Ｂ１１２、端末装置Ｃ１１３間の上下双方向データのやり取りに使用される。１３０ＭＨｚ〜８６４ＭＨｚはＩｎ−Ｂａｎｄに割り当てられ、主として、映像・音声を含む下りのみの放送チャンネルに使用される。ＯＯＢではＱＰＳＫ変調方式が、Ｉｎ−ＢａｎｄはＱＡＭ６４またはＱＡＭ２５６変調方式が使用される。変調方式技術については、本発明に関与が薄い公知技術であるので、詳細な説明は省略する。
【００３８】
図３は、ＯＯＢ周波数帯域のさらに詳細な使用の一例である。７０ＭＨｚ〜７４ＭＨｚは放送局側システム１０１からの下りデータ送信に使用され、すべての端末装置Ａ１１１、端末装置Ｂ１１２、端末装置Ｃ１１３が、放送局側システム１０１から等しいデータを受け取ることになる。一方、１０．０ＭＨｚ〜１０．１ＭＨｚは端末装置Ａ１１１から放送局側システム１０１への上りデータ送信に使用され、１０．１ＭＨｚ〜１０．２ＭＨｚは端末装置Ｂ１１２から放送局側システム１０１への上りデータ送信に使用され、１０．２ＭＨｚ〜１０．３ＭＨｚは端末装置Ｃ１１３から放送局側システム１０１への上りデータ送信に使用される。これにより、各端末装置固有のデータを各端末装置Ａ１１１、端末装置Ｂ１１２、端末装置Ｃ１１３から放送局側システム１０１に独立して送信することができる。
【００３９】
図４は、Ｉｎ−Ｂａｎｄの周波数帯に対する使用の一例である。１５０〜１５６ＭＨｚと１５６〜１６２ＭＨｚはそれぞれテレビチャンネル１とテレビチャンネル２に割り当てられ、以降、６ＭＨｚ間隔でテレビチャンネルが割り当てられている。３１０ＭＨｚ以降は、１ＭＨｚ単位でラジオチャンネルに割り当てられている。これらの各チャンネルはアナログ放送として使用してもディジタル放送として使用してもよい。ディジタル放送の場合は、ＭＰＥＧ２仕様にもとづいたＴＳパケット形式で伝送され、音声や映像に加え、各種データ放送用データやＥＰＧを構成するための番組編成情報も送信することができる。
【００４０】
放送局側システム１０１は、以上に説明した周波数帯域を利用して端末装置に適切な放送信号を送信するため、ＱＰＳＫ変調部やＱＡＭ変調部等をもつ。また、端末装置からのデータを受信するため、ＱＰＳＫ復調器をもつ。また、放送局側システム１０１は、これら変調部および復調部に関連する様々な機器をもつと考えられる。しかし、本発明は主として端末装置に関わるので、詳細な説明は省略する。
【００４１】
一方、端末装置Ａ１１１、端末装置Ｂ１１２、端末装置Ｃ１１３は、放送局側システム１０１からの放送信号を受信し再生するために、ＱＡＭ復調部やＱＰＳＫ復調部を持つ。また、放送局側システム１０１に対して、各端末装置固有のデータを送信するためにＱＰＳＫ変調部を持つ。本発明では、端末装置は放送録画再生装置であり、その詳細な構成は後述する。
【００４２】
放送局側システム１０１は、ＭＰＥＧ２トランスポートストリームを変調して放送信号に含めて伝送する。端末装置は放送信号を受信し、復調してＭＰＥＧ２トランスポートストリームを再現し、その中から必要な情報を抽出して用いる。端末装置に存在するデバイスの機能と接続の構成を説明するため、まずＭＰＥＧ２トランスポートストリームの構成を簡単に述べる。
【００４３】
図５はＴＳパケットの構成を表す図である。ＴＳパケット５００は１８８バイトの長さを持ち、ヘッダ５０１、アダプテーションフィールド５０２、ペイロード５０３からなる。ヘッダ５０１はＴＳパケットの制御情報を保持する。４バイトの長さを持ち、５０４で表される構成をとる。この中に“Ｐａｃｋｅｔ  ＩＤ（以下ＰＩＤ）”と記述されるフィールドを持ち、このＰＩＤの値によって、ＴＳパケットの識別を行う。アダプテーションフィールド５０２は時刻情報等の付加的な情報を保持する。アダプテーションフィールド５０２の存在は必須ではなく、存在しない場合もある。ペイロード５０３は映像・音声やデータ放送用データ等、ＴＳパケットが伝送する情報を保持する。
【００４４】
図６はＭＰＥＧ２トランスポートストリームの模式図である。ＴＳパケットはそのペイロードに映像や音声、データ放送用のデータ等様々な情報を保持する。ＴＳパケット６０１およびＴＳパケット６０３はヘッダにＰＩＤ１００を保持し、ペイロードに映像１に関する情報を保持する。ＴＳパケット６０２およびＴＳパケット６０５はヘッダにＰＩＤ２００を保持し、ペイロードにデータ１に関する情報を保持する。ＴＳパケット６０４はヘッダにＰＩＤ３００を保持し、ペイロードに音声１に関する情報を保持する。このように様々な種類のデータをペイロードに保持したＴＳパケットを混合して一連のシーケンスとして送出することを多重と呼ぶ。ＭＰＥＧ２トランスポートストリーム６００はＴＳパケット６０１〜６０５を多重した構成の一例である。
【００４５】
同一ＰＩＤをもつＴＳパケットは同一種類の情報を保持する。そのため、端末装置は多重されたＴＳパケットを受信して、各ＴＳパケットが保持する情報をＰＩＤごとに抽出することで、映像・音声を再現したり、番組編成情報等のデータを再現したりできる。図６においては、ＴＳパケット６０１およびＴＳパケット６０３は共に映像１に関する情報を伝送し、またＴＳパケット６０２およびＴＳパケット６０５は共にデータ１に関する情報を伝送する。
【００４６】
ここで、ペイロードに内包される各種データの形式について説明する。
映像および音声は、ＰＥＳ（Ｐａｃｋｅｔｉｚｅｄ  Ｅｌｅｍｅｎｔａｒｙ  Ｓｔｒｅａｍ）パケットと呼ばれる形式で表現される。ＰＥＳパケットはある時間帯の映像情報または音声情報を含み、放送録画再生装置は、ＰＥＳパケットを受信することで、そのＰＥＳパケットが内包する映像・音声情報を画面・スピーカに出力することができる。放送局がＰＥＳパケットを途切れなく伝送することで、放送録画再生装置は、映像・音声を途切れなく再生し続けることが可能となる。ＰＥＳパケットは、実際に伝送される際、一つのＴＳパケットのペイロードよりも大きいサイズをもつ場合は分割されて複数のＴＳパケットのペイロードに格納される。
【００４７】
図７はＰＥＳパケットを伝送する際の分割例を表す。ＰＥＳパケット７０１は一つのＴＳパケット内のペイロードに格納して伝送するには大きいため、ＰＥＳパケット分割Ａ７０２ａ、ＰＥＳパケット分割Ｂ７０２ｂ、ＰＥＳパケット分割Ｃ７０２ｃに分割され、同一ＰＩＤをもつ三つのＴＳパケット７０３〜７０５によって伝送される。実際には、映像や音声は、複数のＰＥＳパケットのペイロードに含まれるデータを結合して得られるエレメンタリストリーム（ＥＳ）として得られる。このエレメンタリストリームは、ＭＰＥＧ２ Ｖｉｄｅｏ規格やＭＰＥＧ１、２ Ａｕｄｉｏ規格で定義されるディジタル化映像、音声の形式になっている。
【００４８】
一方、番組編成情報やデータ放送用のデータ等の情報はＭＰＥＧ２セクションと呼ばれる形式を用いて表現される。ＭＰＥＧ２セクションは実際に伝送される際、一つのＴＳパケットのペイロードよりも大きいサイズをもつ場合は分割されて複数のＴＳパケットのペイロードに格納される。
【００４９】
図８はＭＰＥＧ２セクションを伝送する際の分割例を表す。ＭＰＥＧ２セクション８０１は一つのＴＳパケット内のペイロードに格納して伝送するには大きいため、セクション分割Ａ８０２ａ、セクション分割Ｂ８０２ｂ、セクション分割Ｃ８０２ｃに分割され、同一ＰＩＤをもつ三つのＴＳパケット８０３〜８０５によって伝送される。
【００５０】
図９はＭＰＥＧ２セクションの構造を表現する。ＭＰＥＧ２セクション９００はヘッダ９０１およびペイロード９０２から構成される。ヘッダ９０１はＭＰＥＧ２セクションの制御情報を保持する。その構成はヘッダ構成９０３によって表現される。ペイロード９０２はＭＰＥＧ２セクション９００が伝送するデータを保持する。ヘッダ構成９０３に存在するｔａｂｌｅ＿ｉｄはＭＰＥＧ２セクションの種類を表現し、さらにｔａｂｌｅ＿ｉｄ＿ｅｘｔｅｎｓｉｏｎはｔａｂｌｅ＿ｉｄが等しいＭＰＥＧ２セクション同士を区別する際に用いられる拡張識別子である。
【００５１】
ＭＰＥＧ２セクションの使用例として、図１０に番組編成情報を伝送する場合を挙げる。この例では、行１００４に記載されるように、放送信号の復調に必要な情報はヘッダ構成９０３内のｔａｂｌｅ＿ｉｄが６４であるＭＰＥＧ２セクションに記載され、さらにそのＭＰＥＧ２セクションはＰＩＤに１６が付与されたＴＳパケットによって伝送される。
【００５２】
ＭＰＥＧ２セクションの場合、ＰＥＳ形式は存在しない。そのため、ＭＰＥＧ２トランスポートストリームの中の同一ＰＩＤによって識別されるＴＳパケットのペイロードを結合したものをエレメンタリーストリーム（ＥＳ）とする。例えば、図８において、ＭＰＥＧ２セクション８０１を分割して伝送しているＴＳパケット８０３〜８０５はすべてＰＩＤが２００で識別される。これはＭＰＥＧ２セクション８０１を伝送するＥＳである、と言うことができる。
【００５３】
ＭＰＥＧ２トランスポートストリーム内にはさらにプログラムという概念が存在する。プログラムはＥＳの集合として表現され、複数のＥＳをまとめて扱いたい場合に利用される。プログラムを利用すると、映像・音声や、それに付随するデータ放送用データ等を一まとめに扱うことが可能となる。例えば、同時に再生したい映像・音声をまとめて扱う場合、映像ＥＳと、音声ＥＳをプログラムとしてまとめることで、放送録画再生装置はこれら二つのＥＳを１つの番組として同時に再生すべきであることがわかる。
【００５４】
プログラムを表現するために、ＭＰＥＧ２ではＰＭＴ（Ｐｒｏｇｒａｍ  Ｍａｐ  Ｔａｂｌｅ）およびＰＡＴ（Ｐｒｏｇｒａｍ  Ａｓｓｏｃｉａｔｉｏｎ  Ｔａｂｌｅ）と呼ばれる二つのテーブルが利用される。詳細な説明はＩＳＯ／ＩＥＣ１３８１８−１、“ＭＰＥＧ２  Ｓｙｓｔｅｍｓ”仕様を参照されたい。以下ではＰＭＴおよびＰＡＴに関して簡単に説明する。
【００５５】
ＰＭＴはＭＰＥＧ２トランスポートストリーム中に、プログラムの数だけ含まれるテーブルである。ＰＭＴはＭＰＥＧ２セクションとして構成され、ｔａｂｌｅ＿ｉｄは２である。ＰＭＴにはプログラムの識別に用いられるプログラムナンバーとプログラムの付加情報、さらにプログラムに属するＥＳに関する情報を保持する。
【００５６】
ＰＭＴの例を図１１に挙げる。１１００はプログラムナンバーである。プログラムナンバーは同一トランスポートストリーム内でプログラムに一意に割り当てられ、ＰＭＴの識別に用いられる。行１１１１〜１１１５は個々のＥＳに関する情報を表現する。列１１０１はＥＳのタイプであり、“映像”、“音声”、“データ”等が指定される。列１１０２はＥＳを構成するＴＳパケットのＰＩＤである。列１１０３はＥＳに関する付加情報である。例えば、行１１１１に表されるＥＳは、音声ＥＳであり、ＰＩＤが５０１１であるＴＳパケットによって伝送される。
【００５７】
ＰＡＴはＭＰＥＧ２トランスポートストリームに一つだけ存在するテーブルである。ＰＡＴはＭＰＥＧ２セクションとして構成され、ｔａｂｌｅ＿ｉｄは０であり、ＰＩＤが０であるＴＳパケットによって伝送される。ＰＡＴには、ＭＰＥＧ２トランスポートストリームの識別に用いられるｔｒａｎｓｐｏｒｔ＿ｓｔｒｅａｍ＿ｉｄと、ＭＰＥＧ２トランスポートストリーム内に存在するプログラムを表現するすべてのＰＭＴに関する情報を保持する。
【００５８】
ＰＡＴの例を図１２に挙げる。１２００はｔｒａｎｓｐｏｒｔ＿ｓｔｒｅａｍ＿ｉｄである。ｔｒａｎｓｐｏｒｔ＿ｓｔｒｅａｍ＿ｉｄはＭＰＥＧ２トランスポートストリームの識別に用いられる。行１２１１〜１２１３はプログラムに関する情報を表現する。列１２０１はプログラムナンバーである。列１２０２はプログラムに対応するＰＭＴを伝送するＴＳパケットのＰＩＤである。例えば、行１２１１に表されるプログラムのＰＭＴは、プログラムナンバーが１０１であり、対応するＰＭＴはＰＩＤが５０１であるＴＳパケットによって伝送される。
【００５９】
端末装置があるプログラムを再生する場合は、ＰＡＴおよびＰＭＴを用いてプログラムを構成する映像・音声を特定し、それらを再生する。
【００６０】
例えば、図１２のＰＡＴおよび図１１のＰＭＴを伝送するＭＰＥＧ２トランスポートストリームに関して、プログラムナンバーが１０１であるプログラムに属する映像・音声の再生を行う場合は以下のような手順をとる。まずＰＩＤが“０”であるＴＳパケットより、ｔａｂｌｅ＿ｉｄが“０”のＭＰＥＧ２セクションとして伝送されるＰＡＴを取得する。ＰＡＴよりプログラムナンバーが“１０１”であるプログラムを探索し、行１２１１を得る。行１２１１より、プログラムナンバーが“１０１”であるプログラムのＰＭＴを伝送するＴＳパケットのＰＩＤ“５０１”を得る。次いでＰＩＤが“５０１”であるＴＳパケットより、ｔａｂｌｅ＿ｉｄが“２”のＭＰＥＧ２セクションとして伝送されるＰＭＴを取得する。ＰＭＴより、音声のＥＳ情報である行１１１１および映像のＥＳ情報である行１１１２を得る。行１１１１より、音声ＥＳを伝送するＴＳパケットのＰＩＤ“５０１１”を得る。また行１１１２より、映像ＥＳを伝送するＴＳパケットのＰＩＤ“５０１２”を得る。次いでＰＩＤ“５０１１”のＴＳパケットより音声用ＰＥＳパケットを、ＰＩＤ“５０１２”のＴＳパケットより映像用ＰＥＳパケットを取得する。これにより、再生対象となる映像・音声のＥＳパケットを取得することが可能となり、プログラムナンバー１０１を構成する映像と音声を再生することができる。
【００６１】
なお、ＭＰＥＧ２トランスポートストリームは暗号化されている場合がある。これは限定視聴とも呼ばれる仕組みである。例えば、ある映像・音声情報を伝送するＰＥＳパケットに対して暗号化処理を行うことで、その暗号を解読できる特定視聴者のみが視聴できるようになる。暗号を解読して映像や音声を視聴するために、視聴者はデスクランブラと呼ばれるデバイスを用いて暗号解除を行う。例えば、ＯＣＡＰ対応の端末装置は、デスクランブラを内蔵したカード型のアダプタを利用する。ケーブルテレビのオペレータは、視聴者ごとに特定のプログラムを解読できるように設定したアダプタを配布し、視聴者はそのアダプタを端末装置に挿入する。すると、アダプタは、暗号解除鍵等の暗号解除情報や各契約者の契約情報を元に、特定のプログラムに関して暗号を解除する。暗号解除の方式や、暗号解除鍵の入手方法はアダプタ依存であり、本発明の実現には影響しない。
【００６２】
ここまでＭＰＥＧ２仕様に関する簡単な説明を行ったが、ここで、単語の詳細な定義を行う。本発明に関して、「プログラム」という単語が二種類存在する。一つはＭＰＥＧ２仕様に登場する「プログラム」であり、もう一つはＣＰＵが実行するコードの集合という意味での「プログラム」である。前者に関しては、運用規定で用いられる「サービス」という単語と同義であるため、混乱を避けるため、以降、前者を「サービス」と呼び、後者を単に「プログラム」とよぶ。さらに後者に関して、特にＪａｖａ言語で記述された「プログラム」を「Ｊａｖａプログラム」とよぶ。
【００６３】
以上、本発明に関わる、ＭＰＥＧ２仕様にて決定されるいくつかの一般的な情報に関して説明を行った。以降、本実施の形態で用いる放送録画再生端末に関して詳細に説明する。
【００６４】
図１３は、本実施例の放送録画再生装置の一般的なハードウェア構成を表すブロック図であり、すなわち図１における端末装置１１１、１１２、１１３の具体的な内部構成である。１３００は記録装置または記録再生装置たる放送録画再生装置であり、チューナ１３０１、ＴＳデコーダ（ＴＳ  Ｄｅｍｕｌｔｉｐｌｅｘｅｒ）１３０２、ＡＶデコーダ１３０３、スピーカ１３０４、ディスプレイ１３０５、ＣＰＵ１３０６、２次記憶部１３０７、１次記憶部１３０８、ＲＯＭ１３０９、入力部１３１０、アダプタ１３１１、ＡＶエンコーダ１３１２、多重器（ＭＰＥＧ２  Ｔｒａｎｓｐｏｒｔ  Ｓｔｒｅａｍ  Ｍｕｌｔｉｐｌｅｘｅｒ等）１３１３で構成される。なお本実施例は、ＯＣＡＰ−ＤＶＲ仕様で実現される放送録画再生端末を拡張して得られるものであり、基本的なハードウェア構成はＯＣＡＰ−ＤＶＲ仕様で要求されるものとほぼ同じである。
【００６５】
チューナ１３０１は、ＣＰＵ１３０６が指定する周波数等のチューニング情報に従って、放送局側システム１０１から伝送される変調された放送信号を復調するデバイスである。ここで、チューニング情報は、周波数や変調方式等が特定可能な情報である。チューナ１３０１が復調した結果得られるＭＰＥＧ２トランスポートストリームは、暗号解除機能をもつアダプタ１３１１を経て、ＴＳデコーダ１３０２に送信される。
【００６６】
ＴＳデコーダ１３０２は、ＣＰＵ１３０６が指定するＰＩＤ、セクションフィルタ条件等の指定にもとづいてＭＰＥＧ２トランスポートストリームから指定条件に合致するＰＥＳパケットやＭＰＥＧ２セクションを選別する機能をもつデバイスである。放送を受信してサービスを記録せずに再生する場合は、アダプタ１３１１が出力するＭＰＥＧ２トランスポートストリームがＴＳデコーダ１３０２に入力される。一方、２次記憶部１３０７に記録されているサービスを再生する場合は、２次記憶部１３０７が出力するＭＰＥＧ２トランスポートストリームがＴＳデコーダ１３０２に入力される。いずれの入力を受けるかは、ＣＰＵ１３０６によって制御される。
【００６７】
ＴＳデコーダ１３０２が選別した映像および音声のＰＥＳパケットは、ＡＶデコーダ１３０３に出力される。また、ＴＳデコーダ１３０２が選別したＭＰＥＧ２セクションは、１次記憶部１３０８にＤＭＡ（Ｄｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ）転送され、ＣＰＵ１３０６が実行するプログラムによって利用される。
【００６８】
ＡＶデコーダ１３０３はエンコードされた映像ＥＳおよび音声ＥＳをデコードする機能をもつデバイスである。ＡＶデコーダはＴＳデコーダから転送される音声および映像情報を伝送するＰＥＳパケットからＥＳを取り出してデコードする。ＡＶデコーダ１３０３がデコードして得られたａｕｄｉｏ信号およびｖｉｄｅｏ信号は、サービスの再生時にはスピーカ１３０４、ディスプレイ１３０５に出力されるが、一方、サービスの記録時にはＡＶエンコーダ１３１２へ出力される。いずれの出力経路を取るかは、ユーザの指示に従ってＣＰＵ１３０６によって制御される。
【００６９】
スピーカ１３０４は、ＡＶデコーダ１３０３から出力された音声を再生する。
ディスプレイ１３０５は、ＡＶデコーダ１３０３から出力された映像を再生する。
【００７０】
ＣＰＵ１３０６は放送録画再生装置上で動作するプログラムを実行する。ＣＰＵ１３０６は、ＲＯＭ１３０９に内蔵されるプログラムを実行する。あるいは、放送信号やネットワークよりダウンロードされ１次記憶部１３０８に保持されているプログラムも実行する。あるいは、放送信号やネットワークよりダウンロードされ２次記憶部１３０７に保存されているプログラムも実行する。そして実行するプログラムの指示に従い、チューナ１３０１、ＴＳデコーダ１３０２、ＡＶデコーダ１３０３、スピーカ１３０４、ディスプレイ１３０５、２次記憶部１３０７、１次記憶部１３０８、ＲＯＭ１３０９、入力部１３１０、アダプタ１３１１、ＡＶエンコーダ１３１２、多重器１３１３を制御する。また、ＣＰＵ１３０６は端末装置１３００内に存在するデバイスだけでなく、アダプタ１３１１内のデバイスと通信し、アダプタ１３１１を制御することが可能である。
【００７１】
２次記憶部１３０７は機器の電源が遮断されても記憶が消去されない記憶装置である。例えばＦＬＡＳＨ−ＲＯＭ等の不揮発性メモリ、ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）、ＣＤ−ＲやＤＶＤ−Ｒ等の書き換え可能のメディア等、端末装置１３００の電源断の際にも情報が消去されない機器によって構成され、ＣＰＵ１３０６の指示により情報の保存を行う。
【００７２】
１次記憶部１３０８は、ＣＰＵ１３０６やＤＭＡ転送可能なデバイスの指示に従って情報を一時的に保存する機能をもつデバイスであり、ＲＡＭ等によって構成される。
【００７３】
ＲＯＭ１３０９は、書き換え不可能なメモリーデバイスであり、具体的にはＲＯＭやＣＤ−ＲＯＭ、ＤＶＤ等で構成される。ＲＯＭ１３０９には、ＣＰＵ１３０６が実行するプログラムが格納されている。
【００７４】
入力部１３１０は、具体的には、フロントパネルやリモコン受信機で構成され、ユーザからの入力を受け付ける。
【００７５】
図１４は、フロントパネルで入力部１３１０を構成した場合の一例である。フロントパネル１４００は七つのボタン、上カーソルボタン１４０１、下カーソルボタン１４０２、左カーソルボタン１４０３、右カーソルボタン１４０４、ＯＫボタン１４０５、取消ボタン１４０６、ＥＰＧボタン１４０７、モード切換ボタン１４０８を備えている。ユーザがボタンを押下すると、押下されたボタンの識別子が、ＣＰＵ１３０６に通知される。
【００７６】
アダプタ１３１１は、Ｉｎ−ｂａｎｄ周波数帯で伝送されるＭＰＥＧ２トランスポートストリームにかけられた暗号を解除する装置で、1つ以上のデスクランブラを搭載する。アダプタ１３１１にはチューナ１３０１ａが出力するＭＰＥＧ２トランスポートストリームが入力され、ＣＰＵ１３０６が指定したＰＩＤをもつＴＳパケットに対して暗号解除を行う。アダプタ１３１１は、暗号を解除したＭＰＥＧ２トランスポートストリームをＴＳデコーダ１３０２に出力する。
【００７７】
さらに、アダプタ１３１１は、ＯＯＢ周波数帯で伝送されるデータの形式変換も行う。ＯＯＢで伝送される情報は、ＱＰＳＫ変調方式で変調される。下り方向の伝送に関しては、ＱＰＳＫ復調器１３０１ｂは放送局側システム１０１から送信されてくる下りの信号を復調し、生成されたビットストリームをアダプタ１３１１に入力する。アダプタ１３１１はビットストリームが含む様々な情報の中から、ＣＰＵ１３０６が指定する情報を抽出して、ＣＰＵ１３０６上で動作するプログラムが解釈可能な形式に変換して、ＣＰＵ１３０６に提供する。一方、上り方向の伝送に関しては、ＣＰＵ１３０６が、放送局側システム１０１に対して送信したい情報を、アダプタ１３１１に入力する。アダプタ１３１１は、ＣＰＵ１３０６から入力された情報を放送局側システム１０１が解釈可能な形式に変換し、ＱＰＳＫ変調器１３０１ｃに入力する。ＱＰＳＫ変調器１３０１ｃはアダプタ１３１１から入力された情報をＱＰＳＫ変調し、放送局側システム１０１に送信する。
【００７８】
アダプタ１３１１の具体例としては、米国ケーブルシステムで利用されるＣａｂｌｅＣＡＲＤ、旧名ＰＯＤ（Ｐｏｉｎｔ  Ｏｆ  Ｄｅｐｌｏｙｍｅｎｔ）が挙げられる。
【００７９】
ＡＶエンコーダ１３１２は、ＡＶデコーダ１３０３によってデコードされたａｕｄｉｏ信号をＭＰＥＧ  ａｕｄｉｏ形式の音声にエンコードし、ｖｉｄｅｏ信号をＭＰＥＧ  ｖｉｄｅｏ形式の映像にエンコードする。ＡＶエンコーダ１３１２がエンコードした映像および音声は、多重器１３１３へ出力される。
【００８０】
多重器１３１３は、ＡＶエンコーダ１３１２から入力された映像および音声を、ＭＰＥＧ２トランスポートストリームへ多重化する機能をもつデバイスである。
【００８１】
以上説明した放送録画再生装置が、放送波に含まれるサービスを２次記憶部１３０７に記録する動作と、２次記憶部１３０７から逐次読み出してサービスを再生する動作について、以下に詳細に説明する。
【００８２】
まず、放送波に含まれるサービスを２次記憶部１３０７に記録する動作について述べる。
【００８３】
図１５に、サービスの記録時における、各デバイスの物理的な接続順序と処理内容、入出力のデータ形式を表現する概念図を示す。１５００は端末装置であり、チューナ１３０１、アダプタ１３１１、デスクランブラ１５０１、ＴＳデコーダ１３０２、ＰＩＤフィルタ１５０２、セクションフィルタ１５０３、ＡＶデコーダ１３０３、１次記憶部１３０８、ＡＶエンコーダ１３１２、多重器１３１３、および、記録領域１５０４をもつ。図１５の構成要素のうち、図１３の構成要素と同一符号を持つものは、それらと同等の機能をもつため、説明を省略する。
【００８４】
まずＣＰＵ１３０６が指定したチューニング情報に従って、チューナ１３０１が放送波をチューニングする。ここで、チューニング情報は、周波数や変調方式等が特定可能な情報である。チューナ１３０１は、放送波を復調し、アダプタ１３１１にＭＰＥＧ２トランスポートストリームを入力する。
【００８５】
アダプタ１３１１内にあるデスクランブラ１５０１は、視聴者ごとの限定解除情報に基づいて、ＭＰＥＧ２トランスポートストリームの暗号解除を行う。暗号解除されたＭＰＥＧ２トランスポートストリームは、ＴＳデコーダに入力される。
【００８６】
ＴＳデコーダ１３０２内にはＭＰＥＧ２トランスポートストリームに対して処理を行う２種類のデバイス、ＰＩＤフィルタ１５０２、セクションフィルタ１５０３が存在する。
【００８７】
ＰＩＤフィルタ１５０２は、入力されたＭＰＥＧ２トランスポートストリームから、ＣＰＵ１３０６が指定したＰＩＤをもつＴＳパケットを抽出し、さらにそのペイロードに存在するＰＥＳパケットやＭＰＥＧ２セクションを抽出する。例えば、ＣＰＵ１３０６がＰＩＤ＝１００のＴＳパケットを抽出するＰＩＤフィルタリングを指示した場合に図６のＭＰＥＧ２トランスポートストリームが入力されたとすると、パケット６０１および６０３が抽出されて更に連結され、映像１のＰＥＳパケットが再構成される。あるいは、ＣＰＵ１３０６がＰＩＤ＝２００のＴＳパケットを抽出するＰＩＤフィルタリングを指示した場合に図６のＭＰＥＧ２トランスポートストリームが入力されたとすると、パケット６０２および６０５が抽出されて更に連結され、データ１のＭＰＥＧ２セクションが再構成される。
【００８８】
セクションフィルタ１５０３は、入力されたＭＰＥＧ２セクションの中から、ＣＰＵ１３０６が指定するセクションフィルタ条件に合致するＭＰＥＧ２セクションを抽出し、１次記憶部１３０８にＤＭＡ転送する。例えば、ＣＰＵ１３０６はＰＩＤ＝２００のＴＳパケットを抽出するＰＩＤフィルタリングとｔａｂｌｅ＿ｉｄが６４であるセクションを抽出するセクションフィルタリングをセクションフィルタ１５０３に対して指定したとする。先に述べたように、データ１のＭＰＥＧ２セクションが再構成された後、セクションフィルタ１５０３はそのＭＰＥＧ２セクションの中からｔａｂｌｅ＿ｉｄが６４であるセクションのみを抽出し、１次記憶部１３０８にＤＭＡ転送する。
【００８９】
１次記憶部１３０８に入力されたＭＰＥＧ２セクションは、多重器１３１３に入力される。
【００９０】
ＴＳデコーダ１３０２によって抽出された映像ＰＥＳパケットと音声ＰＥＳパケットは、ＡＶデコーダ１３０３に入力される。
【００９１】
ＡＶデコーダは、映像ＰＥＳパケットをデコードして映像に変換し、ＡＶエンコーダ１３１２に入力する。また音声ＰＥＳパケットをデコードして音声に変換し、ＡＶエンコーダ１３１２に入力する。
【００９２】
ＡＶエンコーダ１３１２は、映像をＭＰＥＧ  ｖｉｄｅｏに変換し、多重器１３１３に入力する。また音声をＭＰＥＧ  ａｕｄｉｏに変換し、多重器１３１３に入力する。
【００９３】
多重器１３１３は、ＡＶエンコーダから入力されたＭＰＥＧ  ｖｉｄｅｏとＭＰＥＧ  ａｕｄｉｏと、１次記憶１３０８から入力されたＭＰＥＧ２セクションを多重してＭＰＥＧ２トランスポートストリームを生成する。生成されたＭＰＥＧ２トランスポートストリームは、記録領域１５０４に記録される。
【００９４】
記録領域１５０４は２次記憶部１３０７の全体または一部、あるいは、その他の記録領域で構成され、サービスを構成するＭＰＥＧ２トランスポートストリームを記憶する。
【００９５】
次いで、２次記憶部１３０７から逐次読み出してサービスを再生する動作について述べる。
【００９６】
図１６に、サービスの再生時における、各デバイスの物理的な接続順序と処理内容、入出力のデータ形式を表現する概念図を示す。１６００は端末装置であり、記録領域１５０４、ＴＳデコーダ１３０２、ＰＩＤフィルタ１５０２、セクションフィルタ１５０３、ＡＶデコーダ１３０３、スピーカ１３０４、ディスプレイ１３０５、および、１次記憶部１３０８をもつ。図１６の構成要素のうち、図１３の構成要素と同一符号を持つものは、それらと同等の機能をもつため、説明を省略する。
【００９７】
図１５で説明した手順で記録領域１５０４に記録されたＭＰＥＧ２トランスポートストリームが、ＴＳデコーダ１３０２に入力される。
【００９８】
次いで、ＴＳデコーダ１３０２内のＰＩＤフィルタ１５０２によって、ＣＰＵ１３０６が指定したＰＩＤを持つ映像ＰＥＳおよび音声ＰＥＳが抽出される。抽出されたＰＥＳパケットはＡＶデコーダ１３０３に入力される。あるいは、ＴＳデコーダ１３０２内のＰＩＤフィルタ１５０２とセクションフィルタ１５０３によって、ＣＰＵ１３０６が指定したＰＩＤとｔａｂｌｅ＿ｉｄ持つＭＰＥＧ２セクションが抽出される。抽出されたＭＰＥＧ２セクションは１次記憶部１３０８にＤＭＡ転送される。
【００９９】
ＡＶデコーダ１３０３に入力された映像ＰＥＳと音声ＰＥＳは、デコードされてａｕｄｉｏ信号およびｖｉｄｅｏ信号が出力される。その後、ａｕｄｉｏ信号およびｖｉｄｅｏ信号はディスプレイ１３０５およびスピーカ１３０４に入力され、映像および音声が再生される。
【０１００】
１次記憶部１３０８に入力されたＭＰＥＧ２セクションは、適宜ＣＰＵ１３０６に入力される。
【０１０１】
ここまでは、本発明に関するハードウェアの構成例に関して述べたが、以降、本発明の主要機能である、Ｊａｖａプログラムによるサービスの記録制御に関して説明する。
【０１０２】
本発明におけるサービスの記録とは、サービスに含まれる映像、音声、Ｊａｖａプログラム、Ｊａｖａプログラムの同期情報等をハードディスク、ＢＤ（Ｂｌｕ−ｒａｙ  Ｄｉｓｃ）、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｃ）、ＳＤ（Ｓｅｃｕｒｅ  Ｄｉｇｉｔａｌ）メモリカードといった記録媒体に記録することである。サービスの再生とは、記録媒体に記録された映像、音声、Ｊａｖａプログラムを同期情報に基づいて再生および実行することである。記録済みサービスの再生結果は、放送波を受信して直接サービスを再生した結果とほぼ等価であることが要求される。
【０１０３】
図１７は、サービスの記録と再生に必要とされるプログラムの構成図であり、ＲＯＭ１３０９に記憶されているソフトウェアである。
【０１０４】
プログラム１７００は、サブプログラムであるＯＳ１７０１、ＥＰＧ１７０２、ＪａｖａＶＭ１７０３、Ｊａｖａライブラリ１７０４で構成される。
【０１０５】
ＯＳ１７０１は、オペレーティングシステム（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）であり、Ｌｉｎｕｘ、Ｗｉｎｄｏｗｓ等が一例である。ＯＳ１７０１は、他のサブプログラム、例えばＥＰＧ１７０２とＪａｖａＶＭ１７０３を実行するためのカーネル１７０１ａ、サブプログラムが端末装置１３００の構成要素を制御するために利用するライブラリ１７０１ｂで構成される。カーネル１７０１ａは公知技術であり、詳細な説明は省略する。
【０１０６】
ライブラリ１７０１ｂは、例えばチューナを制御するチューニング機能を提供する。ライブラリ１７０１ｂは、他のサブプログラムから周波数や変調方式等が特定可能なチューニング情報を受け取り、それをチューナ１３０１に引き渡す。チューナ１３０１は与えられたチューニング情報にもとづき復調処理を行い、復調したＭＰＥＧ２トランスポートストリームをＴＳデコーダ１３０２に引き渡すことができる。この結果、他のサブプログラムはライブラリ１７０１ｂを通してチューナ１３０１を制御することができる。
【０１０７】
また、ライブラリ１７０１ｂは、チャンネルを一意に識別するためのチャンネル情報を提供する。
【０１０８】
チャンネル情報の一例を図２０に示す。チャンネル情報はＯＯＢあるいはＩｎ−ｂａｎｄ周波数帯を利用して送信され、アダプタ１３１１で表形式に変換され、ライブラリがアクセス可能な１次記憶部に格納される。列２００１は、チャンネル識別子で、例えば、ＳＣＴＥ  ６５  Ｓｅｒｖｉｃｅ  Ｉｎｆｏｒｍａｔｉｏｎ  Ｄｅｌｉｖｅｒｅｄ  Ｏｕｔ−Ｏｆ−Ｂａｎｄ  Ｆｏｒ Ｄｉｇｉｔａｌ Ｃａｂｌｅ Ｔｅｌｅｖｉｓｉｏｎで定義されるｓｏｕｒｃｅ＿ＩＤが相当する。列２００２は、チャンネル名であり、同ＳＣＴＥ  ６５規格ではｓｏｕｒｃｅ＿ｎａｍe等に相当する。列２００３はチューニング情報であり、周波数や転送レート、変調方式が特定可能な情報であって、チューナ１３０１に与える情報である。列２００４はＰＭＴを指定するためのプログラムナンバーである。例えば、行２０１１はチャンネル識別子が「１」、チャンネル名が「チャンネル１」、チューニング情報に周波数「１５０ＭＨｚ，．．．．」、プログラムナンバーが「１０１」であるサービス情報の組となっている。
【０１０９】
ＪａｖａＶＭ１７０３は、Ｊａｖａ（登録商標）言語で記述されたプログラムを逐次解析し実行するＪａｖａバーチャルマシンである。Ｊａｖａ言語で記述されたプログラムはバイトコードと呼ばれる、ハードウェアに依存しない中間コードにコンパイルされる。Ｊａｖａバーチャルマシンは、このバイトコードを実行するインタープリタである。ＪａｖａＶＭ１７０３は、Ｊａｖａ言語で記述されたＪａｖａライブラリ１７０４を実行する。Ｊａｖａ言語やＪａｖａＶＭの詳細は、書籍「Ｊａｖａ  Ｌａｎｇｕａｇｅ  Ｓｐｅｃｉｆｉｃａｔｉｏｎ（ＩＳＢＮ  ０−２０１−６３４５１−１）」や「Ｊａｖａ  Ｖｉｒｔｕａｌ  Ｍａｃｈｉｎｅ  Ｓｐｅｃｉｆｉｃａｔｉｏｎ（ＩＳＢＮ  ０−２０１−６３４５１―Ｘ）」等を参照のこと。また、ＪＮＩ（Ｊａｖａ  Ｎａｔｉｖｅ  Ｉｎｔｅｒｆａｃｅ）を通して、Ｊａｖａ言語で記述されていない他のサブプログラムを呼び出したり、または、呼び出されたりすることが可能である。ＪＮＩに関しては、書籍「Ｊａｖａ  Ｎａｔｉｖｅ  Ｉｎｔｅｒｆａｃｅ」等を参照のこと。
【０１１０】
Ｊａｖａライブラリ１７０４は、Ｊａｖａプログラムが放送録画再生装置の機能を制御するために呼び出すＪａｖａ言語で記述されたライブラリである。ただし、必要に応じて、ＯＳ１７０１のライブラリ１７０１ｂ等非Ｊａｖａ言語で記述されたサブプログラムを利用することもある。Ｊａｖａプログラムは、Ｊａｖａライブラリ１７０４が持つＪａｖａ  ＡＰＩ（アプリケーションプログラミングインタフェース）を呼び出すことで、Ｊａｖａライブラリ１７０４が提供する機能を利用できる。
【０１１１】
Ｔｕｎｅｒ１７０４ｃは、放送録画再生端末のＩｎ−ｂａｎｄ受信用チューナ１３０１ａを制御するためのＪａｖａライブラリである。ＪａｖａプログラムがＴｕｎｅｒ１７０４ｃにチューニング情報を渡すと、Ｔｕｎｅｒ１７０４ｃはそれを用いてライブラリ１７０１ｂのチューナ機能を呼び出し、結果、放送録画再生端末のＩｎ−ｂａｎｄ受信用チューナ１３０１ａの動作を制御できる。ここで、チューニング情報は、周波数や変調方式等が特定可能な情報である。
【０１１２】
ＳＦ１７０４ｅは、放送録画再生端末のＰＩＤフィルタ１５０２およびセクションフィルタ１５０３機能を制御するためのＪａｖａライブラリである。ＪａｖａプログラムがＳＦ１７０４ｅにＰＩＤやｔａｂｌｅ＿ｉｄ等のフィルタ条件を渡すと、ＳＦ１７０４ｅはその条件を元にライブラリ１７０１ｂの機能等を用いてＰＩＤフィルタ１５０２およびセクションフィルタ１５０３を制御し、所望のフィルタ条件に叶うＭＰＥＧ２セクションを取得して、フィルタ条件を設定したＪａｖａプログラムに渡す。
【０１１３】
ＤＳＭ−ＣＣ１７０４ｄは、ＤＳＭ−ＣＣオブジェクトカルーセルのファイルシステムにアクセスするためのＪａｖａライブラリである。ＤＳＭ−ＣＣオブジェクトカルーセルは、ＳＦ１７０４ｅによって取得されるＭＰＥＧ２セクションが内包している。ＤＳＭ−ＣＣは、ＩＳＯ／ＩＥＣ１３８１８−６規格で定義されており、ＭＰＥＧ２セクションを利用して任意のファイルを伝送するための仕組みである。これを利用することで、放送局から端末にファイルを伝送することができる。ＤＳＭ−ＣＣ１７０４ｄは、Ｊａｖａプログラム等から指定されたファイル識別子等を元に、ＳＦ１７０４ｅを利用してＭＰＥＧ２セクションを取得し、ＩＳＯ／ＩＥＣ１３８１８−６規格に基づいてファイルを取り出して一次記憶部１３０８に出力する。ＤＳＭ−ＣＣの詳細な実現方法は本発明とは関係ないため、説明を省略する。
【０１１４】
ＡＭ１７０４ｂは、サービスに含まれるＪａｖａプログラムの実行や終了を管理する機能を提供するアプリケーションプログラムマネージャである。ＡＭ１７０４ｂは指定されたＭＰＥＧ２トランスポートストリームの指定されたチャンネルに多重されたＪａｖａプログラムを抽出し、その抽出したＪａｖａプログラムを別途多重された同期情報に従って実行したり、あるいは終了させたりする。ＪａｖａプログラムのＪａｖａクラスファイルは、前述のＤＳＭ−ＣＣ方式でＭＰＥＧ２トランスポートストリームに多重されている。また、Ｊａｖａプログラムの同期情報はＡＩＴと呼ばれる形式で、ＭＰＥＧ２トランスポートストリームに多重されている。ＡＩＴは、ＤＶＢ−ＭＨＰ規格（ＥＴＳＩ  ＴＳ  １０１  ８１２  ＤＶＢ−ＭＨＰ仕様Ｖ１．０．２）の１０章に定義されている、Ａｐｐｌｉｃａｔｉｏｎ  Ｉｎｆｏｒｍａｔｉｏｎ  Ｔａｂｌｅの略であり、ｔａｂｌｅ＿ｉｄが「０ｘ７４」であるＭＰＥＧ２セクションである。
【０１１５】
ＡＭ１７０４ｂは、ＭＰＥＧ２トランスポートストリームとチャンネル識別子を入力として、ＡＩＴの更新状況を監視するとともに、ＡＩＴが更新された場合は、そのＡＩＴにもとづいて、Ｊａｖａプログラムを起動あるいは終了する等の処理を実行する。まず、ＡＭ１７０４ｂは、指定されたチャンネル識別子をキーとしてライブラリ１７０１ｂのチャンネル情報を検索し、プログラムナンバーを得る。次にＳＦ１７０４ｅ等を利用して、ＭＰＥＧ２トランスポートストリームからＰＡＴを取得する。さらにＰＭＴの情報から、先ほど得られたプログラムナンバーに対応するＰＭＴのＰＩＤが得られる。再度ＳＦ１７０４ｅを利用して、実際のＰＭＴを取得する。取得されたＰＭＴは図１１の形式をしており、ストリーム種別が「データ」で補足情報として「ＡＩＴ」をもつエレメンタリーストリームのＰＩＤが書かれている。更にＳＦ１７０４ｅに、フィルタリング条件として今得られたＡＩＴのＰＩＤとｔａｂｌｅ＿ｉｄ「０ｘ７４」を与えると、ＡＩＴの実体が得られる。
【０１１６】
図２２は、ＡＩＴの情報の一例を模式的に表した表である。ＡＩＴバージョン２２００は、そのＡＩＴのバージョンを表現する。ＡＩＴバージョンが大きいほど、そのＡＩＴはより新しいＡＩＴである。等しいＡＩＴバージョンをもつＡＩＴは繰り返し受信されるが、ＡＭ１７０４ｂはすでに解析したＡＩＴと等しいＡＩＴバージョンをもつＡＩＴは解析せず、すでに解析したＡＩＴよりも新しいＡＩＴのみを解析して、それに対応した処理をする。列２２０１はＪａｖａプログラムの識別子である。列２２０２はＪａｖａプログラムの制御情報である。制御情報には「ａｕｔｏｓｔａｒｔ」「ｐｒｅｓｅｎｔ」「ｋｉｌｌ」等があり、「ａｕｔｏｓｔａｒｔ」は即時に端末装置１３００がこのＪａｖａプログラムを自動的に実行することを意味し、「ｐｒｅｓｅｎｔ」は自動実行しないことを意味し、「ｋｉｌｌ」はＪａｖａプログラムを停止することを意味する。列２２０３は、ＤＳＭ−ＣＣ方式でＪａｖａプログラムを含んでいるＰＩＤを抽出するためのＤＳＭ−ＣＣ識別子である。列２２０４はＪａｖａプログラムのプログラム名である。
【０１１７】
行２２１１、行２２１２、行２２１３、行２２１４は、Ｊａｖａプログラムの情報の組である。行２２１１で定義されるＪａｖａプログラムは、Ｊａｖａプログラムの識別子「３０１」、制御情報「ａｕｔｏｓｔａｒｔ」、ＤＳＭ−ＣＣ識別子「１」、プログラム名「ａ／ＴｏｐＸｌｅｔ」の組である。同様に、行２２１２で定義されるＪａｖａプログラムは、Ｊａｖａプログラムの識別子「３０２」、制御情報「ｐｒｅｓｅｎｔ」、ＤＳＭ−ＣＣ識別子「１」、プログラム名「ｂ／ＧａｍｅＸｌｅｔ」の組である。ここで、行２２１１、行２２１２、行２２１４で定義される３つのＪａｖａプログラムは同一のＤＳＭ−ＣＣ識別子をもつが、これは１つのＤＳＭ−ＣＣ方式でエンコードされたファイルシステム内に３つのＪａｖａプログラムが含まれていることを表す。ここでは、Ｊａｖａプログラムに対して４つの情報しか規定しないが、実際にはより多くの情報が定義される。詳細はＤＶＢ−ＭＨＰ規格を参照されたい。
【０１１８】
ＡＭ１７０４ｂは、更新されたＡＩＴの内容を解析することで、Ｊａｖａプログラムの実行状態を制御する。まず、ＡＭ１７０４ｂは、ＡＩＴの中から「ａｕｔｏｓｔａｒｔ」のＪａｖａプログラムを見つけ出し、対応するＤＳＭ−ＣＣ識別子およびＪａｖａプログラム名を抽出する。図２２を参照して、ＡＭ１７０４ｂは行２２１１のＪａｖａプログラムを抽出し、ＤＳＭ−ＣＣ識別子「１」およびＪａｖａプログラム名「ａ／ＴｏｐＸｌｅｔ」を取得する。次いで、ＡＩＴから取得したＤＳＭ−ＣＣ識別子を用いて、ＪａｖａプログラムをＤＳＭ−ＣＣ方式で格納しているＴＳパケットのＰＩＤをＰＭＴから取得する。具体的には、ＰＭＴの中でストリーム種別が「データ」で、補足情報のＤＳＭ−ＣＣ識別子が合致するエレメンタリストリームのＰＩＤを取得する。ここで、ＤＳＭ−ＣＣ識別子が「１」であり、ＰＭＴが図１１とすると、行１１１４のエレメンタリストリームが合致し、ＰＩＤ「５０１４」を取り出す。
【０１１９】
ＡＭ１７０４ｂは、ＳＦ１７０４ｅに、ＤＳＭ−ＣＣ方式でデータが埋めこまれたＭＰＥＧ２セクションを伝送するＴＳパケットのＰＩＤおよびセクションフィルタ条件を指定する。ここでは、ＰＩＤ「５０１４」を与える。この結果、ＡＭ１７０４ｂは、ＤＳＭ−ＣＣ１７０４ｄを用いて、ＤＳＭ−ＣＣ方式に従ってファイルシステムを復元し、１次記憶部１３０８に保存する。ＭＰＥＧ２トランスポートストリーム中のＴＳパケットからファイルシステム等のデータを取り出し１次記憶部１３０８、２次記憶部１３０７等の記憶手段に保存することを以降、ダウンロードとよぶ。
【０１２０】
図２３は、ダウンロードしたファイルシステムの一例である。図中、丸はディレクトリを四角はファイルを表し、２３０１はルートディレクトリ、２３０２はディレクトリ「ａ」、２３０３はディレクトリ「ｂ」、２３０４はファイル「ＴｏｐＸｌｅｔ．ｃｌａｓｓ」、２３０５はファイル「ＧａｍｅＸｌｅｔ．ｃｌａｓｓ」、２３０６はディレクトリ「ｚ」、２３０７はファイル「ＭｕｓｉｃＸｌｅｔ．ｃｌａｓｓ」、２３０８はファイル「ＳｔｕｄｙＸｌｅｔ．ｃｌａｓｓ」である。
【０１２１】
次いでＡＭ１７０４ｂは、１次記憶部１３０８にダウンロードしたファイルシステム中から実行するＪａｖａプログラムをＪａｖａＶＭ１７０３に引き渡す。ここで、実行するＪａｖａプログラム名が「ａ／ＴｏｐＸｌｅｔ」とすると、Ｊａｖａプログラム名の最後に「．ｃｌａｓｓ」を付加したファイル「ａ／ＴｏｐＸｌｅｔ．ｃｌａｓｓ」が実行すべきファイルとなる。「／」はディレクトリやファイル名の区切りであり、図２３を参照して、ファイル２３０４が実行すべきＪａｖａプログラムである。次いでＡＭ１７０４ｂは、ファイル２３０４をＪａｖａＶＭ１７０３に引き渡すと、そのファイルはＪａｖａプログラムとしてＪａｖａ ＶＭ上で実行される。制御情報に「ｋｉｌｌ」が指定されていた場合は、Ｊａｖａプログラムを終了させる。
【０１２２】
ＡＭ１７０４ｂは、新しいＡＩＴバージョンを持つＡＩＴが来る度にそのＡＩＴを解析してＪａｖａプログラムの実行状態を変更させる。
【０１２３】
ＪＭＦ１７０４ａは、サービスに含まれる映像と音声の再生制御を担う。具体的には、指定されたＭＰＥＧ２トランスポートストリームの指定されたチャンネルに多重された映像ＥＳと音声ＥＳをＡＶデコーダに入力して再生させる。受信した放送波から直接サービスを再生する場合は、アダプタ１３１１から出力されるＭＰＥＧ２トランスポートストリームを再生するように指定される。一方、２次記憶部１３０７に一旦記録されたサービスを再生する場合は、２次記憶部１３０７内の記録領域１５０４から出力されるＭＰＥＧ２トランスポートストリームを再生するように指定される。
【０１２４】
まず、ＪＭＦ１７０４ａは、指定されたチャンネル識別子をキーとしてライブラリ１７０１ｂのチャンネル情報を検索し、プログラムナンバーを得る。次にＳＦ１７０４ｅ等を利用して、ＭＰＥＧ２トランスポートストリームからＰＡＴを取得する。さらにＰＭＴの情報から、先ほど得られたプログラムナンバーに対応するＰＭＴのＰＩＤが得られる。再度ＳＦ１７０４ｅを利用して、実際のＰＭＴを取得する。取得されたＰＭＴは図１１の形式をしており、ストリーム種別が「映像」および「音声」であるエレメンタリストリームのＰＩＤが書かれている。ＪＭＦ１７０４ａが、それらのＰＩＤをＴＳデコーダ１３０２のＰＩＤフィルタ１５０２に設定すると、図１５あるいは図１６に示されたごとく、該当ＰＩＤで多重されている映像ＥＳと音声ＥＳがＡＶデコーダ１３０３経由で再生される。
【０１２５】
ここで、特にＪＭＦ１７０４ａが２次記憶部に記録済みのＭＰＥＧ２トランスポートストリームを入力とする場合は、ＪＭＦ１７０４ａは２次記憶部１３０７等の記録領域１５０４からのＭＰＥＧ２トランスポートストリームの読出速度や読出位置を変更させることで、映像や音声の再生速度を変更させることができる。これにより早送りやスキップといった特殊再生が可能となる。例えば、通常速度の２倍の速度でＭＰＥＧ２トランスポートストリームを読み出すようにすれば、映像や音声も２倍の速度で再生される。また、ＭＰＥＧ２トランスポートストリームの読出位置を特定間隔だけ飛ばして読み出せば、映像や音声はスキップ再生される。ＪＭＦ１７０４ａは、ライブラリ１７０１ｂの機能を利用することで、２次記憶部１３０７を制御し、ＭＰＥＧ２トランスポートストリームの読出速度や読出位置を変更させる。これらの特殊再生を高水準で滑らかに行う方法については本発明の範囲外であるため、説明を省略する。
【０１２６】
ストレージマネージャ１７０４ｇは、ストレージすなわち記録領域１５０４を１つあるいは複数のボリュームという単位に分割して管理する。
【０１２７】
図２７は、ストレージとボリュームとの関係を表現した概念図である。１つのストレージには、ストレージマネージャ１７０４ｇによって、１つあるいは複数のボリュームが生成される。レコーディングマネージャ１７０４ｈは、サービスを記録するボリュームとして、あるボリュームを指定する。
【０１２８】
ストレージマネージャ１７０４ｇは、図２８に示すように、ボリューム生成部２８１１、ボリューム情報保持部２８１２、ボリューム残量検出部２８１３、および、ストレージ残量検出部２８１４で構成される。
【０１２９】
ボリューム生成部２８１１は、Ｊａｖａプログラムあるいは補足ボリューム生成部２８０４によって指定されるボリューム名およびボリューム容量にもとづいて、記録領域１５０４にボリュームを生成する。例えば、ボリューム名として“ＭＥＤＩＡ”、ボリューム容量として“１０２４０”と指定された場合は、１０２４０キロバイトの“ＭＥＤＩＡ”というボリュームを記録領域１５０４に生成する。ボリューム生成部２８１１が、ストレージ残量検出部２８１４からストレージすわなち記録領域１５０４の残量を取得して、記録領域１５０４に十分な空容量がない、あるいは、ボリューム情報保持部２８１２から記録領域１５０４に既存のボリューム情報を取得して、記録領域１５０４にすでに同名のボリュームが存在する場合は、ボリュームの生成に失敗する。ボリュームの生成に成功すれば、ボリュームを識別するためのボリューム識別子、ボリューム名、および、ボリューム容量等の情報が、ボリューム情報として、ボリューム情報保持部２８１２へ通知されて保持されるとともに、記録領域１５０４にも記録される。
【０１３０】
Ｊａｖａプログラムあるいは補足ボリューム生成部２８０４によって指定されたボリュームを生成するまでの動作の流れを図３０に示す。
【０１３１】
Ｊａｖａプログラムあるいは補足ボリューム生成部２８０４からボリューム名およびボリューム容量が指定されて、ボリューム生成部２８１１へボリュームの生成が要求される（Ｓ３００１）。ボリューム生成部２８１１は、ストレージ残量検出部２８１４からストレージの残量を取得して（Ｓ３００２）、ストレージにボリュームを生成するための十分な残量があるか判定する（Ｓ３００３）。ストレージに十分な残量がない場合は、ボリュームの生成に失敗する。ストレージに十分な残量がある場合は、ボリューム情報保持部２８１２からストレージに既存のボリューム情報を取得して（Ｓ３００４）、ストレージに同名のボリュームがないか判定する（Ｓ３００５）。ストレージにすでに同名のボリュームがある場合は、ボリュームの生成に失敗する。ストレージに同名のボリュームがない場合は、ボリュームを生成して（Ｓ３００６）、生成したボリュームを識別するボリューム識別子を割り当てる。そのボリューム識別子、ボリューム名、および、ボリューム容量等の情報を、ボリューム情報として、ボリューム情報保持部２８１２に通知して保持させる（Ｓ３００７）。
【０１３２】
ボリューム情報保持部２８１２は、ボリューム生成時にボリューム生成部２８１１から通知されるボリュームを識別するためのボリューム識別子、ボリューム名、および、ボリューム容量等の情報を、ボリューム情報として、保持する。ボリューム情報保持部２８１２に保持されているボリューム情報は、Ｊａｖａプログラムによって取得されて、サービスの記録時にサービスを記録するボリュームとして、あるボリューム識別子が指定される。
【０１３３】
ボリューム残量検出部２８１３は、Ｊａｖａプログラム、あるいは、ボリューム残量不足検知部２８０２からの問合せにもとづいて、その時点でコンテンツが記録されていないボリュームの容量を返す。
【０１３４】
ストレージ残量検出部２８１４は、Ｊａｖａプログラム、ボリューム生成部２８１１、あるいは、補足ボリューム生成部２８０４からの問合せにもとづいて、その時点でボリュームが割り当てられていないストレージすなわち記録領域１５０４の容量を返す。
【０１３５】
本実施の形態においては、ストレージすなわち記録領域１５０４が１つである場合を挙げるが、複数であってもよい。その場合は、ボリューム生成部２８１１、ボリューム情報保持部２８１２、ボリューム残量検出部２８１３、および、ストレージ残量検出部２８１４に対して、ストレージを識別するためのストレージ識別子も併せて指定する。
【０１３６】
レコーディングマネージャ１７０４ｈは、現在放送されているサービスを、指定された期間において、指定されたビットレートで、記録領域１５０４の指定されたボリュームに記録する。レコーディングマネージャ１７０４ｈは、図２８に示すように、レコーディング生成部２８０１、ボリューム残量不足検知部２８０２、レコーディング情報保持部２８０３、補足ボリューム生成部２８０４で構成される。
【０１３７】
レコーディング生成部２８０１は、Ｊａｖａプログラムによって指定されたチャンネル識別子、開始時刻、終了時刻、ビットレート、および、ボリューム識別子にもとづいて、チャンネル識別子によって識別されるサービスを、指定された開始時刻と終了時刻の間だけ、指定されたビットレートで、記録領域１５０４の指定されたボリュームに記録する。また、指定されたチャンネル識別子、開始時刻、終了時刻、ビットレート、および、ボリューム識別子等をレコーディング情報として、レコーディング情報保持部２８０３へ通知して保持させるとともに、記録領域１５０４にも記録する。
【０１３８】
さらに、レコーディング生成部２８０１は、ボリューム残量不足検知部２８０２によって指定されたレコーディング識別子、開始時刻、終了時刻、ビットレート、および、ボリューム識別子にもとづいて、レコーディング識別子によって識別される現在記録されているサービスと等しいサービスを、指定された開始時刻と終了時刻の間だけ、指定されたビットレートで、記録領域１５０４の指定されたボリュームに記録する。Ｊａｖａプログラムが指定するチャンネル識別子によって識別されるサービスの記録と同様に、指定されたレコーディング識別子から導出されるサービスを識別するチャンネル識別子、開始時刻、終了時刻、ビットレート、および、ボリューム識別子等をレコーディング情報として、レコーディング情報保持部２８０３へ通知して保持させるとともに、記録領域１５０４にも記録する。
【０１３９】
まず、Ｊａｖａプログラムが指定するチャンネル識別子によって識別されるサービスの記録に関して、その動作の流れを以下に記述する。
【０１４０】
レコーディング生成部２８０１は、Ｊａｖａプログラムからチャンネル識別子、開始時刻、終了時刻、ビットレート、および、ボリューム識別子を指定されると、それらの情報をレコーディング情報として識別するためのレコーディング識別子を割り当てて、開始時刻になるまで待機する。その後、開始時刻に至ると、まず、レコーディング生成部２８０１は、ボリューム残量不足検知部２８０２へ、レコーディング情報のうち、レコーディング識別子、終了時刻、ビットレート、および、ボリューム識別子を引き渡して、サービスを記録するボリュームの残量を監視させる。
【０１４１】
次に、レコーディング生成部２８０１は、チャンネル識別子をキーとして、ライブラリ１７０１ｂが保有するチャンネル情報から当該チャンネル識別子に相当するチューニング情報を得る。その後、Ｔｕｎｅｒ１７０４ｃにチューニング情報を与えると、Ｔｕｎｅｒ１７０４ｃはチューニングを開始する。ここで、チューニング情報は、周波数や変調方式等が特定可能な情報である。すると図１５に示されるように、アダプタ１３１１経由でＭＰＥＧ２トランスポートストリームがＴＳデコーダに入力される。
【０１４２】
また、レコーディング生成部２８０１は、ＳＦ１７０４ｅを利用して、チューニングで得られたＭＰＥＧ２トランスポートストリームからＰＡＴを取得する。さらに、指定されたチャンネル識別子に対応するプログラムナンバーをライブラリ１７０１ｂから検索し、得られたプログラムナンバーに対応するＰＭＴのＰＩＤをＰＡＴから検索する。その後、ＳＦ１７０４ｅを利用して、実際のＰＭＴを取得し、指定されたチャンネルを構成するＥＳの全ＰＩＤを得る。レコーディング生成部２８０１は、得られたＰＩＤをＴＳデコーダのＰＩＤフィルタ１５０２に設定する。さらに、放送波に含まれるサービスを、記録領域１５０４の指定されたボリュームに指定されたビットレートで記録するように、ライブラリ１７０１ｂを通じて各ハードウェア構成要素の出力先を設定する。すると、図１５で説明した流れに沿って、所望のチャンネルを構成する全ＥＳが、記録領域１５０４の指定されたボリュームに指定されたビットレートで記録される。
【０１４３】
その後、指定された終了時刻に至ると、レコーディング生成部２８０１はＴｕｎｅｒ１７０４ｃのチューニング動作を停止させ、記録領域１５０４の指定されたボリュームへのＭＰＥＧ２トランスポートストリームの書込を終了させる。また、先ほど記録したＭＰＥＧ２トランスポートストリームの管理情報として、図２１に示すレコーディング情報管理テーブルを生成する。
【０１４４】
図２１はレコーディング情報保持部２８０３に保持されている、あるいは、２次記憶部１３０７等の記録領域１５０４に記録されているレコーディング情報を管理するためのレコーディング情報管理テーブルの一例である。レコーディング情報は表形式で記録されている。列２１０１は、レコーディング識別子である。列２１０２は、チャンネル識別子である。列２１０３はプログラムナンバーである。列２１０４はサービスの記録開始時刻、列２１０５はサービスの記録終了時刻である。列２１０６はサービスを記録するビットレートである。そして、列２１０７はサービスとして記録されたＭＰＥＧ２トランスポートストリームを識別するメディア識別子である。
【０１４５】
メディア識別子をキーとして、さらに図２９におけるメディア情報管理テーブルを参照することで、そのメディア識別子と対応するコンテンツが記録されているストレージの識別子、ボリュームの識別子、および、コンテンツの識別子が導出される。行２１１１〜２１１３の各行は、各レコーディング識別子、チャンネル識別子、プログラムナンバー、開始時刻、終了時刻、ビットレート、および、メディア識別子の組となる。例えば、行２１１１はレコーディング識別子が「０００」、チャンネル識別子が「２」、プログラムナンバーが「１０２」、開始時刻が「２００５／０３／３０  １１：００」、終了時刻が「２００５／０３／３０  １２：００」、ビットレート「ＨＩＧＨ」、および、メディア識別子が「０００」であることを示す。
【０１４６】
次に、ボリューム残量不足検知部２８０２が指定するレコーディング識別子によって識別されるサービスの記録に関して、その動作の流れを以下に記述する。
【０１４７】
レコーディング生成部２８０１は、ボリューム残量不足検知部２８０２からレコーディング識別子、開始時刻、終了時刻、ビットレート、および、ボリューム識別子を指定されると、保持するレコーディング情報から、指定されたレコーディング識別子をキーとして、対応するレコーディング情報を導出する。そして、そのレコーディング情報によって現在記録されているサービスを、指定された開始時刻と終了時刻の間だけ、指定されたビットレートで、記録領域１５０４の指定されたボリュームに記録する。
【０１４８】
ただし、Ｊａｖａプログラムが指定するチャンネル識別子によって識別されるサービスの記録とは異なって、開始時刻に至っても、レコーディング生成部２８０１は、ボリューム残量不足検知部２８０２へ、レコーディング情報のうち、レコーディング識別子、終了時刻、ビットレート、および、ボリューム識別子を引き渡すことはなく、すなわち、サービスを記録するボリュームの残量を監視させることはない。
【０１４９】
以下の動作の流れは、Ｊａｖａプログラムが指定するチャンネル識別子によって識別されるサービスの記録と同様であるので、ここでは省略する。
【０１５０】
レコーディング情報保持部２８０３は、Ｊａｖａプログラムからチャンネル識別子、開始時刻、終了時刻、ビットレート、および、ボリューム識別子が指定されてサービスの記録が要求された場合に、あるいは、ボリューム残量不足検知部２８０２からレコーディング識別子、開始時刻、終了時刻、ビットレート、および、ボリューム識別子が指定されてサービスの記録が要求された場合に、レコーディング生成部２８０１から通知されるレコーディング識別子、チャンネル識別子、プログラムナンバー、開始時刻、終了時刻、ビットレート、および、メディア識別子等の情報を、レコーディング情報として、保持する。レコーディング情報保持部２８０３に保持されているレコーディング情報は、Ｊａｖａプログラムによって取得されて、サービスの再生時に再生対象サービスとして、レコーディング識別子が指定される。
【０１５１】
ボリューム残量不足検知部２８０２は、あるサービスの記録開始時に、レコーディング生成部２８０１から、レコーディング情報のうち、レコーディング識別子、終了時刻、ビットレート、および、ボリューム識別子が引き渡されて、サービスが記録されるボリュームの残量を監視する。一定周期ごとにストレージマネージャ１７０４ｇのボリューム残量検出部２８１３にボリューム識別子を引き渡して、そのボリューム識別子によって識別されるボリュームの残量を取得する。また、サービスが記録されるボリュームの残量不足が検知された場合は、補足ボリューム生成部２８０４へ、ボリューム名およびボリューム容量を引き渡して、補足ボリュームの生成を要求する。ここで、ボリューム名はストレージに既存のボリューム名とは重複しないことが保証される。例えば、“ＳＵＢ”を予約語、“０００”を残量不足が検知されたボリューム識別子として、“ＳＵＢ＿０００”等である。
【０１５２】
また、ボリューム容量はレコーディング生成部２８０１から引き渡されたビットレートと終了時刻までの残り時間によって算出される値である。さらに、補足ボリュームの生成に成功した場合は、補足ボリューム生成部２８０４から生成された補足ボリューム識別子が返されるとともに、引き続いてレコーディング生成部２８０１へ、レコーディング生成部２８０１から引き渡されたレコーディング識別子、記録開始時刻、記録終了時刻、ビットレート、および、生成された補足ボリューム識別子を引き渡して、補足レコーディングの生成を要求する。ここで、記録開始時刻は現在記録されているボリュームの残量がなくなる時刻である。また、記録終了時刻、あるいは、ビットレートは生成された補足ボリュームにおいて記録可能なように設定される。よって、レコーディング生成部２８０１から引き渡された記録終了時刻、あるいは、ビットレートとは異なる可能性がある。
【０１５３】
補足ボリューム生成部２８０４は、ボリューム残量不足検知部２８０２から引き渡された補足ボリューム名および補足ボリューム容量にもとづいて、補足ボリュームを生成するとともに、その補足ボリュームの生成に成功すれば、ボリューム残量不足検知部２８０２へ生成された補足ボリューム識別子を返す。補足ボリューム生成部２８０４は、ボリューム残量不足検知部２８０２から補足ボリューム名および補足ボリューム容量が引き渡されると、ストレージマネージャ１７０４ｇのストレージ残量検出部２８１４からボリュームが割り当てられていないストレージの容量を取得する。ストレージ残量検出部２８１４から取得されたストレージの残量が、ボリューム残量不足検知部２８０２から引き渡された補足ボリューム容量以上である場合は、ボリューム残量不足検知部２８０２から引き渡された補足ボリューム容量と補足ボリューム名を指定して、ボリューム生成部２８１１へ、ボリュームの生成を要求する。
【０１５４】
しかし、ストレージ残量検出部２８１４から取得されたストレージの残量が、ボリューム残量不足検知部２８０２から引き渡された補足ボリューム容量未満である場合は、ストレージ残量検出部２８１４から取得されたストレージの残量と補足ボリューム名を指定して、ボリューム生成部２８１１へ、ボリュームの生成を要求する。ボリュームの生成に成功すれば、ボリューム生成部２８１１から生成されたボリューム識別子が返される。さらに、補足ボリューム生成部２８０４は、そのボリューム識別子を補足ボリューム識別子として、ボリューム残量不足検知部２８０２へ返す。
【０１５５】
サービスマネージャ１７０４ｆは、２次記憶部１３０７等の記録領域１５０４のボリュームに記録済みのＭＰＥＧ２トランスポートストリーム中のサービス、あるいはアダプタ１３１１から入力されるＭＰＥＧ２トランスポートストリーム中のサービスの再生を管理する。
【０１５６】
以下に、記録領域１５０４のボリュームに記録済みのＭＰＥＧ２トランスポートストリーム中のサービスの再生を管理する場合の動作について述べる。これは記録済みサービスの再生に相当する。この場合、サービスマネージャ１７０４ｆは、レコーディング識別子を入力とする。そのレコーディング識別子で特定される、記録領域１５０４のボリュームに記録済みのサービスが、再生対象である。
【０１５７】
サービスマネージャ１７０４ｆは、まず、レコーディングマネージャ１７０４ｈが生成したレコーディング情報管理テーブルを参照して、指定されたレコーディング識別子で再生されるべきチャンネル識別子と、メディア識別子を得る。
【０１５８】
レコーディング情報管理テーブルを参照して、等しいレコーディング識別子が複数存在する場合は、記録開始時刻がより早い順序にもとづいて、再生されるべきチャンネル識別子と、メディア識別子を得る。そして、それらのメディア識別子によって識別されるコンテンツを連続で再生する。例えば、図２１のレコーディング情報管理テーブルにおいては、行２１１２と行２１１３とは等しいレコーディング識別子“００１”をもつ。再生するレコーディング識別子として、サービスマネージャ１７０４ｆへ“００１”が指定された場合は、行２１１２における記録開始時刻“２００５／０４／０１  ２１：００”と行２１１３における記録開始時刻“２００５／０４／０１  ２２：００”とを比較して、より早い行２１１２からチャンネル識別子とメディア識別子を得て再生する。行２１１２の再生が終点へ達すれば、行２１１３からチャンネル識別子とメディア識別子を得て始点から再生する。また、巻戻しすることで、行２１１３の再生が始点へ達すれば、行２１１２からチャンネル識別子とメディア識別子を得て終点から再生する。
【０１５９】
次いで、記録領域１５０４のボリュームに対して、今得られたメディア識別子で特定されるＭＰＥＧ２トランスポートストリームをＴＳデコーダ１３０２に出力するように、ライブラリ１７０１ｂを通して指示する。また、ライブラリ１７０１ｂを通して各ハードウェア構成要素の出力先を図１６に示す経路で流れるように設定する。その後、ＪＭＦ１７０４ａにＭＰＥＧ２トランスポートストリームの所在として記録領域１５０４のボリュームを与え、また再生すべきチャンネル識別子を与える。すると、ＪＭＦ１７０４ａは、既に述べた動作によって、記録領域１５０４のボリュームから出力されるＭＰＥＧ２トランスポートストリームに多重された映像と音声の再生を開始する。更に、ＡＭ１７０４ｂにもＭＰＥＧ２トランスポートストリームの所在として記録領域１５０４のボリュームを与え、また再生すべきチャンネル識別子を与える。すると、ＡＭ１７０４ｂは記録領域１５０４のボリュームから出力されるＭＰＥＧ２トランスポートストリームに多重されたＡＩＴに従って、記録領域１５０４のボリュームから出力されるＭＰＥＧ２トランスポートストリームに多重されたＪａｖａプログラムの実行および終了を開始する。その後、記録領域１５０４のボリュームから出力されるＭＰＥＧ２トランスポートストリームの終端まで、上述のサービスの再生を継続する。
【０１６０】
一方、以下に、アダプタ１３１１から入力されるＭＰＥＧ２トランスポートストリーム中のサービスの再生を管理する場合を説明する。これは、放送波から直接サービスを再生することに相当する。この場合、サービスマネージャ１７０４ｆは、再生対象サービスのチャンネル識別子を入力とする。
【０１６１】
サービスマネージャ１７０４ｆは、図１５のアダプタ１３１１から出力されるＭＰＥＧ２トランスポートストリームをＴＳデコーダ１３０２に出力するように、ライブラリ１７０１ｂを通して指示する。また、ライブラリ１７０１ｂを通して各ハードウェア構成要素の出力先を図１６に示す経路で流れるように設定する。まず、サービスマネージャ１７０４ｆは、チャンネル識別子をキーとして、ライブラリ１７０１ｂが保有するチャンネル情報から当該チャンネル識別子に相当するチューニング情報を得る。その後、Ｔｕｎｅｒ１７０４ｃにチューニング情報を与えると、Ｔｕｎｅｒ１７０４ｃはチューニングを開始する。ここで、チューニング情報は、周波数や変調方式等が特定可能な情報である。
【０１６２】
その後、ＪＭＦ１７０４ａにＭＰＥＧ２トランスポートストリームの所在としてアダプタ１３１１を与え、また再生すべきチャンネル識別子を与える。すると、ＪＭＦ１７０４ａは、既に述べた動作によって、アダプタ１３１１から出力されるＭＰＥＧ２トランスポートストリームに多重された映像と音声の再生を開始する。更に、ＡＭ１７０４ｂにもＭＰＥＧ２トランスポートストリームの所在としてアダプタ１３１１を与え、また再生すべきチャンネル識別子を与える。すると、ＡＭ１７０４ｂはアダプタ１３１１から出力されるＭＰＥＧ２トランスポートストリームに多重されたＡＩＴに従って、２次記憶部１３０７から出力されるＭＰＥＧ２トランスポートストリームに多重されたＪａｖａプログラムの実行および終了を開始する。その後、２次記憶部１３０７から出力されるＭＰＥＧ２トランスポートストリームの終端まで、上述のサービスの再生を継続する。
【０１６３】
ＥＰＧ１７０２は、電子番組表（Ｅｌｅｃｔｒｉｃ  Ｐｒｏｇｒａｍ  Ｇｕｉｄｅの略）であり、記録や再生の対象とする番組をユーザに選択させる機能である。放送波を受信しての通常の再生は本発明の趣旨から外れるため、説明を省略する。
【０１６４】
番組を記録する場合は、ＥＰＧ１７０２は、放送番組一覧を表示してユーザに希望の番組を選択させる。
【０１６５】
図１９は、記録対象とする番組を選択させるための画面表示の一例である。時刻１９０１とチャンネル１９０２と１９０３が格子状に表示され、各時刻で記録可能な各チャンネルの番組を一覧できる。ユーザは端末装置１３００の入力部１３１０に備わっている上下左右カーソルボタン１４０１〜１４０４を用いて画面上のフォーカス１９１１を移動させることができる。更にＯＫボタン１４０５を押下すると、現在フォーカスが当たっている番組が記録対象として選択される。ＥＰＧ１７０２は当該番組のチャンネル識別子をライブラリから取得して知っており、ユーザによって記録対象番組が選択されると、当該番組のチャンネル識別子、開始時刻、終了時刻をレコーディングマネージャ１７０４ｈに通知する。レコーディングマネージャ１７０４ｈは、その情報に基づいて、当該番組を２次記憶部１３０７に記録する。ここで、２次記憶部１３０７に記録するビットレートおよびボリュームを併せて指定することも可能であるが、ここでは省略する。２次記憶部１３０７に記録するビットレートおよびボリュームが指定されなかった場合、既定の値のビットレートで既定のボリュームに記録される。
【０１６６】
一方、記録済みの番組を再生する場合は、ＥＰＧ１７０２は、記録済み番組一覧を表示してユーザに希望の番組を選択させる。
【０１６７】
図１８は、記録済み番組を選択させるための画面表示の一例である。その時点で２次記憶部１３０７に記憶されている番組がすべて一覧表示される。ユーザは端末装置１３００の入力部１３１０に備わっている上下カーソルボタン１４０１、１４０２を用いて画面上のフォーカス１８０１を移動させることができる。更にＯＫボタン１４０５を押下すると、現在フォーカスが当たっている番組が再生対象として選択される。ＥＰＧ１７０２は当該番組のレコーディング識別子をレコーディングマネージャ１７０４ｈから取得して知っており、ユーザによって再生対象番組が選択されると、当該番組のレコーディング識別子をサービスマネージャ１７０４ｆに通知する。 サービスマネージャ１７０４ｆは、その情報に基づいて、当該番組を２次記憶部１３０７から読み出して再生する。
【０１６８】
以上説明した構成による本実施例において特徴的な動作を、以下にフローチャートを用いて説明する。
【０１６９】
図３１は、サービスの記録が開始されてから、サービスを記録するボリュームの残量不足が検知されて、補足レコーディングが生成されるまでの動作の流れを示すフローチャートである。
【０１７０】
レコーディング生成部２８０１は、サービスの記録開始時刻に至ると、ボリューム残量不足検知部２８０２へ、レコーディング情報のうち、レコーディング識別子、終了時刻、ビットレート、および、ボリューム識別子を引き渡す（Ｓ３１０１）。ボリューム残量不足検知部２８０２は、現在時刻がサービスの記録終了時刻を超過しているか判定して（Ｓ３１０２）、サービスの記録終了時刻を超過していれば、終了する。サービスの記録終了時刻を超過していなければ、ストレージマネージャ１７０４ｇのボリューム残量検出部２８１３へボリューム識別子を引き渡して、そのボリューム識別子によって識別されるボリュームの残量を取得する（Ｓ３１０３）。取得されたボリュームの残量と、サービスの記録を完了するまでに必要と見積もられるボリュームの容量とを比較して（Ｓ３１０４）、ボリュームの残量が必要なボリュームの容量以上ならば、一定期間が経過するまで待機する（Ｓ３１０５）。
【０１７１】
そして、一定期間経過後に、再び現在時刻がサービスの記録終了時刻を超過しているか判定して（Ｓ３１０２）、超過していなければ、ストレージマネージャ１７０４ｇのボリューム残量検出部２８１３からボリュームの残量を取得して（Ｓ３１０３）、ボリュームの残量が必要なボリュームの容量以上か判定する（Ｓ３１０４）。ボリュームの残量が必要なボリュームの容量未満ならば、補足ボリューム生成部２８０４へ、ボリューム名およびボリューム容量を引き渡して、補足ボリュームの生成を要求する（Ｓ３１０６）。ここで、ボリューム名はストレージに既存のボリューム名とは重複しないことが保証される。例えば、“ＳＵＢ”を予約語、“０００”を残量不足が検知されたボリューム識別子として、“ＳＵＢ＿０００”等である。また、ボリューム容量はレコーディング生成部２８０１から引き渡されたビットレートと終了時刻までの残り時間によって算出される値である。次いで、補足ボリュームの生成に成否を判定する（Ｓ３１０７）。
【０１７２】
補足ボリュームの生成に失敗した場合は、終了する。補足ボリュームの生成に成功した場合は、補足ボリューム生成部２８０４から生成された補足ボリューム識別子が返されるとともに、引き続いてレコーディング生成部２８０１へ、レコーディング生成部２８０１から引き渡されたレコーディング識別子、記録開始時刻、記録終了時刻、ビットレート、および、生成された補足ボリューム識別子を引き渡して、補足レコーディングの生成を要求する（Ｓ３１０８）。ここで、記録開始時刻は現在記録されているボリュームの残量がなくなる時刻である。また、記録終了時刻、あるいは、ビットレートは生成された補足ボリュームにおいて記録可能なように設定される。よって、レコーディング生成部２８０１から引き渡された記録終了時刻、あるいは、ビットレートとは異なる可能性がある。
【０１７３】
図３２はボリューム残量不足検知部２８０２が補足ボリューム生成部２８０４へ補足ボリュームの生成を要求してから、補足ボリューム生成部２８０４が補足ボリュームの生成に成功、あるいは、失敗するまでの動作の流れを示すフローチャートである。
【０１７４】
補足ボリューム生成部２８０４は、ボリューム残量不足検知部２８０２から補足ボリューム名および補足ボリューム容量が引き渡されると、ストレージマネージャ１７０４ｇのストレージ残量検出部２８１４からボリュームが割り当てられていないストレージの容量を取得する（Ｓ３２０１）。まず、ストレージ残量検出部２８１４から取得されたストレージの残量があるか判定する（Ｓ３２０２）。取得されたストレージの残量がない場合は、補足ボリュームの生成に失敗して、終了する。取得されたストレージの残量がある場合は、さらに、ストレージ残量検出部２８１４から取得されたストレージの残量が、ボリューム残量不足検知部２８０２から引き渡された補足ボリューム容量以上であるか判定する（Ｓ３２０３）。取得されたストレージの残量が、必要な補足ボリューム容量以上である場合は、ボリューム残量不足検知部２８０２から引き渡された補足ボリューム容量と補足ボリューム名を指定して、ボリューム生成部２８１１へ、ボリュームの生成を要求する（Ｓ３２０４）。
【０１７５】
しかし、取得されたストレージの残量が、必要な補足ボリューム容量未満である場合は、ストレージ残量検出部２８１４から取得されたストレージの残量と補足ボリューム名を指定して、ボリューム生成部２８１１へ、ボリュームの生成を要求する（Ｓ３２０５）。ボリュームの生成に成功すれば、ボリューム生成部２８１１から生成されたボリューム識別子が返される。さらに、補足ボリューム生成部２８０４は、そのボリューム識別子を補足ボリューム識別子として、ボリューム残量不足検知部２８０２へ返す。
【０１７６】
以上のようにして、サービスの記録時に、サービスを記録するボリュームの残量不足を検知した場合、ストレージの余剰部分に補足ボリュームを生成するとともに、サービスで記録不可とされた部分をその補足ボリュームに記録することで、ストレージの余剰部分を活用して、サービスの記録を完了することが可能となる。
【０１７７】
（実施の形態２）
以下に、本発明の実施の形態２に係る装置および方法を、図面を参照しながら説明する。
【０１７８】
実施の形態２に用いるハードウェア構成等は、本発明の実施の形態１と同様であるので、図１から図１６までを援用することとする。図中の構成要素は、実施の形態１の同一名称、同一符号の構成要素と同様の機能をもつため、再度の説明は省略する。
【０１７９】
実施の形態２のソフトウェア構成は、図１７に示すものと同様である。ストレージマネージャ１７０４ｇおよびレコーディングマネージャ１７０４ｈ以外の構成要素は、実施の形態１のソフトウェア構成の同一名称、同一符号の構成要素と同様の機能をもつため、再度の説明は省略する。また、実施の形態２で用いる各種データ形式は、図２０から図２２までの図面、および、図２９に示すものと同様であるため、再度の説明は省略する。
【０１８０】
図３３は、Ｊａｖａライブラリ１７０４におけるストレージマネージャ１７０４ｇ、および、レコーディングマネージャ１７０４ｈの詳細な構成を示す図である。
【０１８１】
ストレージマネージャ１７０４ｇは、ストレージすなわち記録領域１５０４を１つあるいは複数のボリュームという単位に分割して管理する。ストレージマネージャ１７０４ｇは、ボリューム生成部２８１１、ボリューム情報保持部２８１２、ボリューム残量検出部２８１３、および、ストレージ残量検出部２８１４で構成される。ボリューム情報保持部２８１２、および、ボリューム残量検出部２８１３は、実施の形態１と同様の機能をもつため、再度の説明は省略する。
【０１８２】
ボリューム生成部２８１１は、Ｊａｖａプログラムによって指定されるボリューム名およびボリューム容量にもとづいて、記録領域１５０４にボリュームを生成する。ボリュームを生成する動作の流れは実施の形態１と同様であるため、再度の説明は省略する。
【０１８３】
ストレージ残量検出部２８１４は、Ｊａｖａプログラム、あるいは、ボリューム生成部２８１１からの問合せにもとづいて、その時点でボリュームが割り当てられていないストレージすなわち記録領域１５０４の容量を返す。
【０１８４】
レコーディングマネージャ１７０４ｈは、現在放送されているサービスを、指定された期間において、指定されたビットレートで、記録領域１５０４の指定されたボリュームに記録する。レコーディングマネージャ１７０４ｈは、レコーディング生成部２８０１、ボリューム残量不足検知部２８０２、レコーディング情報保持部２８０３、残量不足時ハンドラ登録部３３０１、および、残量不足時ハンドラ登録特権判定部３３０２で構成される。
【０１８５】
残量不足時ハンドラ登録部３３０１は、ボリューム残量不足検知部２８０２において現在実行されているサービスを記録するボリュームの残量不足が検知された場合に、現在実行されているサービスの記録を識別するレコーディング識別子を引き渡されて呼び出される、特権Ｊａｖａプログラムによって事前に登録された、ボリュームの残量不足時に対処するための残量不足時ハンドラを保持する。
【０１８６】
残量不足時ハンドラ登録特権判定部３３０２は、あるＪａｖａプログラムが残量不足時ハンドラ登録部３３０１に残量不足時ハンドラを登録しようとした場合に、残量不足時ハンドラ登録部３３０１からそのＪａｖａプログラム識別するＪａｖａプログラム識別子を引き渡されて、そのＪａｖａプログラムが残量不足時ハンドラを登録するために必要な特権を有するかどうかを判定する。Ｊａｖａプログラムがその特権を有するＪａｖａプログラムである場合は、残量不足時ハンドラは残量不足時ハンドラ登録部３３０１に保持される。例えば、あるＪａｖａプログラムが残量不足時ハンドラ“ｌＨａｎｄｌｅｒ”を残量不足時ハンドラ登録部３３０１に登録するためには、残量不足時ハンドラを登録するためのＪａｖａメソッド“ｓｅｔＬａｃｋＨａｎｄｌｅｒ”によって、“ｓｅｔＬａｃｋＨａｎｄｌｅｒ（ｌＨａｎｄｌｅｒ）”と呼び出す。ここで、残量不足時ハンドラ“ｌＨａｎｌｄｅｒ”の引数としては、現在実行されているサービスの記録を特定するレコーディング識別子“ｒｅｃＩＤ”等が挙げられる。
【０１８７】
図３４は、あるＪａｖａプログラムがレコーディングマネージャ１７０４ｈの残量不足時ハンドラ登録部３３０１に残量不足時ハンドラを登録する場合のフローチャートである。
【０１８８】
残量不足時ハンドラを登録しようとするＪａｖａプログラムはまずレコーディングマネージャ１７０４ｈへ残量不足時ハンドラを登録するよう要求する（Ｓ３４０１）。残量不足時ハンドラの登録要求を受けたレコーディングマネージャ１７０４ｈは残量不足時ハンドラ登録特権判定部３３０２において、そのＪａｖａプログラムが残量不足時ハンドラを登録するために必要な特権を有するか判別する（Ｓ３４０２）。そのＪａｖａプログラムが残量不足時ハンドラを登録するために必要な特権を有すると判別された場合はそのＪａｖａプログラムが要求する残量不足時ハンドラを残量不足時ハンドラ登録部３３０１へ登録する（Ｓ３４０３）。
【０１８９】
レコーディング生成部２８０１は、Ｊａｖａプログラムによって指定されたチャンネル識別子、開始時刻、終了時刻、ビットレート、および、ボリューム識別子にもとづいて、チャンネル識別子によって識別されるサービスを、指定された開始時刻と終了時刻の間だけ、指定されたビットレートで、記録領域１５０４の指定されたボリュームに記録する。また、指定されたチャンネル識別子、開始時刻、終了時刻、ビットレート、および、ボリューム識別子等をレコーディング情報として、レコーディング情報保持部２８０３へ通知して保持させるとともに、記録領域１５０４にも記録する。
【０１９０】
さらに、レコーディング生成部２８０１は、Ｊａｖａプログラムが実装する残量不足時ハンドラによって指定されたレコーディング識別子にもとづいて、レコーディング識別子によって識別される現在実行されているサービスの記録を停止する。
【０１９１】
まず、Ｊａｖａプログラムが指定するチャンネル識別子によって識別されるサービスの記録に関して、その動作の流れは実施の形態１と同様であるため、再度の説明は省略する。
【０１９２】
次に、Ｊａｖａプログラムが実装する残量不足時ハンドラが指定するレコーディング識別子によって識別される現在実行されているサービスの記録の停止に関して、その動作の流れを以下に記述する。
【０１９３】
レコーディング生成部２８０１は、Ｊａｖａプログラムが実装する残量不足時ハンドラからレコーディング識別子を指定されて、そのレコーディング識別子によって識別される現在実行されているサービスの記録の停止を要求されると、保持するレコーディング情報から、指定されたレコーディング識別子をキーとして、対応するレコーディング情報を導出する。そして、そのレコーディング情報によって現在実行されているサービスの記録を、停止する。具体的には、レコーディング生成部２８０１はＴｕｎｅｒ１７０４ｃのチューニング動作を停止させ、記録領域１５０４の指定されたボリュームへのＭＰＥＧ２トランスポートストリームの書込を終了させる。また、先ほど記録したＭＰＥＧ２トランスポートストリームの管理情報として、図２１に示すレコーディング情報管理テーブルを生成する。
【０１９４】
レコーディング情報保持部２８０３は、実施の形態１と同様の機能をもつため、再度の説明は省略する。
【０１９５】
ボリューム残量不足検知部２８０２は、あるサービスの記録開始時に、レコーディング生成部２８０１から、レコーディング情報のうち、レコーディング識別子、終了時刻、ビットレート、および、ボリューム識別子が引き渡されて、サービスが記録されるボリュームの残量を監視する。一定周期ごとにストレージマネージャ１７０４ｇのボリューム残量検出部２８１３にボリューム識別子を引き渡して、そのボリューム識別子によって識別されるボリュームの残量を取得する。また、サービスが記録されるボリュームの残量不足が検知された場合は、残量不足時ハンドラ登録部３３０１へ、ボリュームの残量不足が検知された現在実行されているサービスの記録を識別するレコーディング識別子を引き渡して、特権Ｊａｖａプログラムによって残量不足時ハンドラ登録部３３０１に登録された残量不足時ハンドラの呼出を要求する。
【０１９６】
残量不足時ハンドラは、残量不足時ハンドラ登録部３３０１から、ボリュームの残量不足が検知された現在実行されているサービスの記録を識別するレコーディング識別子が引き渡されて、実行される。残量不足時ハンドラは、レコーディング生成部２８０１へ、そのレコーディング識別子を指定して、そのレコーディング識別子から導出されるサービスの記録の停止を要求する。
【０１９７】
以上説明した構成による本実施例において特徴的な動作を、以下にフローチャートを用いて説明する。
【０１９８】
図３５は、サービスの記録が開始されてから、サービスを記録するボリュームの残量不足が検知されて、残量不足時ハンドラが呼び出されるまでの動作の流れを示すフローチャートである。
【０１９９】
レコーディング生成部２８０１は、サービスの記録開始時刻に至ると、ボリューム残量不足検知部２８０２へ、レコーディング情報のうち、レコーディング識別子、終了時刻、ビットレート、および、ボリューム識別子を引き渡す（Ｓ３５０１）。ボリューム残量不足検知部２８０２は、現在時刻がサービスの記録終了時刻を超過しているか判定して（Ｓ３５０２）、サービスの記録終了時刻を超過していれば、終了する。サービスの記録終了時刻を超過していなければ、ストレージマネージャ１７０４ｇのボリューム残量検出部２８１３へボリューム識別子を引き渡して、そのボリューム識別子によって識別されるボリュームの残量を取得する（Ｓ３５０３）。取得されたボリュームの残量と、サービスの記録を完了するまでに必要と見積もられるボリュームの容量とを比較して（Ｓ３５０４）、ボリュームの残量が必要なボリュームの容量以上ならば、一定期間が経過するまで待機する（Ｓ３５０５）。
【０２００】
そして、一定期間経過後に、再び現在時刻がサービスの記録終了時刻を超過しているか判定して（Ｓ３５０２）、超過していなければ、ストレージマネージャ１７０４ｇのボリューム残量検出部２８１３からボリュームの残量を取得して（Ｓ３５０３）、ボリュームの残量が必要なボリュームの容量以上か判定する（Ｓ３５０４）。ボリュームの残量が必要なボリュームの容量未満ならば、残量不足時ハンドラ登録部３３０１へ、残量不足が検知されたボリュームに現在実行されているサービスの記録を識別するレコーディング識別子を引き渡して、残量不足時ハンドラの呼出を要求する（Ｓ３５０６）。
【０２０１】
図３６は、残量不足時ハンドラが呼び出された場合の動作の流れを示すフローチャートである。
【０２０２】
ボリューム残量不足検知部２８０２から、残量不足時ハンドラ登録部３３０１へ、残量不足が検知されたボリュームに現在実行されているサービスの記録を識別するレコーディング識別子が引き渡されて、残量不足時ハンドラの呼出が要求された場合、残量不足時ハンドラ登録部は、そのレコーディング識別子とともに残量不足時ハンドラを呼び出す。残量不足時ハンドラは、レコーディング生成部２８０１へ、そのレコーディング識別子を引き渡して、そのレコーディング識別子から導出される現在実行されているサービスの記録の停止を要求する（Ｓ３６０１）。
【０２０３】
以上のようにして、サービスの記録時に、サービスを記録するボリュームの残量不足を検知した場合、Ｊａｖａプログラムが登録した残量不足時ハンドラを呼び出すとともに、現在実行されているサービスの記録を停止することで、不完全な状態でのサービスの記録の終了を防止することが可能となる。
【０２０４】
（実施の形態３）
以下に、本発明の実施の形態３に係る装置および方法を、図面を参照しながら説明する。
【０２０５】
実施の形態３に用いるハードウェア構成等は、本発明の実施の形態１と同様であるので、図１から図１６までを援用することとする。図中の構成要素は、実施の形態１の同一名称、同一符号の構成要素と同様の機能をもつため、再度の説明は省略する。
【０２０６】
実施の形態３のソフトウェア構成は、図３３に示すものと同様である。レコーディングマネージャ１７０４ｈ以外の構成要素は、実施の形態２のソフトウェア構成の同一名称、同一符号の構成要素と同様の機能をもつため、再度の説明は省略する。また、実施の形態３で用いる各種データ形式は、図２０から図２２までの図面、および、図２９に示すものと同様であるため、再度の説明は省略する。
【０２０７】
レコーディングマネージャ１７０４ｈは、現在放送されているサービスを、指定された期間において、指定されたビットレートで、記録領域１５０４の指定されたボリュームに記録する。レコーディングマネージャ１７０４ｈは、レコーディング生成部２８０１、ボリューム残量不足検知部２８０２、レコーディング情報保持部２８０３、残量不足時ハンドラ登録部３３０１、および、残量不足時ハンドラ登録特権判定部３３０２で構成される。
【０２０８】
残量不足時ハンドラ登録部３３０１、レコーディング生成部２８０１、および、ボリューム残量不足検知部２８０２以外の構成要素は、実施の形態２と同様の機能をもつため、再度の説明は省略する。
【０２０９】
残量不足時ハンドラ登録部３３０１は、ボリューム残量不足検知部２８０２において現在実行されているサービスを記録するボリュームの残量不足が検知された場合に、現在実行されているサービスの記録を識別するレコーディング識別子、レコーディング生成部２８０１から引き渡されたビットレート、および、ボリュームの残量を引き渡されて呼び出される、特権Ｊａｖａプログラムによって事前に登録された、ボリュームの残量不足時に対処するための残量不足時ハンドラを保持する。
【０２１０】
レコーディング生成部２８０１は、Ｊａｖａプログラムによって指定されたチャンネル識別子、開始時刻、終了時刻、ビットレート、および、ボリューム識別子にもとづいて、チャンネル識別子によって識別されるサービスを、指定された開始時刻と終了時刻の間だけ、指定されたビットレートで、記録領域１５０４の指定されたボリュームに記録する。また、指定されたチャンネル識別子、開始時刻、終了時刻、ビットレート、および、ボリューム識別子等をレコーディング情報として、レコーディング情報保持部２８０３へ通知して保持させるとともに、記録領域１５０４にも記録する。
【０２１１】
さらに、レコーディング生成部２８０１は、Ｊａｖａプログラムが実装する残量不足時ハンドラによって指定されたレコーディング識別子および終了時刻にもとづいて、レコーディング識別子によって識別される現在実行されているサービスの記録の終了時刻を修正する。
【０２１２】
まず、Ｊａｖａプログラムが指定するチャンネル識別子によって識別されるサービスの記録に関して、その動作の流れは実施の形態１と同様であるため、再度の説明は省略する。
【０２１３】
次に、Ｊａｖａプログラムが実装する残量不足時ハンドラが指定するレコーディング識別子および終了時刻によって、識別される現在実行されているサービスの記録の終了時刻の修正に関して、その動作の流れを以下に記述する。
【０２１４】
レコーディング生成部２８０１は、Ｊａｖａプログラムが実装する残量不足時ハンドラから、レコーディング識別子、および、修正された終了時刻を指定されて、そのレコーディング識別子によって識別される現在実行されているサービスの記録の終了時刻の修正を要求されると、保持するレコーディング情報から、指定されたレコーディング識別子をキーとして、対応するレコーディング情報を導出する。そして、そのレコーディング情報によって現在実行されているサービスの記録の終了時刻を修正する。
【０２１５】
ボリューム残量不足検知部２８０２は、あるサービスの記録開始時に、レコーディング生成部２８０１から、レコーディング情報のうち、レコーディング識別子、終了時刻、ビットレート、および、ボリューム識別子が引き渡されて、サービスが記録されるボリュームの残量を監視する。一定周期ごとにストレージマネージャ１７０４ｇのボリューム残量検出部２８１３にボリューム識別子を引き渡して、そのボリューム識別子によって識別されるボリュームの残量を取得する。また、サービスが記録されるボリュームの残量不足が検知された場合は、残量不足時ハンドラ登録部３３０１へ、ボリュームの残量不足が検知された現在実行されているサービスの記録を識別するレコーディング識別子、レコーディング生成部２８０１から引き渡されたビットレート、および、ボリュームの残量を引き渡して、特権Ｊａｖａプログラムによって残量不足時ハンドラ登録部３３０１に登録された残量不足時ハンドラの呼出を要求する。
【０２１６】
残量不足時ハンドラは、残量不足時ハンドラ登録部３３０１から、ボリュームの残量不足が検知された現在実行されているサービスの記録を識別するレコーディング識別子、レコーディング生成部２８０１からボリューム残量不足検知部２８０２を経て引き渡されたビットレート、および、ボリュームの残量が引き渡されて、実行される。残量不足時ハンドラは、レコーディング生成部２８０１へ、そのレコーディング識別子、および、記録終了時刻を引き渡して、そのレコーディング識別子から導出されるサービスの記録の終了時刻の修正を要求する。ここで、記録終了時刻は、ビットレートとボリュームの残量によって算出されるそのボリュームで記録可能と見積もられる記録終了時刻である。
【０２１７】
以上説明した構成による本実施例において特徴的な動作を、以下にフローチャートを用いて説明する。
【０２１８】
サービスの記録が開始されてから、サービスを記録するボリュームの残量不足が検知されて、残量不足時ハンドラが呼び出されるまでの動作の流れは、実施の形態２と同様であるため、図３５のフローチャートを参照することとする。
【０２１９】
図３７は、残量不足時ハンドラが呼び出された場合の動作の流れを示すフローチャートである。
【０２２０】
ボリューム残量不足検知部２８０２から、残量不足時ハンドラ登録部３３０１へ、残量不足が検知されたボリュームに現在実行されているサービスの記録を識別するレコーディング識別子、レコーディング生成部２８０１から引き渡されたビットレート、および、ボリュームの残量が引き渡されて、残量不足時ハンドラの呼出が要求された場合、残量不足時ハンドラ登録部は、そのレコーディング識別子、ビットレート、および、ボリュームの残量とともに残量不足時ハンドラを呼び出す。残量不足時ハンドラは、レコーディング生成部２８０１へ、そのレコーディング識別子および記録終了時刻を引き渡して、そのレコーディング識別子から導出される現在実行されているサービスの記録の終了時刻を修正する（Ｓ３７０１）。ここで、記録終了時刻は、ビットレートとボリュームの残量によって算出されるそのボリュームで記録可能と見積もられる記録終了時刻である。
【０２２１】
以上のようにして、サービスの記録時に、サービスを記録するボリュームの残量不足を検知した場合、Ｊａｖａプログラムが登録した残量不足時ハンドラを呼び出すとともに、現在実行されているサービスの記録の終了時刻を修正することで、ボリュームの残量を最大限活用しつつ、不完全な状態でのサービスの記録の終了を防止することが可能となる。
【０２２２】
（実施の形態４）
以下に、本発明の実施の形態４に係る装置および方法を、図面を参照しながら説明する。
【０２２３】
実施の形態４に用いるハードウェア構成等は、本発明の実施の形態１と同様であるので、図１から図１６までを援用することとする。図中の構成要素は、実施の形態１の同一名称、同一符号の構成要素と同様の機能をもつため、再度の説明は省略する。
【０２２４】
実施の形態４のソフトウェア構成は、図３３に示すものと同様である。レコーディングマネージャ１７０４ｈ以外の構成要素は、実施の形態２のソフトウェア構成の同一名称、同一符号の構成要素と同様の機能をもつため、再度の説明は省略する。また、実施の形態４で用いる各種データ形式は、図２０から図２２までの図面、および、図２９に示すものと同様であるため、再度の説明は省略する。
【０２２５】
レコーディングマネージャ１７０４ｈは、現在放送されているサービスを、指定された期間において、指定されたビットレートで、記録領域１５０４の指定されたボリュームに記録する。レコーディングマネージャ１７０４ｈは、レコーディング生成部２８０１、ボリューム残量不足検知部２８０２、レコーディング情報保持部２８０３、残量不足時ハンドラ登録部３３０１、および、残量不足時ハンドラ登録特権判定部３３０２で構成される。
【０２２６】
残量不足時ハンドラ登録部３３０１、レコーディング生成部２８０１、および、ボリューム残量不足検知部２８０２以外の構成要素は、実施の形態２と同様の機能をもつため、再度の説明は省略する。
【０２２７】
残量不足時ハンドラ登録部３３０１は、ボリューム残量不足検知部２８０２において現在実行されているサービスを記録するボリュームの残量不足が検知された場合に、現在実行されているサービスの記録を識別するレコーディング識別子、レコーディング生成部２８０１から引き渡された終了時刻、および、ボリュームの残量を引き渡されて呼び出される、特権Ｊａｖａプログラムによって事前に登録された、ボリュームの残量不足時に対処するための残量不足時ハンドラを保持する。
【０２２８】
レコーディング生成部２８０１は、Ｊａｖａプログラムによって指定されたチャンネル識別子、開始時刻、終了時刻、ビットレート、および、ボリューム識別子にもとづいて、チャンネル識別子によって識別されるサービスを、指定された開始時刻と終了時刻の間だけ、指定されたビットレートで、記録領域１５０４の指定されたボリュームに記録する。また、指定されたチャンネル識別子、開始時刻、終了時刻、ビットレート、および、ボリューム識別子等をレコーディング情報として、レコーディング情報保持部２８０３へ通知して保持させるとともに、記録領域１５０４にも記録する。
【０２２９】
さらに、レコーディング生成部２８０１は、Ｊａｖａプログラムが実装する残量不足時ハンドラによって指定されたレコーディング識別子およびビットレートにもとづいて、レコーディング識別子によって識別される現在実行されているサービスの記録のビットレートを修正する。
【０２３０】
まず、Ｊａｖａプログラムが指定するチャンネル識別子によって識別されるサービスの記録に関して、その動作の流れは実施の形態１と同様であるため、再度の説明は省略する。
【０２３１】
次に、Ｊａｖａプログラムが実装する残量不足時ハンドラが指定するレコーディング識別子およびビットレートによって、識別される現在実行されているサービスの記録のビットレートの修正に関して、その動作の流れを以下に記述する。
【０２３２】
レコーディング生成部２８０１は、Ｊａｖａプログラムが実装する残量不足時ハンドラから、レコーディング識別子、および、修正されたビットレートを指定されて、そのレコーディング識別子によって識別される現在実行されているサービスの記録のビットレートの修正を要求されると、保持するレコーディング情報から、指定されたレコーディング識別子をキーとして、対応するレコーディング情報を導出する。そして、そのレコーディング情報によって現在実行されているサービスの記録のビットレートを修正する。
【０２３３】
ボリューム残量不足検知部２８０２は、あるサービスの記録開始時に、レコーディング生成部２８０１から、レコーディング情報のうち、レコーディング識別子、終了時刻、ビットレート、および、ボリューム識別子が引き渡されて、サービスが記録されるボリュームの残量を監視する。一定周期ごとにストレージマネージャ１７０４ｇのボリューム残量検出部２８１３にボリューム識別子を引き渡して、そのボリューム識別子によって識別されるボリュームの残量を取得する。また、サービスが記録されるボリュームの残量不足が検知された場合は、残量不足時ハンドラ登録部３３０１へ、ボリュームの残量不足が検知された現在実行されているサービスの記録を識別するレコーディング識別子、レコーディング生成部２８０１から引き渡された終了時刻、および、ボリュームの残量を引き渡して、特権Ｊａｖａプログラムによって残量不足時ハンドラ登録部３３０１に登録された残量不足時ハンドラの呼出を要求する。
【０２３４】
残量不足時ハンドラは、残量不足時ハンドラ登録部３３０１から、ボリュームの残量不足が検知された現在実行されているサービスの記録を識別するレコーディング識別子、レコーディング生成部２８０１からボリューム残量不足検知部２８０２を経て引き渡された終了時刻、および、ボリュームの残量が引き渡されて、実行される。残量不足時ハンドラは、レコーディング生成部２８０１へ、そのレコーディング識別子、および、ビットレートを引き渡して、そのレコーディング識別子から導出されるサービスの記録のビットレートの修正を要求する。ここで、ビットレートは、終了時刻とボリュームの残量によって算出されるそのボリュームで記録可能と見積もられるビットレートである。
【０２３５】
以上説明した構成による本実施例において特徴的な動作を、以下にフローチャートを用いて説明する。
【０２３６】
サービスの記録が開始されてから、サービスを記録するボリュームの残量不足が検知されて、残量不足時ハンドラが呼び出されるまでの動作の流れは、実施の形態２と同様であるため、図３５のフローチャートを参照することとする。
【０２３７】
図３８は、残量不足時ハンドラが呼び出された場合の動作の流れを示すフローチャートである。
【０２３８】
ボリューム残量不足検知部２８０２から、残量不足時ハンドラ登録部３３０１へ、残量不足が検知されたボリュームに現在実行されているサービスの記録を識別するレコーディング識別子、レコーディング生成部２８０１から引き渡された終了時刻、および、ボリュームの残量が引き渡されて、残量不足時ハンドラの呼出が要求された場合、残量不足時ハンドラ登録部は、そのレコーディング識別子、終了時刻、および、ボリュームの残量とともに残量不足時ハンドラを呼び出す。残量不足時ハンドラは、レコーディング生成部２８０１へ、そのレコーディング識別子およびビットレートを引き渡して、そのレコーディング識別子から導出される現在実行されているサービスの記録のビットレートを修正する（Ｓ３８０１）。ここで、ビットレートは、終了時刻、および、ボリュームの残量によって算出されるそのボリュームで記録可能と見積もられるビットレートである。
【０２３９】
以上のようにして、サービスの記録時に、サービスを記録するボリュームの残量不足を検知した場合、Ｊａｖａプログラムが登録した残量不足時ハンドラを呼び出すとともに、現在実行されているサービスの記録のビットレートを修正することで、ボリュームの残量を最大限活用しつつ、不完全な状態でのサービスの記録の終了を防止することが可能となる。
【０２４０】
（実施の形態５）
以下に、本発明の実施の形態５に係る装置および方法を、図面を参照しながら説明する。
【０２４１】
実施の形態５に用いるハードウェア構成等は、本発明の実施の形態１と同様であるので、図１から図１６までを援用することとする。図中の構成要素は、実施の形態１の同一名称、同一符号の構成要素と同様の機能をもつため、再度の説明は省略する。
【０２４２】
実施の形態５のソフトウェア構成は、図３３に示すものと同様である。レコーディングマネージャ１７０４ｈ以外の構成要素は、実施の形態２のソフトウェア構成の同一名称、同一符号の構成要素と同様の機能をもつため、再度の説明は省略する。また、実施の形態５で用いる各種データ形式は、図２０から図２２までの図面、および、図２９に示すものと同様であるため、再度の説明は省略する。
【０２４３】
レコーディングマネージャ１７０４ｈは、現在放送されているサービスを、指定された期間において、指定されたビットレートで、記録領域１５０４の指定されたボリュームに記録する。レコーディングマネージャ１７０４ｈは、レコーディング生成部２８０１、ボリューム残量不足検知部２８０２、レコーディング情報保持部２８０３、残量不足時ハンドラ登録部３３０１、および、残量不足時ハンドラ登録特権判定部３３０２で構成される。
【０２４４】
残量不足時ハンドラ登録部３３０１、レコーディング生成部２８０１、および、ボリューム残量不足検知部２８０２以外の構成要素は、実施の形態２と同様の機能をもつため、再度の説明は省略する。
【０２４５】
残量不足時ハンドラ登録部３３０１は、ボリューム残量不足検知部２８０２において現在実行されているサービスを記録するボリュームの残量不足が検知された場合に、現在実行されているサービスの記録を識別するレコーディング識別子、レコーディング生成部２８０１からボリューム残量不足検知部２８０２を経て引き渡された終了時刻、ビットレート、および、ボリュームの残量を引き渡されて呼び出される、特権Ｊａｖａプログラムによって事前に登録された、ボリュームの残量不足時に対処するための残量不足時ハンドラを保持する。
【０２４６】
レコーディング生成部２８０１は、Ｊａｖａプログラムによって指定されたチャンネル識別子、開始時刻、終了時刻、ビットレート、および、ボリューム識別子にもとづいて、チャンネル識別子によって識別されるサービスを、指定された開始時刻と終了時刻の間だけ、指定されたビットレートで、記録領域１５０４の指定されたボリュームに記録する。また、指定されたチャンネル識別子、開始時刻、終了時刻、ビットレート、および、ボリューム識別子等をレコーディング情報として、レコーディング情報保持部２８０３へ通知して保持させるとともに、記録領域１５０４にも記録する。
【０２４７】
さらに、レコーディング生成部２８０１は、Ｊａｖａプログラムが実装する残量不足時ハンドラによって指定されたレコーディング識別子、開始時刻、終了時刻、ビットレート、および、ボリューム識別子にもとづいて、レコーディング識別子によって識別される現在記録されているサービスと等しいサービスを、指定された開始時刻と終了時刻の間だけ、指定されたビットレートで、記録領域１５０４の指定されたボリュームに記録する。Ｊａｖａプログラムが指定するチャンネル識別子によって識別されるサービスの記録と同様に、指定されたレコーディング識別子から導出されるサービスを識別するチャンネル識別子、開始時刻、終了時刻、ビットレート、および、ボリューム識別子等をレコーディング情報として、レコーディング情報保持部２８０３へ通知して保持させるとともに、記録領域１５０４にも記録する。
【０２４８】
まず、Ｊａｖａプログラムが指定するチャンネル識別子によって識別されるサービスの記録に関して、その動作の流れは実施の形態１と同様であるため、再度の説明は省略する。
【０２４９】
次に、Ｊａｖａプログラムが実装する残量不足時ハンドラが指定するレコーディング識別子、開始時刻、終了時刻、ビットレート、および、ボリューム識別子によって、識別されるサービスの記録に関して、その動作の流れを以下に記述する。
【０２５０】
レコーディング生成部２８０１は、Ｊａｖａプログラムが実装する残量不足時ハンドラからレコーディング識別子、開始時刻、終了時刻、ビットレート、および、ボリューム識別子を指定されると、保持するレコーディング情報から、指定されたレコーディング識別子をキーとして、対応するレコーディング情報を導出する。そして、そのレコーディング情報によって現在記録されているサービスを、指定された開始時刻と終了時刻の間だけ、指定されたビットレートで、記録領域１５０４の指定されたボリュームに記録する。
【０２５１】
ただし、Ｊａｖａプログラムが指定するチャンネル識別子によって識別されるサービスの記録とは異なって、開始時刻に至っても、レコーディング生成部２８０１は、ボリューム残量不足検知部２８０２へ、レコーディング情報のうち、レコーディング識別子、終了時刻、ビットレート、および、ボリューム識別子を引き渡すことはなく、すなわち、サービスを記録するボリュームの残量を監視させることはない。
【０２５２】
以下の動作の流れは、Ｊａｖａプログラムが指定するチャンネル識別子によって識別されるサービスの記録と同様であるので、ここでは省略する。
【０２５３】
ボリューム残量不足検知部２８０２は、あるサービスの記録開始時に、レコーディング生成部２８０１から、レコーディング情報のうち、レコーディング識別子、終了時刻、ビットレート、および、ボリューム識別子が引き渡されて、サービスが記録されるボリュームの残量を監視する。一定周期ごとにストレージマネージャ１７０４ｇのボリューム残量検出部２８１３にボリューム識別子を引き渡して、そのボリューム識別子によって識別されるボリュームの残量を取得する。また、サービスが記録されるボリュームの残量不足が検知された場合は、残量不足時ハンドラ登録部３３０１へ、ボリュームの残量不足が検知された現在実行されているサービスの記録を識別するレコーディング識別子、レコーディング生成部２８０１から引き渡された終了時刻、ビットレート、および、ボリュームの残量を引き渡して、特権Ｊａｖａプログラムによって残量不足時ハンドラ登録部３３０１に登録された残量不足時ハンドラの呼出を要求する。
【０２５４】
残量不足時ハンドラは、残量不足時ハンドラ登録部３３０１から、ボリュームの残量不足が検知された現在実行されているサービスの記録を識別するレコーディング識別子、レコーディング生成部２８０１からボリューム残量不足検知部２８０２を経て引き渡された終了時刻、ビットレート、および、ボリュームの残量が引き渡されて、実行される。残量不足時ハンドラは、レコーディング生成部２８０１へ、そのレコーディング識別子、記録開始時刻、記録終了時刻、ビットレート、および、残量不足時ハンドラによって生成されたボリューム識別子を引き渡して、補足レコーディングの生成を要求する。ここで、記録開始時刻は現在記録されているボリュームの残量がなくなる時刻である。また、記録終了時刻、あるいは、ビットレートは生成されたボリュームにおいて記録可能なように設定される。よって、レコーディング生成部２８０１からボリューム残量不足検知部２８０２を経て引き渡された終了時刻、あるいは、ビットレートとは異なる可能性がある。
【０２５５】
以上説明した構成による本実施例において特徴的な動作を、以下にフローチャートを用いて説明する。
【０２５６】
サービスの記録が開始されてから、サービスを記録するボリュームの残量不足が検知されて、残量不足時ハンドラが呼び出されるまでの動作の流れは、実施の形態２と同様であるため、図３５のフローチャートを参照することとする。
【０２５７】
図３９は、残量不足時ハンドラが呼び出された場合の動作の流れを示すフローチャートである。
【０２５８】
ボリューム残量不足検知部２８０２から、残量不足時ハンドラ登録部３３０１へ、残量不足が検知されたボリュームに現在実行されているサービスの記録を識別するレコーディング識別子、および、レコーディング生成部２８０１から引き渡された終了時刻、ビットレート、および、ボリュームの残量が引き渡されて、残量不足時ハンドラの呼出が要求された場合、残量不足時ハンドラ登録部は、そのレコーディング識別子、終了時刻、ビットレート、および、ボリュームの残量とともに残量不足時ハンドラを呼び出す。残量不足時ハンドラは、ストレージマネージャ１７０４ｇのストレージ残量検出部２８１４からボリュームが割り当てられていないストレージの容量を取得する（Ｓ３９０１）。
【０２５９】
まず、ストレージ残量検出部２８１４から取得されたストレージの残量があるか判定する（Ｓ３９０２）。取得されたストレージの残量がない場合は、ボリュームの生成に失敗して、終了する。取得されたストレージの残量がある場合は、さらに、ストレージ残量検出部２８１４から取得されたストレージの残量が、終了時刻、ビットレート、および、ボリュームの残量によって算出される、サービスの記録の完了までに不足すると見積もられるボリューム容量以上であるか判定する（Ｓ３９０３）。取得されたストレージの残量が、不足するボリューム容量以上である場合は、不足するボリューム容量と既定されているボリューム名を指定して、ボリューム生成部２８１１へ、ボリュームの生成を要求する（Ｓ３９０４）。
【０２６０】
しかし、取得されたストレージの残量が、不足するボリューム容量未満である場合は、ストレージ残量検出部２８１４から取得されたストレージの残量と既定されているボリューム名を指定して、ボリューム生成部２８１１へ、ボリュームの生成を要求する（Ｓ３９０５）。ボリュームの生成に成功すれば、ボリューム生成部２８１１から生成されたボリューム識別子が返される。ボリュームの生成に成功した場合は、レコーディング生成部２８０１へ、レコーディング生成部２８０１からボリューム残量不足検知部２８０２を経て引き渡されたレコーディング識別子、記録開始時刻、記録終了時刻、ビットレート、および、生成されたボリューム識別子を引き渡して、補足レコーディングの生成を要求する（Ｓ３９０６）。
【０２６１】
ここで、記録開始時刻は現在記録されているボリュームの残量がなくなる時刻である。また、記録終了時刻、あるいは、ビットレートは生成されたボリュームにおいて記録可能なように設定される。よって、レコーディング生成部２８０１からボリューム残量不足検知部２８０２を経て引き渡された終了時刻、あるいは、ビットレートとは異なる可能性がある。
【０２６２】
以上のようにして、サービスの記録時に、サービスを記録するボリュームの残量不足を検知した場合、Ｊａｖａプログラムが登録した残量不足時ハンドラを呼び出すとともに、サービスの記録の完了までに不足すると見積もられる容量分のボリュームを生成して、そのボリュームに現在実行しているサービスの記録を移行することで、ストレージの余剰部分を活用して、サービスの記録を完了することが可能となる。
【０２６３】
（実施の形態６）
以下に、本発明の実施の形態６に係る装置および方法を、図面を参照しながら説明する。
【０２６４】
実施の形態６に用いるハードウェア構成等は、本発明の実施の形態１と同様であるので、図１から図１６までを援用することとする。図中の構成要素は、実施の形態１の同一名称、同一符号の構成要素と同様の機能をもつため、再度の説明は省略する。また、実施の形態６で用いる各種データ形式は、図２０から図２２までの図面、および、図２９に示すものと同様であるため、再度の説明は省略する。
【０２６５】
図４０は、Ｊａｖａライブラリ１７０４におけるストレージマネージャ１７０４ｇ、および、レコーディングマネージャ１７０４ｈの詳細な構成を示す図である。ストレージマネージャ１７０４ｇおよびレコーディングマネージャ１７０４ｈ以外の構成要素は、実施の形態２のソフトウェア構成の同一名称、同一符号の構成要素と同様の機能をもつため、再度の説明は省略する。
【０２６６】
ストレージマネージャ１７０４ｇは、ストレージすなわち記録領域１５０４を１つあるいは複数のボリュームという単位に分割して管理する。ストレージマネージャ１７０４ｇは、ボリューム生成部２８１１、ボリューム情報保持部２８１２、ボリューム残量検出部２８１３、および、ストレージ残量検出部２８１４で構成される。
【０２６７】
ボリューム生成部２８１１、および、ストレージ残量検出部２８１４以外の構成要素は、実施の形態５と同様の機能をもつため、再度の説明は省略する。
【０２６８】
ボリューム生成部２８１１は、Ｊａｖａプログラムあるいは残量不足時ハンドラ登録部３３０１によって指定されるボリューム名およびボリューム容量にもとづいて、記録領域１５０４にボリュームを生成する。例えば、ボリューム名として“ＭＥＤＩＡ”、ボリューム容量として“１０２４０”と指定された場合は、１０２４０キロバイトの“ＭＥＤＩＡ”というボリュームを記録領域１５０４に生成する。ボリューム生成部２８１１が、ストレージ残量検出部２８１４からストレージすわなち記録領域１５０４の残量を取得して、記録領域１５０４に十分な空容量がない、あるいは、ボリューム情報保持部２８１２から記録領域１５０４に既存のボリューム情報を取得して、記録領域１５０４にすでに同名のボリュームが存在する場合は、ボリュームの生成に失敗する。ボリュームの生成に成功すれば、ボリュームを識別するためのボリューム識別子、ボリューム名、および、ボリューム容量等の情報が、ボリューム情報として、ボリューム情報保持部２８１２へ通知されて保持されるとともに、記録領域１５０４にも記録される。
【０２６９】
Ｊａｖａプログラムあるいは残量不足時ハンドラ登録部３３０１によって指定されたボリュームを生成するまでの動作の流れを図３０に示す。
【０２７０】
Ｊａｖａプログラムあるいは残量不足時ハンドラ登録部３３０１からボリューム名およびボリューム容量が指定されて、ボリューム生成部２８１１へボリュームの生成が要求される。ボリューム生成部２８１１は、ストレージ残量検出部２８１４からストレージの残量を取得して、ストレージにボリュームを生成するための十分な残量があるか判定する。ストレージに十分な残量がない場合は、ボリュームの生成に失敗する。ストレージに十分な残量がある場合は、ボリューム情報保持部２８１２からストレージに既存のボリューム情報を取得して、ストレージに同名のボリュームがないか判定する。ストレージにすでに同名のボリュームがある場合は、ボリュームの生成に失敗する。ストレージに同名のボリュームがない場合は、ボリュームを生成して、生成したボリュームを識別するボリューム識別子を割り当てる。そのボリューム識別子、ボリューム名、および、ボリューム容量等の情報を、ボリューム情報として、ボリューム情報保持部２８１２に通知して保持させる。
【０２７１】
ストレージ残量検出部２８１４は、Ｊａｖａプログラム、ボリューム生成部２８１１、あるいは、残量不足時ハンドラ登録部３３０１からの問合せにもとづいて、その時点でボリュームが割り当てられていないストレージすなわち記録領域１５０４の容量を返す。
【０２７２】
レコーディングマネージャ１７０４ｈは、現在放送されているサービスを、指定された期間において、指定されたビットレートで、記録領域１５０４の指定されたボリュームに記録する。レコーディングマネージャ１７０４ｈは、レコーディング生成部２８０１、ボリューム残量不足検知部２８０２、レコーディング情報保持部２８０３、残量不足時ハンドラ登録部３３０１、および、残量不足時ハンドラ登録特権判定部３３０２で構成される。
【０２７３】
残量不足時ハンドラ登録部３３０１、および、レコーディング生成部２８０１以外の構成要素は、実施の形態５と同様の機能をもつため、再度の説明は省略する。
【０２７４】
残量不足時ハンドラ登録部３３０１は、ボリューム残量不足検知部２８０２において現在実行されているサービスを記録するボリュームの残量不足が検知された場合に、現在実行されているサービスの記録を識別するレコーディング識別子、レコーディング生成部２８０１からボリューム残量不足検知部２８０２を経て引き渡された終了時刻、ビットレート、および、ボリュームの残量を引き渡されて呼び出される、特権Ｊａｖａプログラムによって事前に登録された、ボリュームの残量不足時に対処するための残量不足時ハンドラを保持する。
【０２７５】
残量不足時ハンドラ登録部３３０１が保持する残量不足時ハンドラが呼び出された場合、その戻り値によって残量不足時ハンドラ登録部３３０１はボリュームの残量不足への対処を変化させる。
【０２７６】
残量不足時ハンドラからの戻り値が“ＳＴＯＰ＿ＲＥＣＯＲＤＩＮＧ”であった場合は、残量不足時ハンドラ登録部３３０１は、レコーディング生成部２８０１へ、ボリュームの残量不足が検知されたサービスの記録を識別するレコーディング識別子を指定して、サービスの記録を停止させる。
【０２７７】
残量不足時ハンドラからの戻り値が“ＴＩＭＥ＿ＦＯＲＷＡＲＤ”であった場合は、残量不足時ハンドラ登録部３３０１は、レコーディング生成部２８０１へ、ボリュームの残量不足が検知されたサービスの記録を識別するレコーディング識別子、および、修正された記録終了時刻を指定して、サービスの記録の終了時刻を修正させる。ここで、修正された記録終了時刻は、ビットレートとボリュームの残量によって算出されるそのボリュームで記録可能と見積もられる記録終了時刻である。
【０２７８】
残量不足時ハンドラからの戻り値が“ＲＡＴＥ＿ＤＯＷＮ”であった場合は、残量不足時ハンドラ登録部３３０１は、レコーディング生成部２８０１へ、ボリュームの残量不足が検知されたサービスの記録を識別するレコーディング識別子、および、修正されたビットレートを指定して、サービスの記録のビットレートを修正させる。ここで、修正されたビットレートは、終了時刻とボリュームの残量によって算出されるそのボリュームで記録可能と見積もられるビットレートである。
【０２７９】
残量不足時ハンドラからの戻り値が“ＣＲＥＡＴＥ＿ＶＯＬＵＭＥ”であった場合は、残量不足時ハンドラ登録部３３０１は、ストレージマネージャ１７０４ｇのストレージ残量検出部２８１４からボリュームが割り当てられていないストレージの容量を取得する。まず、ストレージ残量検出部２８１４から取得されたストレージの残量があるか判定する。取得されたストレージの残量がない場合は、ボリュームの生成に失敗して、終了する。取得されたストレージの残量がある場合は、さらに、ストレージ残量検出部２８１４から取得されたストレージの残量が、終了時刻、ビットレート、および、ボリュームの残量によって算出される、サービスの記録の完了までに不足すると見積もられるボリューム容量以上であるか判定する。
【０２８０】
取得されたストレージの残量が、不足するボリューム容量以上である場合は、残量不足時ハンドラ登録部３３０１は、不足するボリューム容量と既定されているボリューム名を指定して、ボリューム生成部２８１１へ、ボリュームの生成を要求する。しかし、取得されたストレージの残量が、不足するボリューム容量未満である場合は、残量不足時ハンドラ登録部３３０１は、ストレージ残量検出部２８１４から取得されたストレージの残量と既定されているボリューム名を指定して、ボリューム生成部２８１１へ、ボリュームの生成を要求する。ボリュームの生成に成功すれば、ボリューム生成部２８１１から生成されたボリューム識別子が返される。
【０２８１】
ボリュームの生成に成功した場合は、残量不足時ハンドラ登録部３３０１は、レコーディング生成部２８０１へ、ボリュームの残量不足が検知されたサービスの記録を識別するレコーディング識別子、記録開始時刻、記録終了時刻、ビットレート、および、生成されたボリューム識別子を引き渡して、補足レコーディングの生成を要求する。ここで、記録開始時刻は現在記録されているボリュームの残量がなくなる時刻である。また、記録終了時刻、あるいは、ビットレートは生成されたボリュームにおいて記録可能なように設定される。よって、レコーディング生成部２８０１からボリューム残量不足検知部２８０２を経て引き渡された終了時刻、あるいは、ビットレートとは異なる可能性がある。
【０２８２】
レコーディング生成部２８０１は、Ｊａｖａプログラムによって指定されたチャンネル識別子、開始時刻、終了時刻、ビットレート、および、ボリューム識別子にもとづいて、チャンネル識別子によって識別されるサービスを、指定された開始時刻と終了時刻の間だけ、指定されたビットレートで、記録領域１５０４の指定されたボリュームに記録する。また、指定されたチャンネル識別子、開始時刻、終了時刻、ビットレート、および、ボリューム識別子等をレコーディング情報として、レコーディング情報保持部２８０３へ通知して保持させるとともに、記録領域１５０４にも記録する。
【０２８３】
まず、Ｊａｖａプログラムが指定するチャンネル識別子によって識別されるサービスの記録に関して、その動作の流れは実施の形態１と同様であるため、再度の説明は省略する。
【０２８４】
さらに、レコーディング生成部２８０１は、残量不足時ハンドラ登録部３３０１によって指定されたレコーディング識別子にもとづいて、レコーディング識別子によって識別される現在実行されているサービスの記録を停止する。
【０２８５】
残量不足時ハンドラ登録部３３０１が指定するレコーディング識別子によって識別される現在実行されているサービスの記録の停止に関して、その動作の流れを以下に記述する。
【０２８６】
レコーディング生成部２８０１は、残量不足時ハンドラ登録部３３０１からレコーディング識別子を指定されて、そのレコーディング識別子によって識別される現在実行されているサービスの記録の停止を要求されると、保持するレコーディング情報から、指定されたレコーディング識別子をキーとして、対応するレコーディング情報を導出する。そして、そのレコーディング情報によって現在実行されているサービスの記録を、停止する。具体的には、レコーディング生成部２８０１はＴｕｎｅｒ１７０４ｃのチューニング動作を停止させ、記録領域１５０４の指定されたボリュームへのＭＰＥＧ２トランスポートストリームの書込を終了させる。また、先ほど記録したＭＰＥＧ２トランスポートストリームの管理情報として、図２１に示すレコーディング情報管理テーブルを生成する。
【０２８７】
また、レコーディング生成部２８０１は、残量不足時ハンドラ登録部３３０１によって指定されたレコーディング識別子および終了時刻にもとづいて、レコーディング識別子によって識別される現在実行されているサービスの記録の終了時刻を修正する。
【０２８８】
残量不足時ハンドラ登録部３３０１が指定するレコーディング識別子および終了時刻によって、識別される現在実行されているサービスの記録の終了時刻の修正に関して、その動作の流れを以下に記述する。
【０２８９】
レコーディング生成部２８０１は、残量不足時ハンドラ登録部３３０１から、レコーディング識別子、および、修正された終了時刻を指定されて、そのレコーディング識別子によって識別される現在実行されているサービスの記録の終了時刻の修正を要求されると、保持するレコーディング情報から、指定されたレコーディング識別子をキーとして、対応するレコーディング情報を導出する。そして、そのレコーディング情報によって現在実行されているサービスの記録の終了時刻を修正する。
【０２９０】
また、レコーディング生成部２８０１は、残量不足時ハンドラ登録部３３０１によって指定されたレコーディング識別子およびビットレートにもとづいて、レコーディング識別子によって識別される現在実行されているサービスの記録のビットレートを修正する。
【０２９１】
残量不足時ハンドラ登録部３３０１が指定するレコーディング識別子およびビットレートによって、識別される現在実行されているサービスの記録のビットレートの修正に関して、その動作の流れを以下に記述する。
【０２９２】
レコーディング生成部２８０１は、残量不足時ハンドラ登録部３３０１から、レコーディング識別子、および、修正されたビットレートを指定されて、そのレコーディング識別子によって識別される現在実行されているサービスの記録のビットレートの修正を要求されると、保持するレコーディング情報から、指定されたレコーディング識別子をキーとして、対応するレコーディング情報を導出する。そして、そのレコーディング情報によって現在実行されているサービスの記録のビットレートを修正する。
【０２９３】
また、レコーディング生成部２８０１は、残量不足時ハンドラ登録部３３０１によって指定されたレコーディング識別子、開始時刻、終了時刻、ビットレート、および、ボリューム識別子にもとづいて、レコーディング識別子によって識別される現在記録されているサービスと等しいサービスを、指定された開始時刻と終了時刻の間だけ、指定されたビットレートで、記録領域１５０４の指定されたボリュームに記録する。Ｊａｖａプログラムが指定するチャンネル識別子によって識別されるサービスの記録と同様に、指定されたレコーディング識別子から導出されるサービスを識別するチャンネル識別子、開始時刻、終了時刻、ビットレート、および、ボリューム識別子等をレコーディング情報として、レコーディング情報保持部２８０３へ通知して保持させるとともに、記録領域１５０４にも記録する。
【０２９４】
残量不足時ハンドラ登録部３３０１が指定するレコーディング識別子、開始時刻、終了時刻、ビットレート、および、ボリューム識別子によって、識別されるサービスの記録に関して、その動作の流れを以下に記述する。
【０２９５】
レコーディング生成部２８０１は、残量不足時ハンドラ登録部３３０１からレコーディング識別子、開始時刻、終了時刻、ビットレート、および、ボリューム識別子を指定されると、保持するレコーディング情報から、指定されたレコーディング識別子をキーとして、対応するレコーディング情報を導出する。そして、そのレコーディング情報によって現在記録されているサービスを、指定された開始時刻と終了時刻の間だけ、指定されたビットレートで、記録領域１５０４の指定されたボリュームに記録する。
【０２９６】
ただし、Ｊａｖａプログラムが指定するチャンネル識別子によって識別されるサービスの記録とは異なって、開始時刻に至っても、レコーディング生成部２８０１は、ボリューム残量不足検知部２８０２へ、レコーディング情報のうち、レコーディング識別子、終了時刻、ビットレート、および、ボリューム識別子を引き渡すことはなく、すなわち、サービスを記録するボリュームの残量を監視させることはない。
【０２９７】
以下の動作の流れは、Ｊａｖａプログラムが指定するチャンネル識別子によって識別されるサービスの記録と同様であるので、ここでは省略する。
【０２９８】
以上のようにして、サービスの記録時に、サービスを記録するボリュームの残量不足を検知した場合、Ｊａｖａプログラムが登録した残量不足時ハンドラを呼び出すとともに、その戻り値によってボリュームの残量不足への対処を変化させることで、サービスの記録時にボリュームの残量不足が発生したとしても、その場合に適当な対処を実行することが可能となる。
【０２９９】
（実施の形態７）
以下に、本発明の実施の形態７に係る装置および方法を、図面を参照しながら説明する。
【０３００】
実施の形態７は、実施の形態１を実現するための異なるハードウェア構成の形態を提供するものである。実施の形態７で用いるハードウェア構成等は、図２４および図２５で示す。
【０３０１】
図２４は、サービスの記録時における、各デバイスの物理的な接続順序と処理内容、入出力のデータ形式を表現する概念図を示す。図中の構成要素のうち、図１５と同一番号を付した構成要素は、実施の形態１で既に説明済であるため、再度の説明を省略する。図２４のハードウェア構成では、図１５と異なり、ＴＳデコーダ１３０２でフィルタリングされたセクションが、１次記憶部１３０８を通った後、多重器を経由せずに、記録領域１５０４に記録される。ここで、セクションの記録領域１５０４への記録に関しては、セクションの形式に応じて記録方式が異なる。
【０３０２】
ＤＳＭＣＣファイルシステムにてＭＰＥＧ２トランスポートストリーム中に記録されたファイルシステムに関しては、端末固有の記録領域１５０４独自のファイルシステムフォーマットに変換して記録領域１５０４に記録する。
【０３０３】
また、ＡＩＴに関しては、図２６に拡張したレコーディング情報管理テーブルの形式に変換して記録領域１５０４に記録する。図２６に示したレコーディング情報管理テーブルは、図２１に示したレコーディング情報管理テーブルを拡張したものであり、両図において同一の符号で識別される項目は、図２１に示したレコーディング情報管理テーブルと同等の意味をもつため、説明を省略する。
【０３０４】
各行２６１１〜２６１３はそれぞれ１つのサービスのレコーディング情報を示す。各行２６１１〜２６１３はそれぞれレコーディング識別子２１０１、チャンネル識別子２１０２、プログラムナンバー２１０３、サービスの記録を開始した時間２１０４、サービスの記録を終了した時間２１０５、サービスを記録するビットレート２１０６、メディア識別子２１０７、および、ＡＩＴ情報管理テーブルへの参照をもつ。ＡＩＴ情報管理テーブルはメディア時刻２６２１とそれに対応するＡＩＴバージョン２６２２をもつ。メディア時刻２６２１は対応するＭＰＥＧ２トランスポートストリームの再生時の時刻であって、対応するＭＰＥＧ２トランスポートストリーム上の位置を示す。ＡＩＴバージョン２６２２は図２２におけるＡＩＴバージョン２２００に対応する。
【０３０５】
例えば、レコーディング識別子２１０１として「００１」をもつサービスのレコーディング情報は、メディア識別子２１０７として「００１」をもち、参照されているＡＩＴ情報管理テーブルにおいてメディア時刻２６２１が「００：００：００」時には対応するＡＩＴバージョン２６２２は「１」となって、同様に、メディア時刻２６２１が「００：０５：００」時には対応するＡＩＴバージョン２６２２は「２」、メディア時刻２６２１が「００：２０：００」時には対応するＡＩＴバージョン２６２２は「３」となる。チャンネル識別子２６０１として「００１」をもつサービスの再生時には、レコーディング情報管理テーブルを参照して、メディア識別子２１０７である「００１」によって特定される映像および音声が多重化されたＭＰＥＧ２トランスポートストリームが再生されるとともに、ＡＩＴ情報管理テーブルを参照して、メディア時刻２６２１が「００：００：００」に達すれば、ＡＩＴバージョン２６２２が「１」であるＡＩＴに応じて、Ｊａｖａプログラムが起動あるいは終了等の制御が実行される。
【０３０６】
同様に、メディア時刻２６２１が「００：０５：００」に達すれば、ＡＩＴバージョン２６２２が「２」であるＡＩＴに応じて、メディア時刻２６２１が「００：２０：００」に達すれば、ＡＩＴバージョン２６２２が「３」であるＡＩＴに応じて、Ｊａｖａプログラムが起動あるいは終了等の制御が実行される。実際のＡＩＴは、プライベートセクション形式のバイナリファイルとして、端末固有の記録領域１５０４独自のファイルシステムフォーマットに変換して記録領域１５０４に記録するものとする。記録されたファイルは、一意に特定可能なユニークなファイル名がつけられ、それがレコーディング情報管理テーブル中にＡＩＴファイル名２６２３として記録される。
【０３０７】
実際の放送波においては、同一のＡＩＴバージョンをもつＡＩＴが何度も繰り返し送信されるが、本実施の形態においては、受信されるＡＩＴバージョンの変化を検出することで、その時点における更新された最初のＡＩＴのみを記録領域１５０４に記録することとする。
【０３０８】
図２５に、サービスの再生時における、各デバイスの物理的な接続順序と処理内容、入出力のデータ形式を表現する概念図を示す。図中の構成要素のうち、図１６と同一番号を付した構成要素は、実施の形態１で既に説明済であるため、再度の説明を省略する。
【０３０９】
図２５のハードウェア構成では、図１６と異なり、記録領域１５０４に記録されたセクションが、ＴＳデコーダを経由せずに、一次記憶に読み込まれる。記録領域から読み出したＭＰＥＧ２トランスポートストリームの現在再生時間に対応するメディア時間をレコーディング情報管理テーブルから検索し、そのメディア時間に相当するＡＩＴやＤＳＭＣＣファイルシステムをファイルから読み出す。
【０３１０】
ここで、図２２に示すＡＩＴと、図２６に示すレコーディング情報管理テーブルとによって、チャンネル識別子が「００１」に対応するサービスを記録領域１５０４から再生する場合を一例として挙げる。
【０３１１】
再生するサービスとして、チャンネル識別子が「００１」に対応するサービスが指定されると、サービスの再生において前述したように、サービスに属する音声・映像、および、サービスに属するＪａｖａプログラムがそれぞれ再生および起動される。
【０３１２】
再生を開始するメディア時刻が指定されない場合は、メディア時刻２６２１が「００：００：００」から再生を開始する。すなわち、音声・映像としては、レコーディング識別子２１０１「００１」に対応するメディア識別子２１０７「００１」をもつＭＰＥＧ２トランスポートストリームがメディア時刻２６２１「００：００：００」から再生される。ＡＩＴ情報管理テーブルを参照して、メディア時刻２６２１「００：００：００」に対応するＡＩＴバージョン２６２２が「１」であるので、ＡＩＴバージョン２２００が「１」であるＡＩＴをファイルから読み出す。ＡＩＴの内容に基づいて、制御情報２２０２が「ａｕｔｏｓｔａｒｔ」であるプログラム名２２０４に対応するＪａｖａプログラムが起動される。
【０３１３】
次いで、サービスの再生が継続されて、メディア識別子「００１」に対応するＭＰＥＧ２トランスポートストリームが再生されている位置がメディア時刻２６２１「００：０５：００」となれば、ＡＩＴ情報管理テーブルを参照して、メディア時刻２６２１「００：０５：００」に対応するＡＩＴバージョン２６２２が「２」であるので、ＡＩＴバージョン２２００が「２」であるＡＩＴにもとづいて、制御情報２２０２が「ａｕｔｏｓｔａｒｔ」であるプログラム名２２０４に対応するＪａｖａプログラムが起動されるとともに、制御情報２２０２が「ｄｅｓｔｒｏｙ」、あるいは、「ｋｉｌｌ」であるプログラム名２２０４に対応するＪａｖａプログラムが終了される。ここで、図２２を参照して、制御情報２２０２が「ｄｅｓｔｒｏｙ」であるプログラム名は「／ｂ／ＭｕｓｉｃＸｌｅｔ」、制御情報２２０２が「ｋｉｌｌ」であるプログラム名は 「／ｚ／ＳｔｕｄｙＸｌｅｔ」であるので、メディア時刻２６２１「００：０５：００」において、それらのプログラム名に対応するＪａｖａプログラムが実行されていれば、それらのＪａｖａプログラムは終了される。
【０３１４】
次いで、サービスの再生が継続されて、メディア識別子２１０７「００１」に対応するＭＰＥＧ２トランスポートストリームが再生されている位置がメディア時刻２６２１「００：２０：００」となれば、ＡＩＴ情報管理テーブルを参照して、メディア時刻２６２１「００：２０：００」に対応するＡＩＴバージョン２６２２が「３」であるので、ＡＩＴバージョン２２００が「３」であるＡＩＴにもとづいて、制御情報２２０２が「ａｕｔｏｓｔａｒｔ」であるプログラム名２２０４に対応するＪａｖａプログラムが起動されるとともに、制御情報２２０２が「ｄｅｓｔｒｏｙ」、あるいは、「ｋｉｌｌ」であるプログラム名２２０４に対応するＪａｖａプログラムが終了される。
【０３１５】
以上のようにして、多重器によって多重化された映像および音声と、別途異なる形式で記録されたＤＳＭＣＣファイルシステムおよびＡＩＴファイルを組み合わせてサービス再生することが可能となる。これにより、放送では繰り返し送信されていたＤＳＭＣＣファイルシステムやＡＩＴを更新時の一度分だけ記録すればよいことになり、記録領域の記憶容量の消費を抑えることができる。
【０３１６】
以上説明したいくつかの実施例は、本発明の実現例を示したものであり、本発明の趣旨が実現される限り他の実現例でも実施可能である。
【０３１７】
実施例ではケーブルシステムを対象とした構成を示したが、本発明は放送システムの種類に依存しない。例えば、衛星システム、地上波システム、あるいはＩＰネットワークを用いた番組配信システムなどにも容易に適応可能である。さらに本発明は各放送システムの違いと直接的な関係を持たないため、放送システムに係らず任意の伝送媒体で適用可能である。有線、無線の違いにも依存しない。
【０３１８】
ＡＶデコーダは、必ずしも映像および音声を同時にデコードする必要はない。映像デコーダ、音声デコーダを分離した構成としても、本発明は実現可能である。またＡＶデコーダがクローズドキャプションなどのデータに対するデコード機能を持っていても差し支えない。ＡＶデコーダによってデコードされたａｕｄｉｏ信号およびｖｉｄｅｏ信号が、記録領域１５０４に蓄積されるまでの任意の段階において暗号化されてもよい。
【０３１９】
実施例では、限定視聴を制御するアダプタを導入した例を示したが、アダプタは本発明を実現するために必ずしも必要ではない。アダプタの形式がいかなるものであってもよいし、またアダプタのない構成とすることも可能である。その場合、図１５において、チューナからのＭＰＥＧ２トランスポートストリームが直接ＴＳデコーダに入力される。この場合も本発明は適用可能である。また、アダプタによる限定視聴解除をＴＳデコーダ以前に行う必要はない。任意の位置でアダプタを利用して限定視聴を解除する構成とすることは容易であり、その場合も本発明は適用可能である。
【０３２０】
ＡＶエンコーダによるａｕｄｉｏ信号およびｖｉｄｅｏ信号のエンコード形式は、任意の形式であってもよい。本発明はいかなるエンコード形式であっても適用可能である。
【０３２１】
多重器の多重形式は任意の形式であってもよい。本発明はいかなる多重形式であっても適用可能である。
【０３２２】
ディスプレイおよびスピーカは、放送録画再生装置内部に包含していてもよく、放送録画再生装置に外部ディスプレイおよびスピーカを接続してもよい。ディスプレイおよびスピーカの存在場所や数によらず、本発明は適用可能である。
【０３２３】
ＣＰＵ自身が、ＴＳデコード、ＡＶデコード、ＡＶエンコードおよび多重化のすべてあるいはいくつかの処理を兼用で行うシステムであっても本発明は実施可能である。
【０３２４】
サービスを記録する形式としては、他にもＴＳデコーダを介さずにチューナからのＭＰＥＧ２トランスポートストリーム出力を直接、記録領域記録してもよいし、ＭＰＥＧ２トランスポートストリームの形式を変換するトランスレータを設けてチューナからのＭＰＥＧ２トランスポートストリームを形式変換して記録領域に記録してもよい。いかなるサービス記録方式を用いても、本発明は実施可能である。
【０３２５】
一部のＪａｖａバーチャルマシンは、バイトコードをＣＰＵが理解可能な実行形式に翻訳してから、ＣＰＵに引渡して実行するが、この場合でも本発明は適用可能である。
【０３２６】
以上の実施例では、ストレージすなわち記録領域１５０４が１つである場合を挙げたが、複数であってもよい。その場合は、ボリューム生成部２８１１、ボリューム情報保持部２８１２、ボリューム残量検出部２８１３、および、ストレージ残量検出部２８１４に対して、ストレージを識別するためのストレージ識別子も併せて指定する。
【０３２７】
以上の実施例では、トランスポートストリームがＩｎ−ｂａｎｄから得られるとしてＡＩＴに関して実現方法を説明したが、ＡＭが実行すべきＪａｖａプログラムを参照する手法はＡＩＴによるものだけではない。米国ケーブルシステムで利用されることが想定されるＯＣＡＰでは図３に記載されるＯＯＢにてアプリケーションプログラムの参照情報を記載するＸＡＩＴが利用されている。その他、ＲＯＭに予め記録されているものを起動する、２次記憶にダウンロードして記憶したものを起動する、等の方法も考えられる。
【０３２８】
本発明における録画再生装置、および、録画再生方法によれば、放送波の記録時に、放送波を記録する単位の残量不足を検知した場合、登録されている残量不足時ハンドラが呼び出されるとともに、その戻り値によって単位の残量不足への対処が変化することで、残量不足時ハンドラがその戻り値によって、既定の処理を選択して実行することが可能となる。
【０３２９】
上記に詳細に説明した本発明の実施の形態は単なる例示にすぎず、本発明の新規な教示および効果から実質的に逸脱することなく例示として挙げた実施の形態において様々な変更が可能であることは、当業者であれば容易に理解するところである。したがって、かかる変更はすべて本発明の範囲内に含まれるものである。
【産業上の利用可能性】
【０３３０】
本発明に係る記録装置（録画再生装置および録画再生方法）は、サービスの記録時に、サービスを記録するボリュームの残量不足を検知した場合、ストレージの余剰部分に補足ボリュームを生成するとともに、サービスで記録不可とされた部分をその補足ボリュームに記録することで、ストレージの余剰部分を活用して、サービスの記録を完了することを可能とするため、殊に放送録画再生装置に係る民生機器産業において利用される可能性が高い。例えば、ケーブルＳＴＢ、および、ディジタルＴＶ等として利用可能である。さらに、例えば、携帯電話等の機器においても放送受信機能をもつ機器であれば利用可能である。
【図面の簡単な説明】
【０３３１】
本願におけるこれらの目的および他の目的や、効果、特徴は、実施の形態を示す付属図面に関する以下の説明から明確になる。当該図面において、
【図１】本発明に係る放送システムの構成図である。
【図２】本発明に係るケーブルテレビシステムにおいて放送局側システムと端末装置間の通信に使用される周波数帯域の使い方の一例を示す図である。
【図３】本発明に係るケーブルテレビシステムにおいて放送局側システムと端末装置間の通信に使用される周波数帯域の使い方の一例を示す図である。
【図４】本発明に係るケーブルテレビシステムにおいて放送局側システムと端末装置間の通信に使用される周波数帯域の使い方の一例を示す図である。
【図５】ＭＰＥＧ２仕様で既定されるＴＳパケットの構成図である。
【図６】ＭＰＥＧ２トランスポートストリームの模式図である。
【図７】ＭＰＥＧ２仕様で既定されるＰＥＳパケットがＴＳパケットを用いて伝送される際の分割例を示す図である。
【図８】ＭＰＥＧ２仕様で既定されるＭＰＥＧ２セクションがＴＳパケットを用いて伝送される際の分割例を示す図である。
【図９】ＭＰＥＧ２仕様で既定されるＭＰＥＧ２セクションの構成図である。
【図１０】ＭＰＥＧ２仕様で既定されるＭＰＥＧ２セクションの利用例である。
【図１１】ＭＰＥＧ２仕様で規定されるＰＭＴの利用例を示す図である。
【図１２】ＭＰＥＧ２仕様で規定されるＰＡＴの利用例を示す図である。
【図１３】本発明に係る放送録画再生装置のハードウェア構成の構成例を示す図である。
【図１４】本発明に係る端末装置１２００のハードウェア構成における入力部１３１０のフロントパネル例を示す図である。
【図１５】本発明に係る録画再生装置の記録時におけるデバイス接続例を示す図である。
【図１６】本発明に係る録画再生装置の再生時におけるデバイス接続例を示す図である。
【図１７】本発明に係る端末装置が保存するプログラム構成の構成図を示す図である。
【図１８】本発明に係る端末装置が実行するＥＰＧの一例を示す図である。
【図１９】本発明に係る端末装置が実行するＥＰＧの一例を示す図である。
【図２０】本発明に係る２次記憶部が保存する情報の一例を示す図である。
【図２１】本発明に係るレコーディング情報管理テーブルの一例を示す図である。
【図２２】本発明に係るＤＶＢ−ＭＨＰ規格が規定するＡＩＴの内容を表す模式図である。
【図２３】本発明に係るＤＳＭＣＣ方式で送信されるファイルシステムを表す模式図である。
【図２４】本発明に係る録画再生装置の記録時におけるデバイス接続例を示す図である。
【図２５】本発明に係る録画再生装置の再生時におけるデバイス接続例を示す図である。
【図２６】本発明に係るレコーディング情報管理テーブルの一例を示す図である。
【図２７】本発明に係るストレージとボリュームとの関係を表現する概念図である。
【図２８】本発明に係るレコーディングマネージャおよびストレージマネージャの構成の一例を示す図である。
【図２９】本発明に係るメディア情報管理テーブルの一例を示す図である。
【図３０】本発明に係るボリューム生成部において要求されたボリュームが生成されるフローチャートである。
【図３１】本発明に係るレコーディング生成部において要求された補足レコーディングが生成されるフローチャートである。
【図３２】本発明に係る補足ボリューム生成部において要求された補足ボリュームが生成されるフローチャートである。
【図３３】本発明に係るレコーディングマネージャおよびストレージマネージャの構成の一例を示す図である。
【図３４】本発明に係る残量不足時ハンドラ登録部において残量不足時ハンドラが登録されるフローチャートである。
【図３５】本発明に係る残量不足時ハンドラ登録部において残量不足時ハンドラが呼び出されるフローチャートである。
【図３６】本発明に係る残量不足時ハンドラによってサービス録画が停止されるフローチャートである。
【図３７】本発明に係る残量不足時ハンドラによってサービス録画の終了時刻が修正されるフローチャートである。
【図３８】本発明に係る残量不足時ハンドラによってサービス録画のビットレートが修正されるフローチャートである。
【図３９】本発明に係る残量不足時ハンドラによって生成されたボリュームへサービス録画が移行されるフローチャートである。
【図４０】本発明に係るレコーディングマネージャおよびストレージマネージャの構成の一例を示す図である。
【国際調査報告】
2009520381.tif 000043
2009520381.tif 000044
2009520381.tif 000045