(57)【要約】  記録再生装置は、録画した映像を通常再生速度とは異なる再生速度で特殊再生させる場合に、実行中のアプリケーションプログラムを一時停止状態へ遷移させる、あるいは、アプリケーションプログラムによるグラフィックスの描画状態を一時的に非表示状態にすることで、アプリケーションプログラムが時間のかかる処理を実行していたとしても、予期しない挙動を抑制することを可能とする。
2008545284.tif 000002
【特許請求の範囲】
【請求項１】
記録媒体に記録されたコンテンツを再生するコンテンツ再生手段と、
プログラムを実行するとともに、前記プログラムの状態を制御するプログラム実行手段と、
前記コンテンツの再生速度を前記実行中のプログラムからの指示にもとづいて変更するコンテンツ再生速度変更手段と、
前記再生速度が通常再生速度から前記通常再生速度とは異なる再生速度になったこと、または前記通常再生速度とは異なる再生速度から前記通常再生速度になったことを検知する特殊再生検知手段と、
前記特殊再生検知手段の検知にもとづいて前記プログラム実行手段へ前記プログラムの状態の変更を指示する特殊再生時処理手段とを備え、
前記プログラム実行手段は、前記プログラムが前記特殊再生時処理手段から指示された状態となるように、前記プログラムの状態を制御する
ことを特徴とする記録再生装置。
【請求項２】
前記特殊再生検知手段が、前記再生速度が通常再生速度とは異なる再生速度になったことを検知した場合、
前記特殊再生時処理手段は、前記プログラム実行手段へ前記実行中のプログラムの状態を一時停止状態へ変更するよう指示するとともに、
前記プログラム実行手段は、前記プログラムの状態が一時停止状態となるように前記プログラムの実行を一時停止する
ことを特徴とする請求項１記載の記録再生装置。
【請求項３】
前記特殊再生検知手段が、前記再生速度が前記通常再生とは異なる再生速度から通常再生速度になったことを検知した場合、
前記特殊再生時処理手段は、前記プログラム実行手段へ前記一時停止状態にされているプログラムの状態を実行状態へ変更するよう指示するとともに、
前記プログラム実行手段は、前記プログラムの状態が実行状態となるように前記プログラムの実行を再開する
ことを特徴とする請求項２記載の記録再生装置。
【請求項４】
前記特殊再生時処理手段は、前記プログラム実行手段へ、前記プログラムのうち特定のプログラムのみの状態の変更を指示する
ことを特徴とする請求項１記載の記録再生装置。
【請求項５】
前記特定のプログラムは、前記コンテンツに多重化されている情報にもとづいて特定される
ことを特徴とする請求項４記載の記録再生装置。
【請求項６】
前記特定のプログラムは、前記プログラムのうち特権をもつプログラムによって事前に登録された情報にもとづいて特定される
ことを特徴とする請求項４記載の記録再生装置。
【請求項７】
記録媒体に記録されたコンテンツを再生するコンテンツ再生手段と、
プログラムを実行するとともに、前記プログラムの実行状態を制御するプログラム実行手段と、
プログラム実行手段にて実行されるプログラムにより描画されるグラフィックスの表示状態と非表示状態を制御するグラフィックス表示手段と、
前記コンテンツの再生速度を前記プログラムからの指示にもとづいて変更するコンテンツ再生速度変更手段と、
前記再生速度が通常再生速度から前記通常再生速度とは異なる再生速度になったこと、または前記通常再生速度とは異なる再生速度から前記通常再生速度になったことを検知する特殊再生検知手段と、
前記特殊再生検知手段の検知にもとづいて前記グラフィックス表示手段へ前記グラフィックスの状態の変更を指示する特殊再生時処理手段と
を備えることを特徴とする記録再生装置。
【請求項８】
前記特殊再生検知手段が、前記再生速度が通常再生速度から前記通常再生速度とは異なる再生速度になったことを検知した場合、
前記特殊再生時処理手段は、前記グラフィックス表示手段へ前記グラフィックスの状態を表示状態から非表示状態へ変更するよう指示する
ことを特徴とする請求項７記載の記録再生装置。
【請求項９】
前記特殊再生検知手段が、前記再生速度が前記通常再生速度とは異なる再生速度から前記通常再生速度になったことを検知した場合、
前記特殊再生時処理手段は、前記グラフィックス表示手段へ前記グラフィックスの状態を非表示状態から表示状態へ変更するよう指示する
ことを特徴とする請求項８記載の記録再生装置。
【請求項１０】
前記特殊再生時処理手段は、前記グラフィックス表示手段へ、前記プログラムのうち特定のプログラムにより描画されるグラフィックスのみの状態の変更を指示する
ことを特徴とする請求項７記載の記録再生装置。
【請求項１１】
前記特定のプログラムは、前記コンテンツに多重化されている情報にもとづいて特定される
ことを特徴とする請求項１０記載の記録再生装置。
【請求項１２】
前記特定のプログラムは、前記プログラムのうち特権をもつプログラムによって事前に登録された情報にもとづいて特定される
ことを特徴とする請求項１０記載の記録再生装置。
【請求項１３】
前記コンテンツおよび前記プログラムは、放送波から前記記録媒体に記録された情報である
ことを特徴とする請求項１または７記載の記録再生装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンテンツを蓄積するとともに、蓄積されたコンテンツを再生する記録再生装置に関する。殊に、映像、音声およびプログラム等のデータから構成されるコンテンツが相互に同期をとって放送波に多重されて送信され、その放送波を受信して映像、音声、データを蓄積するための仕組み、および、映像、音声とプログラム等のデータの同期を保持しつつコンテンツの早送り、巻戻し等の特殊再生を実行する仕組みに関する。
【背景技術】
【０００２】
放送局から送信される放送波は、多種多様なコンテンツを含んでいる。コンテンツは、通常の番組で用いられる映像、音声の他に、データを含む場合がある。データの送信方法にはいくつかの方式があり、大別して時系列に送信する方式と、一定の間隔ごとに繰り返し送信する方式がある。前者の時系列に送信する方式では、例えば、時間経過に合わせて連続するデータを順次送信していく。大量のデータを長時間かけて送信する場合に適しているが、送信タイミングで受信しなかった場合は二度と受信できないという欠点がある。一方、後者の一定の間隔ごとに繰り返し送信する方式では、同じデータを一定の期間何度も繰り返し送信する。同一データを送信している期間内に、繰り返し送信されているデータのいずれかひとつを受信すればよいので、受信タイミングが限定されないというメリットがある。
【０００３】
例えば、ＢＭＬに代表されるデータ放送や、ＤＳＭ−ＣＣデータカルーセルによるファイル送信がこの方式である。特に放送においては、受信者がいつ選局して受信を開始するかわからない。時系列に送信する方式では、受信開始が送信タイミングよりも遅れてしまって、データ取得に失敗した場合、二度と再取得できない。よって、放送波で映像、音声とともにアプリケーションプログラム等のデータを送信したい場合には、一定の間隔ごとに繰り返し送信される方式が好適である。
【０００４】
現在、上記のような方式で、映像、音声とアプリケーションプログラムとを含む放送波を受信し、アプリケーションプログラムを映像、音声と同期して実行するための仕様が策定され、運用されている。通常の映像、音声を見るだけでなく、送信されたアプリケーションプログラムを受信して端末に取り込み、それを実行して様々な付加機能を実現することができる。
【０００５】
このようにアプリケーションプログラムを送信して端末に取り込む方法はダウンロードとも呼ばれている。例えば、ＤＶＢ−ＭＨＰ（Ｄｉｇｉｔａｌ  Ｖｉｄｅｏ  Ｂｒｏａｄｃａｓｔｉｎｇ−Ｍｕｌｔｉｍｅｄｉａ  Ｈｏｍｅ  Ｐｌａｔｆｏｒｍ）  ＥＴＳＩ  ＥＳ  ２０１  ８１２  Ｖ１．１．１（２００３−１２）仕様が欧州で策定され、既に仕様に準拠した運用が開始されている。また米国ではケーブル放送環境で同様の仕組みを提供するＯＣＡＰ（ＯｐｅｎＣａｂｌｅ  Ａｐｐｌｉｃａｔｉｏｎ  Ｐｌａｔｆｏｒｍ）  ＯＣ−ＳＰ−ＯＣＡＰ１．０−Ｉ１４−０５０１１９仕様が策定されており、実際に運用開始予定である。これらの仕様では、アプリケーションプログラムがＪａｖａ言語で記述されている。端末上にはチューニングやグラフィックス表示のための様々なＡＰＩ（アプリケーションプログラミングインタフェース）が用意されており、ＪａｖａアプリケーションプログラムはＡＰＩを呼び出すことでそれらの機能を制御できる。
【０００６】
さらに、北米では、ＯＣＡＰ仕様にコンテンツの録画再生機能を追加するためのＯＣＡＰ−ＤＶＲ  ＯＣ−ＳＰ−ＯＣＡＰ−ＤＶＲ−Ｉ０１−０４０５２４仕様を策定中である。これはケーブルテレビ放送として送出される映像、音声およびそれらと同期して実行されるＪａｖａアプリケーションプログラムをコンテンツとして録画し、さらに録画したコンテンツを放送波から直接再生する場合と同じように再生するものである。アプリケーションプログラムは、放送波からの直接再生と同様に映像、音声と同期をとって再生される。
【０００７】
またＯＣＡＰ−ＤＶＲでは、ハードディスクや半導体メモリといった高速ランダムアクセス可能な記録媒体に放送されたコンテンツを録画することで、コンテンツの特殊再生を実現している。ここで、特殊再生とは、早送り、巻戻し、スロー、一時停止、スキップ等の、コンテンツを任意の速度で再生したり、任意の位置から再生したりする機能である。ＯＣＡＰ−ＤＶＲでは、放送波から端末に取り込んだアプリケーションプログラムがコンテンツの録画や特殊再生を制御できる。すなわち、端末上に録画や特殊再生のためのＡＰＩが用意されており、ＪａｖａアプリケーションプログラムがそのＡＰＩを呼び出すことで各機能を制御できる。
【０００８】
通常、放送波には、アプリケーションプログラムを映像、音声と同期して実行するために、同期のための制御情報があらかじめ多重化されている。アプリケーションプログラムは、その同期制御情報に従って逐次実行および終了されていく。これによって、映像、音声の特定のシーンに合わせて適切なアプリケーションプログラムを切り替えて実行可能になる。
【０００９】
また、ＯＣＡＰ−ＤＶＲ規格等においては、端末はその録画したコンテンツを特殊再生させる場合に、その特殊再生による映像および音声の再生に同期させてアプリケーションプログラムを実行させる必要がある。例えば、端末がコンテンツを早送りさせる場合に、その早送りする再生速度に合わせて、適切な時機にアプリケーションプログラムの起動／終了処理、および、アプリケーションプログラムによるグラフィックの描画処理等を実行する必要がある。
【００１０】
上述したように、ＯＣＡＰ−ＤＶＲ規格等においては、端末はその録画したコンテンツを特殊再生させる場合に、その特殊再生による映像および音声の再生に同期させてアプリケーションプログラムを実行させる必要がある。
【００１１】
しかしながら、端末がその録画したコンテンツの特殊再生映像および音声の再生に同期させてアプリケーションプログラムを実行させるのは、困難な場合がある。例えば、端末がその録画したコンテンツを早送りする場合に、映像および音声の再生速度に合わせて、適切な時機にアプリケーションプログラムの起動／終了処理、および、アプリケーションプログラムによるグラフィックの描画処理等を実行することは、一般に困難である。アプリケーションプログラムには、このような実行に時間を要する処理が一般的に含まれる。また、アプリケーションプログラムが処理速度の低速な端末上で実行される場合は、例えば、アプリケーションプログラムの起動／終了処理、および、アプリケーションプログラムによるグラフィックス描画処理は遅延してしまって、アプリケーションプログラムは予期しない挙動を示すこととなる。
【００１２】
本発明は、上述の課題を解決するために、端末がその録画したコンテンツの特殊再生による映像および音声の再生に同期させてアプリケーションプログラムを実行させる場合であっても、アプリケーションプログラムの予期しない挙動を抑制するための記録再生装置を提供することを目的とする。
【発明の開示】
【００１３】
上記目的を達成するために、本発明の記録再生装置は、記録媒体に記録されたコンテンツを再生するコンテンツ再生手段と、プログラムを実行するとともに、前記プログラムの状態を制御するプログラム実行手段と、前記コンテンツの再生速度を前記実行中のプログラムからの指示にもとづいて変更するコンテンツ再生速度変更手段と、前記再生速度が通常再生速度から前記通常再生速度とは異なる再生速度になったこと、または前記通常再生速度とは異なる再生速度から前記通常再生速度になったことを検知する特殊再生検知手段と、前記特殊再生検知手段の検知にもとづいて前記プログラム実行手段へ前記プログラムの状態の変更を指示する特殊再生時処理手段とを備え、前記プログラム実行手段は、前記プログラムが前記特殊再生時処理手段から指示された状態となるように、前記プログラムの状態を制御することを特徴とする。
【００１４】
例えば、前記特殊再生検知手段が、前記再生速度が通常再生速度とは異なる再生速度になったことを検知した場合、前記特殊再生時処理手段は、前記プログラム実行手段へ前記実行中のプログラムの状態を一時停止状態へ変更するよう指示するとともに、前記プログラム実行手段は、前記プログラムの状態が一時停止状態となるように前記プログラムの実行を一時停止する。
【００１５】
このように、録画されたコンテンツが特殊再生される場合に、アプリケーションプログラムが一時停止状態へ遷移されるため、アプリケーションプログラムの予期しない挙動を抑制することが可能となる。また、殊に早送り、および、巻戻し時において、ハードディスク、ＢＤ（Ｂｌｕ−ｒａｙ  Ｄｉｓｃ）、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｃ）、ＳＤ（Ｓｅｃｕｒｅ  Ｄｉｇｉｔａｌ）メモリカード等に代表される半導体メモリ等に対する高負荷なアクセスを低減し、記録媒体の劣化を低減することが可能となる。
【００１６】
また、前記特殊再生検知手段が、前記再生速度が前記通常再生とは異なる再生速度から通常再生速度になったことを検知した場合、前記特殊再生時処理手段は、前記プログラム実行手段へ前記一時停止状態にされているプログラムの状態を実行状態へ変更するよう指示するとともに、前記プログラム実行手段は、前記プログラムの状態が実行状態となるように前記プログラムの実行を再開することを特徴としてもよい。
【００１７】
また、前記特殊再生時処理手段は、前記プログラム実行手段へ、前記プログラムのうち特定のプログラムのみの状態の変更を指示することを特徴としてもよい。
【００１８】
また、前記特定のプログラムは、前記コンテンツに多重化されている情報にもとづいて特定されることを特徴としてもよい。
【００１９】
また、前記特定のプログラムは、前記プログラムのうち特権をもつプログラムによって事前に登録された情報にもとづいて特定されることを特徴としてもよい。
【００２０】
また、上記目的を達成するために、本発明の記録再生装置は、記録媒体に記録されたコンテンツを再生するコンテンツ再生手段と、プログラムを実行するとともに、前記プログラムの実行状態を制御するプログラム実行手段と、プログラム実行手段にて実行されるプログラムにより描画されるグラフィックスの表示状態と非表示状態を制御するグラフィックス表示手段と、前記コンテンツの再生速度を前記プログラムからの指示にもとづいて変更するコンテンツ再生速度変更手段と、前記再生速度が通常再生速度から前記通常再生速度とは異なる再生速度になったこと、または前記通常再生速度とは異なる再生速度から前記通常再生速度になったことを検知する特殊再生検知手段と、前記特殊再生検知手段の検知にもとづいて前記グラフィックス表示手段へ前記グラフィックスの状態の変更を指示する特殊再生時処理手段とを備えることを特徴とする。
【００２１】
例えば、前記特殊再生検知手段が、前記再生速度が通常再生速度から前記通常再生速度とは異なる再生速度になったことを検知した場合、前記特殊再生時処理手段は、前記グラフィックス表示手段へ前記グラフィックスの状態を表示状態から非表示状態へ変更するよう指示する。
【００２２】
このように、録画されたコンテンツが特殊再生される場合に、アプリケーションプログラムによるグラフィックス描画が一時的に無効にされるため、アプリケーションプログラムの予期しない挙動を抑制することが可能となる。また、殊に早送り、および、巻戻し時において、ハードディスク、ＢＤ（Ｂｌｕ−ｒａｙ  Ｄｉｓｃ）、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｃ）、ＳＤ（Ｓｅｃｕｒｅ  Ｄｉｇｉｔａｌ）メモリカード等に代表される半導体メモリ等に対する高負荷なアクセスを低減し、記録媒体の劣化を低減することが可能となる。
【００２３】
また、前記特殊再生検知手段が、前記再生速度が前記通常再生速度とは異なる再生速度から前記通常再生速度になったことを検知した場合、前記特殊再生時処理手段は、前記グラフィックス表示手段へ前記グラフィックスの状態を非表示状態から表示状態へ変更するよう指示することを特徴としてもよい。
【００２４】
また、前記特殊再生時処理手段は、前記グラフィックス表示手段へ、前記プログラムのうち特定のプログラムにより描画されるグラフィックスのみの状態の変更を指示することを特徴としてもよい。
【００２５】
また、前記特定のプログラムは、前記コンテンツに多重化されている情報にもとづいて特定されることを特徴としてもよい。
【００２６】
また、前記特定のプログラムは、前記プログラムのうち特権をもつプログラムによって事前に登録された情報にもとづいて特定されることを特徴としてもよい。
【００２７】
また、前記コンテンツおよび前記プログラムは、放送波から前記記録媒体に記録された情報であることを特徴としてもよい。
【００２８】
なお、本発明は、上記記録再生装置として実現することができるだけでなく、記録再生方法やプログラム、そのプログラムを格納する記憶媒体としても実現することができる。
【００２９】
明細書と図面と請求項とを含む、２００５年７月６日に出願された、米国仮出願番号６０／６９６５０３を本願に引用して援用する。
【発明を実施するための最良の形態】
【００３０】
第１の発明は、放送波を記録するとともに、記録された放送波を再生する録画再生装置であって、記録された放送波の通常再生から特殊再生への移行、あるいは、特殊再生から通常再生への復帰を判定する特殊再生開始／終了判定手段と、特殊再生区間において一時停止状態へ移行させるプログラム、あるいは、一時停止状態から復帰させるプログラムを特定する特殊再生区間処理管理手段と、前記プログラムを前記一時停止状態へ移行させるように、あるいは、前記一時停止状態から復帰させるように要求する特殊再生区間処理手段と、を備え、前記特殊再生開始／終了判定手段は、前記特殊再生区間処理管理手段へ、通常再生から特殊再生への移行、あるいは、特殊再生から通常再生への復帰を通知して、前記特殊再生区間処理管理手段は、前記特殊再生区間処理手段へ、前記一時停止状態へ移行させる前記プログラム、あるいは、前記一時停止状態から復帰させる前記プログラムを通知する、ことを特徴とする、録画再生装置である。
【００３１】
第２の発明は、放送波を記録するとともに、記録された放送波を再生する録画再生装置であって、記録された放送波の通常再生から特殊再生への移行、あるいは、特殊再生から通常再生への復帰を判定する特殊再生開始／終了判定手段と、特殊再生区間において非表示状態へ移行させるプログラム、あるいは、非表示状態から復帰させるプログラムを特定する特殊再生区間処理管理手段と、前記プログラムを前記非表示状態へ移行させるように、あるいは、前記非表示状態から復帰させるように要求する特殊再生区間処理手段と、を備え、前記特殊再生開始／終了判定手段は、前記特殊再生区間処理管理手段へ、通常再生から特殊再生への移行、あるいは、特殊再生から通常再生への復帰を通知して、前記特殊再生区間処理管理手段は、前記特殊再生区間処理手段へ、前記非表示状態へ移行させる前記プログラム、あるいは、前記非表示状態から復帰させる前記プログラムを通知する、ことを特徴とする、録画再生装置である。
【００３２】
第３の発明は、放送波を記録するとともに、記録された放送波を再生する録画再生方法であって、記録された放送波の通常再生から特殊再生への移行、あるいは、特殊再生から通常再生への復帰を判定する特殊再生開始／終了判定ステップと、特殊再生区間において一時停止状態へ移行させるプログラム、あるいは、一時停止状態から復帰させるプログラムを特定する特殊再生区間処理管理ステップと、前記プログラムを前記一時停止状態へ移行させるように、あるいは、前記一時停止状態から復帰させるように要求する特殊再生区間処理ステップと、を備え、前記特殊再生開始／終了判定ステップは、前記特殊再生区間処理管理ステップへ、通常再生から特殊再生への移行、あるいは、特殊再生から通常再生への復帰を通知して、前記特殊再生区間処理管理ステップは、前記特殊再生区間処理ステップへ、前記一時停止状態へ移行させる前記プログラム、あるいは、前記一時停止状態から復帰させる前記プログラムを通知する、ことを特徴とする、録画再生方法である。
【００３３】
第４の発明は、放送波を記録するとともに、記録された放送波を再生する録画再生方法であって、記録された放送波の通常再生から特殊再生への移行、あるいは、特殊再生から通常再生への復帰を判定する特殊再生開始／終了判定ステップと、特殊再生区間において非表示状態へ移行させるプログラム、あるいは、非表示状態から復帰させるプログラムを特定する特殊再生区間処理管理ステップと、前記プログラムを前記非表示状態へ移行させるように、あるいは、前記非表示状態から復帰させるように要求する特殊再生区間処理ステップと、を備え、前記特殊再生開始／終了判定ステップは、前記特殊再生区間処理管理ステップへ、通常再生から特殊再生への移行、あるいは、特殊再生から通常再生への復帰を通知して、前記特殊再生区間処理管理ステップは、前記特殊再生区間処理ステップへ、前記非表示状態へ移行させる前記プログラム、あるいは、前記非表示状態から復帰させる前記プログラムを通知する、ことを特徴とする、録画再生方法である。
【００３４】
（実施の形態１）
以下に、本発明の第１の実施形態に係る装置および方法を、図面を参照しながら説明する。本発明は、任意の媒体で送受信されるコンテンツの録画および再生を対象としたものであるが、本実施例ではケーブルテレビ放送システムでの実施の形態を例にとって説明する。ケーブルテレビ放送システムでは、本発明の放送録画再生装置（記録再生装置）は一般的に端末装置と呼ばれる。
【００３５】
図１は、放送システムを構成する装置の関係を表したブロック図であり、放送局側システム（ヘッドエンド）１０１および三個の端末装置Ａ１１１、端末装置Ｂ１１２、端末装置Ｃ１１３で構成される。放送局側システムと各端末装置間の結合１２１は、ケーブルシステムでは同軸ケーブルや光ファイバでの有線結合である。図１では、１つの放送局側システムに対して三つの端末装置が結合されているが、端末装置の数は任意である。
【００３６】
放送局側システム１０１は、複数の端末装置に対して映像・音声・データ放送用データ等の情報を放送信号に含めて送信する。放送信号は放送システムの運用既定や、放送システムが運用される国・地域の法律により定められた周波数帯域内の周波数を利用して伝送される。
【００３７】
本実施例のケーブルシステムでは、放送信号伝送に利用する周波数帯域は、そのデータの内容と伝送方向（上り、下り）ごとに分割して割り当てる。図２は、周波数帯域の分割の一例を示す表である。周波数帯域は、Ｏｕｔ  Ｏｆ  Ｂａｎｄ（略称ＯＯＢ）とＩｎ−Ｂａｎｄの２種類に大別される。５〜１３０ＭＨｚがＯＯＢに割り当てられ、主に放送局側システム１０１と端末装置Ａ１１１、端末装置Ｂ１１２、端末装置Ｃ１１３間の上下双方向データのやり取りに使用される。１３０ＭＨｚ〜８６４ＭＨｚはＩｎ−Ｂａｎｄに割り当てられ、主として、映像・音声を含む下りのみの放送チャンネルに使用される。ＯＯＢではＱＰＳＫ変調方式が、Ｉｎ−ＢａｎｄはＱＡＭ６４またはＱＡＭ２５６変調方式が使用される。変調方式技術については、本発明に関与が薄い公知技術であるので、詳細な説明は省略する。
【００３８】
図３は、ＯＯＢ周波数帯域のさらに詳細な使用の一例である。７０ＭＨｚ〜７４ＭＨｚは放送局側システム１０１からの下りデータ送信に使用され、すべての端末装置Ａ１１１、端末装置Ｂ１１２、端末装置Ｃ１１３が、放送局側システム１０１から等しいデータを受け取ることになる。一方、１０．０ＭＨｚ〜１０．１ＭＨｚは端末装置Ａ１１１から放送局側システム１０１への上りデータ送信に使用され、１０．１ＭＨｚ〜１０．２ＭＨｚは端末装置Ｂ１１２から放送局側システム１０１への上りデータ送信に使用され、１０．２ＭＨｚ〜１０．３ＭＨｚは端末装置Ｃ１１３から放送局側システム１０１への上りデータ送信に使用される。これにより、各端末装置固有のデータを各端末装置Ａ１１１、端末装置Ｂ１１２、端末装置Ｃ１１３から放送局側システム１０１に独立して送信することができる。
【００３９】
図４は、Ｉｎ−Ｂａｎｄの周波数帯に対する使用の一例である。１５０〜１５６ＭＨｚと１５６〜１６２ＭＨｚはそれぞれテレビチャンネル１とテレビチャンネル２に割り当てられ、以降、６ＭＨｚ間隔でテレビチャンネルが割り当てられている。３１０ＭＨｚ以降は、１ＭＨｚ単位でラジオチャンネルに割り当てられている。これらの各チャンネルはアナログ放送として使用してもディジタル放送として使用してもよい。ディジタル放送の場合は、ＭＰＥＧ２仕様にもとづいたＴＳパケット形式で伝送され、音声や映像に加え、各種データ放送用データやＥＰＧを構成するための番組編成情報も送信することができる。
【００４０】
放送局側システム１０１は、以上に説明した周波数帯域を利用して端末装置に適切な放送信号を送信するため、ＱＰＳＫ変調部やＱＡＭ変調部等をもつ。また、端末装置からのデータを受信するため、ＱＰＳＫ復調器をもつ。また、放送局側システム１０１は、これら変調部および復調部に関連する様々な機器をもつと考えられる。しかし、本発明は主として端末装置に関わるので、詳細な説明は省略する。
【００４１】
一方、端末装置Ａ１１１、端末装置Ｂ１１２、端末装置Ｃ１１３は、放送局側システム１０１からの放送信号を受信し再生するために、ＱＡＭ復調部やＱＰＳＫ復調部を持つ。また、放送局側システム１０１に対して、各端末装置固有のデータを送信するためにＱＰＳＫ変調部を持つ。本発明では、端末装置は放送録画再生装置（記録再生装置）であり、その詳細な構成は後述する。
【００４２】
放送局側システム１０１は、ＭＰＥＧ２トランスポートストリームを変調して放送信号に含めて伝送する。端末装置は放送信号を受信し、復調してＭＰＥＧ２トランスポートストリームを再現し、その中から必要な情報を抽出して用いる。端末装置に存在するデバイスの機能と接続の構成を説明するため、まずＭＰＥＧ２トランスポートストリームの構成を簡単に述べる。
【００４３】
図５はＴＳパケットの構成を表す図である。ＴＳパケット５００は１８８バイトの長さを持ち、ヘッダ５０１、アダプテーションフィールド５０２、ペイロード５０３からなる。ヘッダ５０１はＴＳパケットの制御情報を保持する。４バイトの長さを持ち、５０４で表される構成をとる。この中に“Ｐａｃｋｅｔ  ＩＤ（以下ＰＩＤ）”と記述されるフィールドを持ち、このＰＩＤの値によって、ＴＳパケットの識別を行う。アダプテーションフィールド５０２は時刻情報等の付加的な情報を保持する。アダプテーションフィールド５０２の存在は必須ではなく、存在しない場合もある。ペイロード５０３は映像・音声やデータ放送用データ等、ＴＳパケットが伝送する情報を保持する。
【００４４】
図６はＭＰＥＧ２トランスポートストリームの模式図である。ＴＳパケットはそのペイロードに映像や音声、データ放送用のデータ等様々な情報を保持する。ＴＳパケット６０１およびＴＳパケット６０３はヘッダにＰＩＤ１００を保持し、ペイロードに映像１に関する情報を保持する。ＴＳパケット６０２およびＴＳパケット６０５はヘッダにＰＩＤ２００を保持し、ペイロードにデータ１に関する情報を保持する。ＴＳパケット６０４はヘッダにＰＩＤ３００を保持し、ペイロードに音声１に関する情報を保持する。このように様々な種類のデータをペイロードに保持したＴＳパケットを混合して一連のシーケンスとして送出することを多重と呼ぶ。ＭＰＥＧ２トランスポートストリーム６００はＴＳパケット６０１〜６０５を多重した構成の一例である。
【００４５】
同一ＰＩＤをもつＴＳパケットは同一種類の情報を保持する。そのため、端末装置は多重されたＴＳパケットを受信して、各ＴＳパケットが保持する情報をＰＩＤごとに抽出することで、映像・音声を再現したり、番組編成情報等のデータを再現したりできる。図６においては、ＴＳパケット６０１およびＴＳパケット６０３は共に映像１に関する情報を伝送し、またＴＳパケット６０２およびＴＳパケット６０５は共にデータ１に関する情報を伝送する。
【００４６】
ここで、ペイロードに内包される各種データの形式について説明する。
映像および音声は、ＰＥＳ（Ｐａｃｋｅｔｉｚｅｄ  Ｅｌｅｍｅｎｔａｒｙ  Ｓｔｒｅａｍ）パケットと呼ばれる形式で表現される。ＰＥＳパケットはある時間帯の映像情報または音声情報を含み、放送録画再生装置は、ＰＥＳパケットを受信することで、そのＰＥＳパケットが内包する映像・音声情報を画面・スピーカに出力することができる。放送局がＰＥＳパケットを途切れなく伝送することで、放送録画再生装置は、映像・音声を途切れなく再生し続けることが可能となる。ＰＥＳパケットは、実際に伝送される際、一つのＴＳパケットのペイロードよりも大きいサイズをもつ場合は分割されて複数のＴＳパケットのペイロードに格納される。図７はＰＥＳパケットを伝送する際の分割例を表す。ＰＥＳパケット７０１は一つのＴＳパケット内のペイロードに格納して伝送するには大きいため、ＰＥＳパケット分割Ａ７０２ａ、ＰＥＳパケット分割Ｂ７０２ｂ、ＰＥＳパケット分割Ｃ７０２ｃに分割され、同一ＰＩＤをもつ三つのＴＳパケット７０３〜７０５によって伝送される。実際には、映像や音声は、複数のＰＥＳパケットのペイロードに含まれるデータを結合して得られるエレメンタリストリーム（ＥＳ）として得られる。このエレメンタリストリームは、ＭＰＥＧ２ Ｖｉｄｅｏ規格やＭＰＥＧ１、２ Ａｕｄｉｏ規格で定義されるディジタル化映像、音声の形式になっている。
【００４７】
一方、番組編成情報やデータ放送用のデータ等の情報はＭＰＥＧ２セクションと呼ばれる形式を用いて表現される。ＭＰＥＧ２セクションは実際に伝送される際、一つのＴＳパケットのペイロードよりも大きいサイズをもつ場合は分割されて複数のＴＳパケットのペイロードに格納される。図８はＭＰＥＧ２セクションを伝送する際の分割例を表す。ＭＰＥＧ２セクション８０１は一つのＴＳパケット内のペイロードに格納して伝送するには大きいため、セクション分割Ａ８０２ａ、セクション分割Ｂ８０２ｂ、セクション分割Ｃ８０２ｃに分割され、同一ＰＩＤをもつ三つのＴＳパケット８０３〜８０５によって伝送される。
【００４８】
図９はＭＰＥＧ２セクションの構造を表現する。ＭＰＥＧ２セクション９００はヘッダ９０１およびペイロード９０２から構成される。ヘッダ９０１はＭＰＥＧ２セクションの制御情報を保持する。その構成はヘッダ構成９０３によって表現される。ペイロード９０２はＭＰＥＧ２セクション９００が伝送するデータを保持する。ヘッダ構成９０３に存在するｔａｂｌｅ＿ｉｄはＭＰＥＧ２セクションの種類を表現し、さらにｔａｂｌｅ＿ｉｄ＿ｅｘｔｅｎｓｉｏｎはｔａｂｌｅ＿ｉｄが等しいＭＰＥＧ２セクション同士を区別する際に用いられる拡張識別子である。ＭＰＥＧ２セクションの使用例として、図１０に番組編成情報を伝送する場合を挙げる。この例では、行１００４に記載されるように、放送信号の復調に必要な情報はヘッダ構成９０３内のｔａｂｌｅ＿ｉｄが６４であるＭＰＥＧ２セクションに記載され、さらにそのＭＰＥＧ２セクションはＰＩＤに１６が付与されたＴＳパケットによって伝送される。
【００４９】
ＭＰＥＧ２セクションの場合、ＰＥＳ形式は存在しない。そのため、ＭＰＥＧ２トランスポートストリームの中の同一ＰＩＤによって識別されるＴＳパケットのペイロードを結合したものをエレメンタリーストリーム（ＥＳ）とする。例えば、図８において、ＭＰＥＧ２セクション８０１を分割して伝送しているＴＳパケット８０３〜８０５はすべてＰＩＤが２００で識別される。これはＭＰＥＧ２セクション８０１を伝送するＥＳである、と言うことができる。
【００５０】
ＭＰＥＧ２トランスポートストリーム内にはさらにプログラムという概念が存在する。プログラムはＥＳの集合として表現され、複数のＥＳをまとめて扱いたい場合に利用される。プログラムを利用すると、映像・音声や、それに付随するデータ放送用データ等を一まとめに扱うことが可能となる。例えば、同時に再生したい映像・音声をまとめて扱う場合、映像ＥＳと、音声ＥＳをプログラムとしてまとめることで、放送録画再生装置はこれら二つのＥＳを１つの番組として同時に再生すべきであることがわかる。
【００５１】
プログラムを表現するために、ＭＰＥＧ２ではＰＭＴ（Ｐｒｏｇｒａｍ  Ｍａｐ  Ｔａｂｌｅ）およびＰＡＴ（Ｐｒｏｇｒａｍ  Ａｓｓｏｃｉａｔｉｏｎ  Ｔａｂｌｅ）と呼ばれる二つのテーブルが利用される。詳細な説明はＩＳＯ／ＩＥＣ１３８１８−１、“ＭＰＥＧ２  Ｓｙｓｔｅｍｓ”仕様を参照されたい。以下ではＰＭＴおよびＰＡＴに関して簡単に説明する。
【００５２】
ＰＭＴはＭＰＥＧ２トランスポートストリーム中に、プログラムの数だけ含まれるテーブルである。ＰＭＴはＭＰＥＧ２セクションとして構成され、ｔａｂｌｅ＿ｉｄは２である。ＰＭＴにはプログラムの識別に用いられるプログラムナンバーとプログラムの付加情報、さらにプログラムに属するＥＳに関する情報を保持する。ＰＭＴの例を図１１に挙げる。１１００はプログラムナンバーである。プログラムナンバーは同一トランスポートストリーム内でプログラムに一意に割り当てられ、ＰＭＴの識別に用いられる。行１１１１〜１１１５は個々のＥＳに関する情報を表現する。列１１０１はＥＳのタイプであり、“映像”、“音声”、“データ”等が指定される。列１１０２はＥＳを構成するＴＳパケットのＰＩＤである。列１１０３はＥＳに関する付加情報である。例えば、行１１１１に表されるＥＳは、音声ＥＳであり、ＰＩＤが５０１１であるＴＳパケットによって伝送される。
【００５３】
ＰＡＴはＭＰＥＧ２トランスポートストリームに一つだけ存在するテーブルである。ＰＡＴはＭＰＥＧ２セクションとして構成され、ｔａｂｌｅ＿ｉｄは０であり、ＰＩＤが０であるＴＳパケットによって伝送される。ＰＡＴには、ＭＰＥＧ２トランスポートストリームの識別に用いられるｔｒａｎｓｐｏｒｔ＿ｓｔｒｅａｍ＿ｉｄと、ＭＰＥＧ２トランスポートストリーム内に存在するプログラムを表現するすべてのＰＭＴに関する情報を保持する。ＰＡＴの例を図１２に挙げる。１２００はｔｒａｎｓｐｏｒｔ＿ｓｔｒｅａｍ＿ｉｄである。ｔｒａｎｓｐｏｒｔ＿ｓｔｒｅａｍ＿ｉｄはＭＰＥＧ２トランスポートストリームの識別に用いられる。行１２１１〜１２１３はプログラムに関する情報を表現する。列１２０１はプログラムナンバーである。列１２０２はプログラムに対応するＰＭＴを伝送するＴＳパケットのＰＩＤである。例えば、行１２１１に表されるプログラムのＰＭＴは、プログラムナンバーが１０１であり、対応するＰＭＴはＰＩＤが５０１であるＴＳパケットによって伝送される。
【００５４】
端末装置があるプログラムを再生する場合は、ＰＡＴおよびＰＭＴを用いてプログラムを構成する映像・音声を特定し、それらを再生する。例えば、図１２のＰＡＴおよび図１１のＰＭＴを伝送するＭＰＥＧ２トランスポートストリームに関して、プログラムナンバーが１０１であるプログラムに属する映像・音声の再生を行う場合は以下のような手順をとる。まずＰＩＤが“０”であるＴＳパケットより、ｔａｂｌｅ＿ｉｄが“０”のＭＰＥＧ２セクションとして伝送されるＰＡＴを取得する。ＰＡＴよりプログラムナンバーが“１０１”であるプログラムを探索し、行１２１１を得る。行１２１１より、プログラムナンバーが“１０１”であるプログラムのＰＭＴを伝送するＴＳパケットのＰＩＤ“５０１”を得る。次いでＰＩＤが“５０１”であるＴＳパケットより、ｔａｂｌｅ＿ｉｄが“２”のＭＰＥＧ２セクションとして伝送されるＰＭＴを取得する。ＰＭＴより、音声のＥＳ情報である行１１１１および映像のＥＳ情報である行１１１２を得る。行１１１１より、音声ＥＳを伝送するＴＳパケットのＰＩＤ“５０１１”を得る。また行１１１２より、映像ＥＳを伝送するＴＳパケットのＰＩＤ“５０１２”を得る。次いでＰＩＤ“５０１１”のＴＳパケットより音声用ＰＥＳパケットを、ＰＩＤ“５０１２”のＴＳパケットより映像用ＰＥＳパケットを取得する。これにより、再生対象となる映像・音声のＥＳパケットを取得することが可能となり、プログラムナンバー１０１を構成する映像と音声を再生することができる。
【００５５】
なお、ＭＰＥＧ２トランスポートストリームは暗号化されている場合がある。これは限定視聴とも呼ばれる仕組みである。例えば、ある映像・音声情報を伝送するＰＥＳパケットに対して暗号化処理を行うことで、その暗号を解読できる特定視聴者のみが視聴できるようになる。暗号を解読して映像や音声を視聴するために、視聴者はデスクランブラと呼ばれるデバイスを用いて暗号解除を行う。例えば、ＯＣＡＰ対応の端末装置は、デスクランブラを内蔵したカード型のアダプタを利用する。ケーブルテレビのオペレータは、視聴者ごとに特定のプログラムを解読できるように設定したアダプタを配布し、視聴者はそのアダプタを端末装置に挿入する。すると、アダプタは、暗号解除鍵等の暗号解除情報や各契約者の契約情報を元に、特定のプログラムに関して暗号を解除する。暗号解除の方式や、暗号解除鍵の入手方法はアダプタ依存であり、本発明の実現には影響しない。
【００５６】
ここまでＭＰＥＧ２仕様に関する簡単な説明を行ったが、ここで、単語の詳細な定義を行う。本発明に関して、「プログラム」という単語が二種類存在する。一つはＭＰＥＧ２仕様に登場する「プログラム」であり、もう一つはＣＰＵが実行するコードの集合という意味での「プログラム」である。前者に関しては、運用規定で用いられる「サービス」という単語と同義であるため、混乱を避けるため、以降、前者を「サービス」と呼び、後者を単に「プログラム」とよぶ。さらに後者に関して、特にＪａｖａ言語で記述された「プログラム」を「Ｊａｖａプログラム」とよぶ。
【００５７】
以上、本発明に関わる、ＭＰＥＧ２仕様にて決定されるいくつかの一般的な情報に関して説明を行った。以降、本実施の形態で用いる放送録画再生端末に関して詳細に説明する。
【００５８】
図１３は、本実施例の放送録画再生装置の一般的なハードウェア構成を表すブロック図であり、すなわち図１における端末装置１１１、１１２、１１３の具体的な内部構成である。１３００は放送録画再生装置であり、チューナ１３０１、ＴＳデコーダ（ＴＳ  Ｄｅｍｕｌｔｉｐｌｅｘｅｒ）１３０２、ＡＶデコーダ１３０３、スピーカ１３０４、ディスプレイ１３０５、ＣＰＵ１３０６、２次記憶部１３０７、１次記憶部１３０８、ＲＯＭ１３０９、入力部１３１０、アダプタ１３１１、ＡＶエンコーダ１３１２、多重器（ＭＰＥＧ２  Ｔｒａｎｓｐｏｒｔ  Ｓｔｒｅａｍ  Ｍｕｌｔｉｐｌｅｘｅｒ等）１３１３、グラフィックスプレーン１３１４で構成される。なお本実施例は、ＯＣＡＰ−ＤＶＲ仕様で実現される放送録画再生端末を拡張して得られるものであり、基本的なハードウェア構成はＯＣＡＰ−ＤＶＲ仕様で要求されるものとほぼ同じである。
【００５９】
チューナ１３０１は、ＣＰＵ１３０６が指定する周波数などのチューニング情報に従って、放送局側システム１０１から伝送される変調された放送信号を復調するデバイスである。ここで、チューニング情報は、周波数や変調方式などが特定可能な情報である。チューナ１３０１が復調した結果得られるＭＰＥＧ２トランスポートストリームは、暗号解除機能をもつアダプタ１３１１を経て、ＴＳデコーダ１３０２に送信される。
【００６０】
ＴＳデコーダ１３０２は、ＣＰＵ１３０６が指定するＰＩＤ、セクションフィルタ条件等の指定にもとづいてＭＰＥＧ２トランスポートストリームから指定条件に合致するＰＥＳパケットやＭＰＥＧ２セクションを選別する機能をもつデバイスである。放送を受信してサービスを録画せずに再生する場合は、アダプタ１３１１が出力するＭＰＥＧ２トランスポートストリームがＴＳデコーダ１３０２に入力される。一方、２次記憶部１３０７に録画されているサービスを再生する場合は、２次記憶部１３０７が出力するＭＰＥＧ２トランスポートストリームがＴＳデコーダ１３０２に入力される。いずれの入力を受けるかは、ＣＰＵ１３０６によって制御される。
【００６１】
ＴＳデコーダ１３０２が選別した映像および音声のＰＥＳパケットは、ＡＶデコーダ１３０３に出力される。また、ＴＳデコーダ１３０２が選別したＭＰＥＧ２セクションは、１次記憶部１３０８にＤＭＡ（Ｄｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ）転送され、ＣＰＵ１３０６が実行するプログラムによって利用される。
【００６２】
ＡＶデコーダ１３０３はエンコードされた映像ＥＳおよび音声ＥＳをデコードする機能をもつデバイスである。ＡＶデコーダはＴＳデコーダから転送される音声および映像情報を伝送するＰＥＳパケットからＥＳを取り出してデコードする。ＡＶデコーダ１３０３がデコードして得られたａｕｄｉｏ信号およびｖｉｄｅｏ信号は、サービスの再生時にはスピーカ１３０４、ディスプレイ１３０５に出力されるが、一方、サービスの録画時にはＡＶエンコーダ１３１２へ出力される。いずれの出力経路を取るかは、ユーザの指示に従ってＣＰＵ１３０６によって制御される。
【００６３】
スピーカ１３０４は、ＡＶデコーダ１３０３から出力された音声を再生する。
ディスプレイ１３０５は、ＡＶデコーダ１３０３から出力された映像を再生するとともに、ＣＰＵによって描画されたグラフィックスプレーン１３１４上のグラフィックスを表示する。
【００６４】
ＣＰＵ１３０６は放送録画再生装置上で動作するプログラムを実行する。ＣＰＵ１３０６は、ＲＯＭ１３０９に内蔵されるプログラムを実行する。あるいは、放送信号やネットワークよりダウンロードされ１次記憶部１３０８に保持されているプログラムも実行する。あるいは、放送信号やネットワークよりダウンロードされ２次記憶部１３０７に保存されているプログラムも実行する。そして実行するプログラムの指示に従い、チューナ１３０１、ＴＳデコーダ１３０２、ＡＶデコーダ１３０３、スピーカ１３０４、ディスプレイ１３０５、２次記憶部１３０７、１次記憶部１３０８、ＲＯＭ１３０９、入力部１３１０、アダプタ１３１１、ＡＶエンコーダ１３１２、多重器１３１３、グラフィックスプレーン１３１４を制御する。また、ＣＰＵ１３０６は端末装置１３００内に存在するデバイスだけでなく、アダプタ１３１１内のデバイスと通信し、アダプタ１３１１を制御することが可能である。
【００６５】
２次記憶部１３０７は機器の電源が遮断されても記憶が消去されない記憶装置である。例えばＦＬＡＳＨ−ＲＯＭ等の不揮発性メモリ、ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）、ＣＤ−ＲやＤＶＤ−Ｒ等の書き換え可能のメディア等、端末装置１３００の電源断の際にも情報が消去されない機器によって構成され、ＣＰＵ１３０６の指示により情報の保存を行う。
【００６６】
１次記憶部１３０８は、ＣＰＵ１３０６やＤＭＡ転送可能なデバイスの指示に従って情報を一時的に保存する機能をもつデバイスであり、ＲＡＭ等によって構成される。
【００６７】
ＲＯＭ１３０９は、書き換え不可能なメモリーデバイスであり、具体的にはＲＯＭやＣＤ−ＲＯＭ、ＤＶＤ等で構成される。ＲＯＭ１３０９には、ＣＰＵ１３０６が実行するプログラムが格納されている。
【００６８】
入力部１３１０は、具体的には、フロントパネルやリモコン受信機で構成され、ユーザからの入力を受け付ける。図１４は、フロントパネルで入力部１３１０を構成した場合の一例である。フロントパネル１４００は七つのボタン、上カーソルボタン１４０１、下カーソルボタン１４０２、左カーソルボタン１４０３、右カーソルボタン１４０４、ＯＫボタン１４０５、取消ボタン１４０６、ＥＰＧボタン１４０７、モード切換ボタン１４０８を備えている。ユーザがボタンを押下すると、押下されたボタンの識別子が、ＣＰＵ１３０６に通知される。
【００６９】
アダプタ１３１１は、Ｉｎ−ｂａｎｄ周波数帯で伝送されるＭＰＥＧ２トランスポートストリームにかけられた暗号を解除する装置で、1つ以上のデスクランブラを搭載する。アダプタ１３１１にはチューナ１３０１ａが出力するＭＰＥＧ２トランスポートストリームが入力され、ＣＰＵ１３０６が指定したＰＩＤをもつＴＳパケットに対して暗号解除を行う。アダプタ１３１１は、暗号を解除したＭＰＥＧ２トランスポートストリームをＴＳデコーダ１３０２に出力する。
【００７０】
さらに、アダプタ１３１１は、ＯＯＢ周波数帯で伝送されるデータの形式変換も行う。ＯＯＢで伝送される情報はＱＰＳＫ変調方式で変調される。下り方向の伝送に関しては、ＱＰＳＫ復調器１３０１ｂは放送局側システム１０１から送信されてくる下りの信号を復調し、生成されたビットストリームをアダプタ１３１１に入力する。アダプタ１３１１はビットストリームが含む様々な情報の中から、ＣＰＵ１３０６が指定する情報を抽出して、ＣＰＵ１３０６上で動作するプログラムが解釈可能な形式に変換して、ＣＰＵ１３０６に提供する。一方、上り方向の伝送に関しては、ＣＰＵ１３０６が、放送局側システム１０１に対して送信したい情報を、アダプタ１３１１に入力する。アダプタ１３１１は、ＣＰＵ１３０６から入力された情報を放送局側システム１０１が解釈可能な形式に変換し、ＱＰＳＫ変調器１３０１ｃに入力する。ＱＰＳＫ変調器１３０１ｃはアダプタ１３１１から入力された情報をＱＰＳＫ変調し、放送局側システム１０１に送信する。
【００７１】
アダプタ１３１１の具体例としては、米国ケーブルシステムで利用されるＣａｂｌｅＣＡＲＤ、旧名ＰＯＤ（Ｐｏｉｎｔ  Ｏｆ  Ｄｅｐｌｏｙｍｅｎｔ）が挙げられる。
【００７２】
ＡＶエンコーダ１３１２は、ＡＶデコーダ１３０３によってデコードされたａｕｄｉｏ信号をＭＰＥＧ  ａｕｄｉｏ形式の音声にエンコードし、ｖｉｄｅｏ信号をＭＰＥＧ  ｖｉｄｅｏ形式の映像にエンコードする。ＡＶエンコーダ１３１２がエンコードした映像および音声は、多重器１３１３へ出力される。
【００７３】
多重器１３１３は、ＡＶエンコーダ１３１２から入力された映像および音声を、ＭＰＥＧ２トランスポートストリームへ多重化する機能をもつデバイスである。
【００７４】
グラフィックスプレーン１３１４は、ＣＰＵによって描画されるグラフィックスを一時的に保持する機能を有するデバイスである。グラフィックスプレーン１３１４上に描画されたグラフィックスは、ＣＰＵによってディスプレイ１３０５への転送が指示されることで、ＡＶデコーダ１３０３によって出力された映像と合成されて、ディスプレイ１３０５上に表示される。
【００７５】
以上説明した放送録画再生装置が、放送波に含まれるサービスを２次記憶部１３０７に記録する動作と、２次記憶部１３０７から逐次読み出してサービスを再生する動作について、以下に詳細に説明する。
【００７６】
まず、放送波に含まれるサービスを２次記憶部１３０７に記録する動作について述べる。
【００７７】
図１５に、サービスの記録時における、各デバイスの物理的な接続順序と処理内容、入出力のデータ形式を表現する概念図を示す。１５００は端末装置であり、チューナ１３０１、アダプタ１３１１、デスクランブラ１５０１、ＴＳデコーダ１３０２、ＰＩＤフィルタ１５０２、セクションフィルタ１５０３、ＡＶデコーダ１３０３、１次記憶部１３０８、ＡＶエンコーダ１３１２、多重器１３１３、および、記録領域１５０４をもつ。図１５の構成要素のうち、図１３の構成要素と同一符号を持つものは、それらと同等の機能をもつため、説明を省略する。
【００７８】
まずＣＰＵ１３０６が指定したチューニング情報に従って、チューナ１３０１が放送波をチューニングする。ここで、チューニング情報は、周波数や変調方式などが特定可能な情報である。チューナ１３０１は、放送波を復調し、アダプタ１３１１にＭＰＥＧ２トランスポートストリームを入力する。
【００７９】
アダプタ１３１１内にあるデスクランブラ１５０１は、視聴者ごとの限定解除情報に基づいて、ＭＰＥＧ２トランスポートストリームの暗号解除を行う。暗号解除されたＭＰＥＧ２トランスポートストリームは、ＴＳデコーダに入力される。
【００８０】
ＴＳデコーダ１３０２内にはＭＰＥＧ２トランスポートストリームに対して処理を行う２種類のデバイス、ＰＩＤフィルタ１５０２、セクションフィルタ１５０３が存在する。
【００８１】
ＰＩＤフィルタ１５０２は、入力されたＭＰＥＧ２トランスポートストリームから、ＣＰＵ１３０６が指定したＰＩＤをもつＴＳパケットを抽出し、さらにそのペイロードに存在するＰＥＳパケットやＭＰＥＧ２セクションを抽出する。例えば、ＣＰＵ１３０６がＰＩＤ＝１００のＴＳパケットを抽出するＰＩＤフィルタリングを指示した場合に図６のＭＰＥＧ２トランスポートストリームが入力されたとすると、パケット６０１および６０３が抽出されて更に連結され、映像１のＰＥＳパケットが再構成される。あるいは、ＣＰＵ１３０６がＰＩＤ＝２００のＴＳパケットを抽出するＰＩＤフィルタリングを指示した場合に図６のＭＰＥＧ２トランスポートストリームが入力されたとすると、パケット６０２および６０５が抽出されて更に連結され、データ１のＭＰＥＧ２セクションが再構成される。
【００８２】
セクションフィルタ１５０３は、入力されたＭＰＥＧ２セクションの中から、ＣＰＵ１３０６が指定するセクションフィルタ条件に合致するＭＰＥＧ２セクションを抽出し、１次記憶部１３０８にＤＭＡ転送する。例えば、ＣＰＵ１３０６はＰＩＤ＝２００のＴＳパケットを抽出するＰＩＤフィルタリングとｔａｂｌｅ＿ｉｄが６４であるセクションを抽出するセクションフィルタリングをセクションフィルタ１５０３に対して指定したとする。先に述べたように、データ１のＭＰＥＧ２セクションが再構成された後、セクションフィルタ１５０３はそのＭＰＥＧ２セクションの中からｔａｂｌｅ＿ｉｄが６４であるセクションのみを抽出し、１次記憶部１３０８にＤＭＡ転送する。
【００８３】
１次記憶部１３０８に入力されたＭＰＥＧ２セクションは、多重器１３１３に入力される。
【００８４】
ＴＳデコーダ１３０２によって抽出された映像ＰＥＳパケットと音声ＰＥＳパケットは、ＡＶデコーダ１３０３に入力される。
【００８５】
ＡＶデコーダは、映像ＰＥＳパケットをデコードして映像に変換し、ＡＶエンコーダ１３１２に入力する。また音声ＰＥＳパケットをデコードして音声に変換し、ＡＶエンコーダ１３１２に入力する。
【００８６】
ＡＶエンコーダ１３１２は、映像をＭＰＥＧ  ｖｉｄｅｏに変換し、多重器１３１３に入力する。また音声をＭＰＥＧ  ａｕｄｉｏに変換し、多重器１３１３に入力する。
【００８７】
多重器１３１３は、ＡＶエンコーダから入力されたＭＰＥＧ  ｖｉｄｅｏとＭＰＥＧ  ａｕｄｉｏと、１次記憶部１３０８から入力されたＭＰＥＧ２セクションを多重してＭＰＥＧ２トランスポートストリームを生成する。生成されたＭＰＥＧ２トランスポートストリームは、記録領域１５０４に記録される。
【００８８】
記録領域１５０４は２次記憶部１３０７の全体または一部、あるいは、その他の記録領域で構成され、サービスを構成するＭＰＥＧ２トランスポートストリームを記憶する。
【００８９】
次いで、２次記憶部１３０７から逐次読み出してサービスを再生する動作について述べる。
【００９０】
図１６に、サービスの再生時における、各デバイスの物理的な接続順序と処理内容、入出力のデータ形式を表現する概念図を示す。１６００は端末装置であり、記録領域１５０４、ＴＳデコーダ１３０２、ＰＩＤフィルタ１５０２、セクションフィルタ１５０３、ＡＶデコーダ１３０３、スピーカ１３０４、ディスプレイ１３０５、および、１次記憶部１３０８をもつ。図１６の構成要素のうち、図１３の構成要素と同一符号を持つものは、それらと同等の機能をもつため、説明を省略する。
【００９１】
図１５で説明した手順で記録領域１５０４に記録されたＭＰＥＧ２トランスポートストリームが、ＴＳデコーダ１３０２に入力される。
【００９２】
次いで、ＴＳデコーダ１３０２内のＰＩＤフィルタ１５０２によって、ＣＰＵ１３０６が指定したＰＩＤを持つ映像ＰＥＳおよび音声ＰＥＳが抽出される。抽出されたＰＥＳパケットはＡＶデコーダ１３０３に入力される。あるいは、ＴＳデコーダ１３０２内のＰＩＤフィルタ１５０２とセクションフィルタ１５０３によって、ＣＰＵ１３０６が指定したＰＩＤとｔａｂｌｅ＿ｉｄ持つＭＰＥＧ２セクションが抽出される。抽出されたＭＰＥＧ２セクションは１次記憶部１３０８にＤＭＡ転送される。
【００９３】
ＡＶデコーダ１３０３に入力された映像ＰＥＳと音声ＰＥＳは、デコードされてａｕｄｉｏ信号およびｖｉｄｅｏ信号が出力される。その後、ａｕｄｉｏ信号およびｖｉｄｅｏ信号はディスプレイ１３０５およびスピーカ１３０４に入力され、映像および音声が再生される。
【００９４】
１次記憶部１３０８に入力されたＭＰＥＧ２セクションは、適宜ＣＰＵ１３０６に入力される。
【００９５】
ここまでは、本発明に関するハードウェアの構成例に関して述べたが、以降、本発明の主要機能である、Ｊａｖａプログラムによるサービスの記録制御と特殊再生制御に関して説明する。
【００９６】
本発明におけるサービスの記録とは、サービスに含まれる映像、音声、Ｊａｖａプログラム、Ｊａｖａプログラムの同期情報等をハードディスク、ＢＤ（Ｂｌｕ−ｒａｙ  Ｄｉｓｃ）、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｃ）、ＳＤ（Ｓｅｃｕｒｅ  Ｄｉｇｉｔａｌ）メモリカードといった記録媒体に記録することである。サービスの再生とは、記録媒体に記録された映像、音声、Ｊａｖａプログラムを同期情報に基づいて再生および実行することである。記録済みサービスの再生結果は、放送波を受信して直接サービスを再生した結果とほぼ等価であることが要求される。
【００９７】
図１７は、サービスの記録と再生に必要とされるプログラムの構成図であり、ＲＯＭ１３０９に記憶されているソフトウェアである。
【００９８】
プログラム１７００は、サブプログラムであるＯＳ１７０１、ＥＰＧ１７０２、ＪａｖａＶＭ１７０３、Ｊａｖａライブラリ１７０４で構成される。
【００９９】
ＯＳ１７０１は、オペレーティングシステム（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）であり、Ｌｉｎｕｘ、Ｗｉｎｄｏｗｓ等が一例である。ＯＳ１７０１は、他のサブプログラム、例えばＥＰＧ１７０２とＪａｖａＶＭ１７０３を実行するためのカーネル１７０１ａと、サブプログラムが端末装置１３００の構成要素を制御するために利用するライブラリ１７０１ｂで構成される。カーネル１７０１ａは公知技術であり、詳細な説明は省略する。
【０１００】
ライブラリ１７０１ｂは、例えばチューナを制御するチューニング機能を提供する。ライブラリ１７０１ｂは、他のサブプログラムから周波数や変調方式などが特定可能なチューニング情報を受け取り、それをチューナ１３０１に引き渡す。チューナ１３０１は与えられたチューニング情報にもとづき復調処理を行い、復調したＭＰＥＧ２トランスポートストリームをＴＳデコーダ１３０２に引き渡すことができる。この結果、他のサブプログラムはライブラリ１７０１ｂを通してチューナ１３０１を制御することができる。
【０１０１】
また、ライブラリ１７０１ｂは、チャンネルを一意に識別するためのチャンネル情報を提供する。チャンネル情報の一例を図２０に示す。チャンネル情報はＯＯＢあるいはＩｎ−ｂａｎｄ周波数帯を利用して送信され、アダプタ１３１１で表形式に変換され、ライブラリがアクセス可能な１次記憶部に格納される。列２００１は、チャンネル識別子で、例えば、ＳＣＴＥ  ６５  Ｓｅｒｖｉｃｅ  Ｉｎｆｏｒｍａｔｉｏｎ  Ｄｅｌｉｖｅｒｅｄ  Ｏｕｔ−Ｏｆ−Ｂａｎｄ  Ｆｏｒ Ｄｉｇｉｔａｌ Ｃａｂｌｅ Ｔｅｌｅｖｉｓｉｏｎで定義されるｓｏｕｒｃｅ＿ＩＤが相当する。列２００２は、チャンネル名であり、同ＳＣＴＥ  ６５規格ではｓｏｕｒｃｅ＿ｎａｍeなどに相当する。列２００３はチューニング情報であり、周波数や転送レート、変調方式が特定可能な情報であって、チューナ１３０１に与える情報である。列２００４はＰＭＴを指定するためのプログラムナンバーである。例えば、行２０１１はチャンネル識別子が「１」、チャンネル名が「チャンネル１」、チューニング情報に周波数「１５０ＭＨｚ，．．．．」、プログラムナンバーが「１０１」であるサービス情報の組となっている。
【０１０２】
ＪａｖａＶＭ１７０３は、Ｊａｖａ（登録商標）言語で記述されたプログラムを逐次解析し実行するＪａｖａバーチャルマシンである。Ｊａｖａ言語で記述されたプログラムはバイトコードと呼ばれる、ハードウェアに依存しない中間コードにコンパイルされる。Ｊａｖａバーチャルマシンは、このバイトコードを実行するインタープリタである。ＪａｖａＶＭ１７０３は、Ｊａｖａ言語で記述されたＪａｖａライブラリ１７０４を実行する。Ｊａｖａ言語やＪａｖａＶＭの詳細は、書籍「Ｊａｖａ  Ｌａｎｇｕａｇｅ  Ｓｐｅｃｉｆｉｃａｔｉｏｎ（ＩＳＢＮ  ０−２０１−６３４５１−１）」や「Ｊａｖａ  Ｖｉｒｔｕａｌ  Ｍａｃｈｉｎｅ  Ｓｐｅｃｉｆｉｃａｔｉｏｎ（ＩＳＢＮ  ０−２０１−６３４５１―Ｘ）」等を参照のこと。また、ＪＮＩ（Ｊａｖａ  Ｎａｔｉｖｅ  Ｉｎｔｅｒｆａｃｅ）を通して、Ｊａｖａ言語で記述されていない他のサブプログラムを呼び出したり、または、呼び出されたりすることが可能である。ＪＮＩに関しては、書籍「Ｊａｖａ  Ｎａｔｉｖｅ  Ｉｎｔｅｒｆａｃｅ」等を参照のこと。
【０１０３】
Ｊａｖａライブラリ１７０４は、Ｊａｖａプログラムが放送録画再生装置の機能を制御するために呼び出すＪａｖａ言語で記述されたライブラリである。ただし、必要に応じて、ＯＳ１７０１のライブラリ１７０１ｂなど非Ｊａｖａ言語で記述されたサブプログラムを利用することもある。Ｊａｖａプログラムは、Ｊａｖａライブラリ１７０４が持つＪａｖａ  ＡＰＩ（アプリケーションプログラミングインタフェース）を呼び出すことで、Ｊａｖａライブラリ１７０４が提供する機能を利用できる。
【０１０４】
Ｔｕｎｅｒ１７０４ｃは、放送録画再生端末のＩｎ−ｂａｎｄ受信用チューナ１３０１ａを制御するためのＪａｖａライブラリである。ＪａｖａプログラムがＴｕｎｅｒ１７０４ｃにチューニング情報を渡すと、Ｔｕｎｅｒ１７０４ｃはそれを用いてライブラリ１７０１ｂのチューナ機能を呼び出し、結果、放送録画再生端末のＩｎ−ｂａｎｄ受信用チューナ１３０１ａの動作を制御できる。ここで、チューニング情報は、周波数や変調方式などが特定可能な情報である。
【０１０５】
ＳＦ１７０４ｅは、放送録画再生端末のＰＩＤフィルタ１５０２およびセクションフィルタ１５０３機能を制御するためのＪａｖａライブラリである。ＪａｖａプログラムがＳＦ１７０４ｅにＰＩＤやｔａｂｌｅ＿ｉｄなどのフィルタ条件を渡すと、ＳＦ１７０４ｅはその条件を元にライブラリ１７０１ｂの機能などを用いてＰＩＤフィルタ１５０２およびセクションフィルタ１５０３を制御し、所望のフィルタ条件に叶うＭＰＥＧ２セクションを取得して、フィルタ条件を設定したＪａｖａプログラムに渡す。
【０１０６】
ＤＳＭ−ＣＣ１７０４ｄは、ＤＳＭ−ＣＣオブジェクトカルーセルのファイルシステムにアクセスするためのＪａｖａライブラリである。ＤＳＭ−ＣＣオブジェクトカルーセルは、ＳＦ１７０４ｅによって取得されるＭＰＥＧ２セクションが内包している。ＤＳＭ−ＣＣは、ＩＳＯ／ＩＥＣ１３８１８−６規格で定義されており、ＭＰＥＧ２セクションを利用して任意のファイルを伝送するための仕組みである。これを利用することで、放送局から端末にファイルを伝送することができる。ＤＳＭ−ＣＣ１７０４ｄは、Ｊａｖａプログラム等から指定されたファイル識別子等を元に、ＳＦ１７０４ｅを利用してＭＰＥＧ２セクションを取得し、ＩＳＯ／ＩＥＣ１３８１８−６規格に基づいてファイルを取り出して１次記憶部１３０８に出力する。ＤＳＭ−ＣＣの詳細な実現方法は本発明とは関係ないため、説明を省略する。
【０１０７】
ＡＭ１７０４ｂは、サービスに含まれるＪａｖａプログラムの実行や終了を管理する機能を提供するアプリケーションプログラムマネージャである。ＡＭ１７０４ｂは指定されたＭＰＥＧ２トランスポートストリームの指定されたチャンネルに多重されたＪａｖａプログラムを抽出し、その抽出したＪａｖａプログラムを別途多重された同期情報に従って実行したり、あるいは終了させたりする。ＪａｖａプログラムのＪａｖａクラスファイルは、前述のＤＳＭ−ＣＣ方式でＭＰＥＧ２トランスポートストリームに多重されている。また、Ｊａｖａプログラムの同期情報はＡＩＴと呼ばれる形式で、ＭＰＥＧ２トランスポートストリームに多重されている。ＡＩＴは、ＤＶＢ−ＭＨＰ規格（ＥＴＳＩ  ＴＳ  １０１  ８１２  ＤＶＢ−ＭＨＰ仕様Ｖ１．０．２）の１０章に定義されている、Ａｐｐｌｉｃａｔｉｏｎ  Ｉｎｆｏｒｍａｔｉｏｎ  Ｔａｂｌｅの略であり、ｔａｂｌｅ＿ｉｄが「０ｘ７４」であるＭＰＥＧ２セクションである。
【０１０８】
ＡＭ１７０４ｂの詳細な構成を図２７に示す。ＡＭ１７０４ｂは、ＡＩＴ監視部２７１１と、アプリケーション状態管理部２７１２で構成される。
【０１０９】
ＡＩＴ監視部２７１１は、ＭＰＥＧ２トランスポートストリームとチャンネル識別子を入力として、ＡＩＴの更新状況を監視するとともに、ＡＩＴが更新された場合は、アプリケーション状態管理部２７１２、および、特殊再生区間処理管理部２７０３へ更新されたＡＩＴを通知する。まず、ＡＭ１７０４ｂは、指定されたチャンネル識別子をキーとしてライブラリ１７０１ｂのチャンネル情報を検索し、プログラムナンバーを得る。次にＳＦ１７０４ｅなどを利用して、ＭＰＥＧ２トランスポートストリームからＰＡＴを取得する。さらにＰＭＴの情報から、先ほど得られたプログラムナンバーに対応するＰＭＴのＰＩＤが得られる。再度ＳＦ１７０４ｅを利用して、実際のＰＭＴを取得する。取得されたＰＭＴは図１１の形式をしており、ストリーム種別が「データ」で補足情報として「ＡＩＴ」をもつエレメンタリ−ストリームのＰＩＤが書かれている。更にＳＦ１７０４ｅに、フィルタリング条件として今得られたＡＩＴのＰＩＤとｔａｂｌｅ＿ｉｄ「０ｘ７４」を与えると、ＡＩＴの実体が得られる。
【０１１０】
図２２は、ＡＩＴの情報の一例を模式的に表した表である。ＡＩＴバージョン２２００は、そのＡＩＴのバージョンを表現する。ＡＩＴバージョンが大きいほど、そのＡＩＴはより新しいＡＩＴである。等しいＡＩＴバージョンをもつＡＩＴは繰り返し受信されるが、ＡＭ１７０４ｂはすでに解析したＡＩＴと等しいＡＩＴバージョンをもつＡＩＴは解析せず、すでに解析したＡＩＴよりも新しいＡＩＴのみを解析して、それに対応した処理をする。列２２０１はＪａｖａプログラムの識別子である。列２２０２はＪａｖａプログラムの制御情報である。制御情報には「ａｕｔｏｓｔａｒｔ」「ｐｒｅｓｅｎｔ」「ｋｉｌｌ」等があり、「ａｕｔｏｓｔａｒｔ」は即時に端末装置１３００がこのＪａｖａプログラムを自動的に実行することを意味し、「ｐｒｅｓｅｎｔ」は自動実行しないことを意味し、「ｋｉｌｌ」はＪａｖａプログラムを停止することを意味する。列２２０３は、ＤＳＭ−ＣＣ方式でＪａｖａプログラムを含んでいるＰＩＤを抽出するためのＤＳＭ−ＣＣ識別子である。列２２０４はＪａｖａプログラムのプログラム名である。
【０１１１】
列２２０５は、各Ｊａｖａプログラムに対応する一時停止フラグである。一時停止フラグは、特殊再生中にその対応するＪａｖａプログラムを一時停止状態にするかどうかを表すフラグである。一時停止フラグ値が“ｔｒｕｅ”である場合は特殊再生状態になれば、対応するＪａｖａプログラムを一時停止させて、その後、特殊再生が解除されて通常再生状態になれば、一時停止させたＪａｖａプログラムの実行を再開することを意味する。また、一時停止フラグ値が“ｆａｌｓｅ”である場合は特殊再生状態になったとしても、対応するＪａｖａプログラムを一時停止させずに、実行し続けることを意味する。図２２においては、Ｊａｖａプログラム識別子“３０１”に対応するＪａｖａプログラム“／ａ／ＴｏｐＸｌｅｔ”は、一時停止フラグ値が“ｔｒｕｅ”であるので、特殊再生中に一時停止させる。
【０１１２】
行２２１１、行２２１２、行２２１３、行２２１４は、Ｊａｖａプログラムの情報の組である。行２２１１で定義されるＪａｖａプログラムは、Ｊａｖａプログラムの識別子「３０１」、制御情報「ａｕｔｏｓｔａｒｔ」、ＤＳＭ−ＣＣ識別子「１」、プログラム名「ａ／ＴｏｐＸｌｅｔ」、一時停止フラグ「ｔｒｕｅ」の組である。同様に、行２２１２で定義されるＪａｖａプログラムは、Ｊａｖａプログラムの識別子「３０２」、制御情報「ｐｒｅｓｅｎｔ」、ＤＳＭ−ＣＣ識別子「１」、プログラム名「ｂ／ＧａｍｅＸｌｅｔ」、一時停止フラグ「ｆａｌｓｅ」の組である。ここで、行２２１１、行２２１２、行２２１４で定義される３つのＪａｖａプログラムは同一のＤＳＭ−ＣＣ識別子をもつが、これは１つのＤＳＭ−ＣＣ方式でエンコードされたファイルシステム内に３つのＪａｖａプログラムが含まれていることを表す。ここでは、Ｊａｖａプログラムに対して５つの情報しか規定しないが、実際にはより多くの情報が定義される。詳細はＤＶＢ−ＭＨＰ規格を参照されたい。
【０１１３】
アプリケーション状態管理部２７１２は、特殊再生区間処理部２７０２から要求されることで、あるいは、ＡＩＴ監視部２７１１から引き渡された更新されたＡＩＴの内容を解析することで、Ｊａｖａプログラムの実行状態を管理する。
【０１１４】
まず、ＡＩＴ監視部２７１１からＡＩＴが引き渡された場合の動作を以下に述べる。
アプリケーション状態管理部２７１２は、ＡＩＴの中から「ａｕｔｏｓｔａｒｔ」のＪａｖａプログラムを見つけ出し、対応するＤＳＭ−ＣＣ識別子およびＪａｖａプログラム名を抽出する。図２２を参照して、アプリケーション状態管理部２７１２は行２２１１のＪａｖａプログラムを抽出し、ＤＳＭ−ＣＣ識別子「１」およびＪａｖａプログラム名「ａ／ＴｏｐＸｌｅｔ」を取得する。次いでアプリケーション状態管理部２７１２は、ＡＩＴから取得したＤＳＭ−ＣＣ識別子を用いて、ＪａｖａプログラムをＤＳＭ−ＣＣ方式で格納しているＴＳパケットのＰＩＤをＰＭＴから取得する。具体的には、ＰＭＴの中でストリーム種別が「データ」で、補足情報のＤＳＭ−ＣＣ識別子が合致するエレメンタリストリームのＰＩＤを取得する。ここで、ＤＳＭ−ＣＣ識別子が「１」であり、ＰＭＴが図１１とすると、行１１１４のエレメンタリストリームが合致し、ＰＩＤ「５０１４」を取り出す。
【０１１５】
アプリケーション状態管理部２７１２は、ＳＦ１７０４ｅに、ＤＳＭ−ＣＣ方式でデータが埋めこまれたＭＰＥＧ２セクションを伝送するＴＳパケットのＰＩＤおよびセクションフィルタ条件を指定する。ここでは、ＰＩＤ「５０１４」を与える。この結果、アプリケーション状態管理部２７１２は、ＤＳＭ−ＣＣ１７０４ｄを用いて、ＤＳＭ−ＣＣ方式に従ってファイルシステムを復元し、１次記憶部１３０８に保存する。ＭＰＥＧ２トランスポートストリーム中のＴＳパケットからファイルシステム等のデータを取り出し１次記憶部１３０８、２次記憶部１３０７等の記憶手段に保存することを以降、ダウンロードとよぶ。
【０１１６】
図２３は、ダウンロードしたファイルシステムの一例である。図中、丸はディレクトリを四角はファイルを表し、２３０１はルートディレクトリ、２３０２はディレクトリ「ａ」、２３０３はディレクトリ「ｂ」、２３０４はファイル「ＴｏｐＸｌｅｔ．ｃｌａｓｓ」、２３０５はファイル「ＧａｍｅＸｌｅｔ．ｃｌａｓｓ」、２３０６はディレクトリ「ｚ」、２３０７はファイル「ＭｕｓｉｃＸｌｅｔ．ｃｌａｓｓ」、２３０８はファイル「ＳｔｕｄｙＸｌｅｔ．ｃｌａｓｓ」である。
【０１１７】
次いでアプリケーション状態管理部２７１２は、１次記憶部１３０８にダウンロードしたファイルシステム中から実行するＪａｖａプログラムをＪａｖａＶＭ１７０３に引き渡す。ここで、実行するＪａｖａプログラム名が「ａ／ＴｏｐＸｌｅｔ」とすると、Ｊａｖａプログラム名の最後に「．ｃｌａｓｓ」を付加したファイル「ａ／ＴｏｐＸｌｅｔ．ｃｌａｓｓ」が実行すべきファイルとなる。「／」はディレクトリやファイル名の区切りであり、図２３を参照して、ファイル２３０４が実行すべきＪａｖａプログラムである。次いでアプリケーション状態管理部２７１２は、ファイル２３０４をＪａｖａＶＭ１７０３に引き渡すと、そのファイルはＪａｖａプログラムとしてＪａｖａ ＶＭ上で実行される。制御情報に「ｋｉｌｌ」が指定されていた場合は、Ｊａｖａプログラムを終了させる。
【０１１８】
アプリケーション状態管理部２７１２は、新しいＡＩＴバージョンを持つＡＩＴが来る度にそのＡＩＴを解析してＪａｖａプログラムの実行状態を変更させる。
【０１１９】
次に、特殊再生区間処理部２７０２からＪａｖａプログラムの状態変更を要求された場合の動作を以下に述べる。
【０１２０】
アプリケーション状態管理部２７１２は、Ｊａｖａプログラムの実行状態を管理する機能として、指定されたＪａｖａプログラム識別子に対応するＪａｖａプログラムを一時停止させる機能、および、一時停止させるＪａｖａプログラムを再開する機能を提供する。具体的には、アプリケーション状態管理部２７１２は、Ｊａｖａプログラムを一時停止させるｐａｕｓｅ（ｉｎｔ  ａｐｐＩＤ）というメソッドと、一時停止中のＪａｖａプログラムを再び実行させるｒｅｓｕｍｅ（ｉｎｔ  ａｐｐＩＤ）というメソッドを提供する。ここで、ａｐｐＩＤはＪａｖａプログラム識別子である。特殊再生区間処理部２７０２がｐａｕｓｅメソッドを呼び出すと、アプリケーション状態管理部２７１２は、引数として指定されたＪａｖａプログラム識別子に対応するＪａｖａプログラムを一時停止させる。例えば、ｐａｕｓｅ（５０３）と呼び出されれば、Ｊａｖａプログラム識別子“５０３”に対応するＪａｖａプログラムを一時停止させる。また、特殊再生区間処理部２７０２がｒｅｓｕｍｅメソッドを呼び出すと、アプリケーション状態管理部２７１２は、引数として指定されたＪａｖａプログラム識別子に対応するＪａｖａプログラムを再開する。例えば、ｒｅｓｕｍｅ（５０３）と呼び出されれば、Ｊａｖａプログラム識別子“５０３”に対応するＪａｖａプログラムを再開させる。
【０１２１】
ＪＭＦ１７０４ａは、サービスに含まれる映像と音声の再生制御を担う。具体的には、指定されたＭＰＥＧ２トランスポートストリームの指定されたチャンネルに多重された映像ＥＳと音声ＥＳをＡＶデコーダに入力して再生させる。受信した放送波から直接サービスを再生する場合は、アダプタ１３１１から出力されるＭＰＥＧ２トランスポートストリームを再生するように指定される。一方、２次記憶部１３０７に一旦記録されたサービスを再生する場合は、２次記憶部１３０７内の記録領域１５０４から出力されるＭＰＥＧ２トランスポートストリームを再生するように指定される。
【０１２２】
まず、ＪＭＦ１７０４ａは、指定されたチャンネル識別子をキーとしてライブラリ１７０１ｂのチャンネル情報を検索し、プログラムナンバーを得る。次にＳＦ１７０４ｅなどを利用して、ＭＰＥＧ２トランスポートストリームからＰＡＴを取得する。さらにＰＭＴの情報から、先ほど得られたプログラムナンバーに対応するＰＭＴのＰＩＤが得られる。再度ＳＦ１７０４ｅを利用して、実際のＰＭＴを取得する。取得されたＰＭＴは図１１の形式をしており、ストリーム種別が「映像」および「音声」であるエレメンタリストリームのＰＩＤが書かれている。ＪＭＦ１７０４ａが、それらのＰＩＤをＴＳデコーダ１３０２のＰＩＤフィルタ１５０２に設定すると、図１５あるいは図１６に示されたごとく、該当ＰＩＤで多重されている映像ＥＳと音声ＥＳがＡＶデコーダ１３０３経由で再生される。
【０１２３】
ここで、特にＪＭＦ１７０４ａが２次記憶部に記録済みのＭＰＥＧ２トランスポートストリームを入力とする場合は、ＪＭＦ１７０４ａは２次記憶部１３０７の記憶領域１６０７からのＭＰＥＧ２トランスポートストリームの読み出し速度や読み出し位置を変更させることで、映像や音声の再生速度を変更させることができる。これにより早送りやスキップといった特殊再生が可能となる。例えば、通常速度の２倍の速度でＭＰＥＧ２トランスポートストリームを読み出すようにすれば、映像や音声も２倍の速度で再生される。また、ＭＰＥＧ２トランスポートストリームの読み出し位置を特定間隔だけ飛ばして読み出せば、映像や音声はスキップ再生される。ＪＭＦ１７０４ａは、ライブラリ１７０１ｂの機能を利用することで、２次記憶部１３０７を制御し、ＭＰＥＧ２トランスポートストリームの読み出し速度や読み出し位置を変更させる。これらの特殊再生を高水準で滑らかに行う方法については本発明の範囲外であるため、説明を省略する。
【０１２４】
Ｊａｖａプログラムが特殊再生を指示するために、ＪＭＦ１７０４ａは、例えばｓｅｔＲａｔｅ（ｆｌｏａｔ  ｆａｃｔｏｒ）というＡＰＩをＪａｖａプログラムに提供している。パラメータｆａｃｔｏｒに１．０を指定すると通常速度の再生になり、２．０を指定すると２倍の速度での特殊再生状態となる。またＪＭＦ１７０４ａは、ＪａｖａプログラムがＡＰＩを通じて特殊再生を指示した場合、その特殊再生の指示前における再生速度、および、指示後における再生速度を特殊再生マネージャ１７０４ｇの特殊再生開始／終了判定部２７０１へ引き渡す。
【０１２５】
レコーディングマネージャ１７０４ｈは、チャンネル識別子と開始時刻、終了時刻を入力として、当該サービスを指定された開始時刻と終了時刻の間だけ２次記憶部１３０７に記録する。例えば、ＥＰＧ１７０２からチャンネル識別子と開始時刻、終了時刻を指定されると、開始時間になるまで待機する。その後、開始時間に至ると、指定サービスの記録を開始し、終了時間に至ると記録を終了する。以下にその詳細を記述する。
【０１２６】
記録開始時間に至ると、最初に、レコーディングマネージャ１７０４ｈは、２次記憶部１３０７に指定された開始時刻から終了時刻までのＭＰＥＧ２トランスポートストリームを記録するための記録領域１５０４を２次記憶部１３０７内に確保する。確保した記録領域には、メディア識別子を与える。次にチャンネル識別子をキーとして、ライブラリ１７０１ｂが保有するチャンネル情報から当該チャンネル識別子に相当するチューニング情報を得る。その後、Ｔｕｎｅｒ１７０４ｃにチューニング情報を与えると、Ｔｕｎｅｒ１７０４ｃはチューニングを開始する。ここで、チューニング情報は、周波数や変調方式などが特定可能な情報である。すると図１５に示されるように、アダプタ１３１１経由でＭＰＥＧ２トランスポートストリームがＴＳデコーダに入力される。
【０１２７】
一方、レコーディングマネージャ１７０４ｈは、ＳＦ１７０４ｅを利用して、チューニングで得られたＭＰＥＧ２トランスポートストリームからＰＡＴを取得する。さらに、指定されたチャンネル識別子に対応するプログラムナンバーをライブラリ１７０１ｂから検索し、得られたプログラムナンバーに対応するＰＭＴのＰＩＤをＰＡＴから検索する。その後、ＳＦ１７０４ｅを利用して、実際のＰＭＴを取得し、指定されたチャンネルを構成するＥＳの全ＰＩＤを得る。レコーディングマネージャ１７０４ｈは、得られたＰＩＤをＴＳデコーダのＰＩＤフィルタ１５０２に設定する。さらに、放送波に含まれるサービスを２次記憶部１３０７に記録する動作に従うように、ライブラリ１７０１ｂを通じて各ハードウェア構成要素の出力先を設定する。すると、図１５で説明した流れに沿って、所望のチャンネルを構成する全ＥＳが、先ほど領域確保した記録領域１５０４に記録される。
【０１２８】
その後、指定された終了時刻に至ると、レコーディングマネージャ１７０４ｈはＴｕｎｅｒ１７０４ｃのチューニング動作を停止させ、記録領域１５０４へのＭＰＥＧ２トランスポートストリームの書き込みを終了させる。また、先ほど記録したＭＰＥＧ２トランスポートストリームの管理情報として、図２１に示すレコード情報管理テーブルを作成する。
【０１２９】
図２１は２次記憶部１３０７等の記録領域１５０４に記録されているレコード情報を管理するためのレコード情報管理テーブルの一例である。レコード情報は表形式で記録されている。列２１０１は、レコード識別子である。列２１０２は、チャンネル識別子である。列２１０３はプログラムナンバーである。列２１０４はサービスの録画開始時間、列２１０５はサービスの録画終了時間である。そして、列２１０６はサービスとして記録されたＭＰＥＧ２トランスポートストリームを識別するメディア識別子である。行２１１１〜２１１２の各行は、各レコード識別子、チャンネル識別子、プログラムナンバー、開始時間、終了時間、および、メディア識別子の組となる。例えば、行２１１１はレコード識別子が「０００」、チャンネル識別子が「２」、プログラムナンバーが「１０２」、開始時間が「２００５／０３／３０  １１：００」、終了時間が「２００５／０３／３０  １２：００」、および、メディア識別子が「ＴＳ＿００１」であることを示す。
【０１３０】
サービスマネージャ１７０４ｆは、２次記憶部１３０７に記録済みのＭＰＥＧ２トランスポートストリーム中のサービス、あるいはアダプタ１３１１から入力されるＭＰＥＧ２トランスポートストリーム中のサービスの再生を管理する。
【０１３１】
以下に、２次記憶部１３０７に記録済みのＭＰＥＧ２トランスポートストリーム中のサービスの再生を管理する場合の動作について述べる。これは録画済みサービスの再生に相当する。この場合、サービスマネージャ１７０４ｆは、レコード識別子を入力とする。そのレコード識別子で特定される、２次記憶部１３０７に記録済みのサービスが、再生対象である。
【０１３２】
サービスマネージャ１７０４ｆは、まず、レコーディングマネージャ１７０４ｈが作成したレコード情報管理テーブルを参照して、指定されたレコード識別子で再生されるべきチャンネル識別子と、メディア識別子を得る。そして、２次記憶部１３０７に対して、今得られたメディア識別子で特定されるＭＰＥＧ２トランスポートストリームをＴＳデコーダ１３０２に出力するように、ライブラリ１７０１ｂを通して指示する。また、ライブラリ１７０１ｂを通して各ハードウェア構成要素の出力先を図１６に示す経路で流れるように設定する。その後、ＪＭＦ１７０４ａにＭＰＥＧ２トランスポートストリームの所在として２次記憶部１３０７を与え、また再生すべきチャンネル識別子を与える。すると、ＪＭＦ１７０４ａは、既に述べた動作によって、２次記憶部１３０７から出力されるＭＰＥＧ２トランスポートストリームに多重された映像と音声の再生を開始する。
【０１３３】
更に、ＡＭ１７０４ｂにもＭＰＥＧ２トランスポートストリームの所在として２次記憶部１３０７を与え、また再生すべきチャンネル識別子を与える。すると、ＡＭ１７０４ｂは２次記憶部１３０７から出力されるＭＰＥＧ２トランスポートストリームに多重されたＡＩＴに従って、２次記憶部１３０７から出力されるＭＰＥＧ２トランスポートストリームに多重されたＪａｖａプログラムの実行および終了を開始する。その後、２次記憶部１３０７から出力されるＭＰＥＧ２トランスポートストリームの終端まで、上述のサービスの再生を継続する。
【０１３４】
一方、以下に、アダプタ１３１１から入力されるＭＰＥＧ２トランスポートストリーム中のサービスの再生を管理する場合を説明する。これは、放送波から直接サービスを再生することに相当する。この場合、サービスマネージャ１７０４ｆは、再生対象サービスのチャンネル識別子を入力とする。
【０１３５】
サービスマネージャ１７０４ｆは、図１５のアダプタ１３１１から出力されるＭＰＥＧ２トランスポートストリームをＴＳデコーダ１３０２に出力するように、ライブラリ１７０１ｂを通して指示する。また、ライブラリ１７０１ｂを通して各ハードウェア構成要素の出力先を図１６に示す経路で流れるように設定する。まず、サービスマネージャ１７０４ｆは、チャンネル識別子をキーとして、ライブラリ１７０１ｂが保有するチャンネル情報から当該チャンネル識別子に相当するチューニング情報を得る。その後、Ｔｕｎｅｒ１７０４ｃにチューニング情報を与えると、Ｔｕｎｅｒ１７０４ｃはチューニングを開始する。ここで、チューニング情報は、周波数や変調方式などが特定可能な情報である。その後、ＪＭＦ１７０４ａにＭＰＥＧ２トランスポートストリームの所在としてアダプタ１３１１を与え、また再生すべきチャンネル識別子を与える。すると、ＪＭＦ１７０４ａは、既に述べた動作によって、アダプタ１３１１から出力されるＭＰＥＧ２トランスポートストリームに多重された映像と音声の再生を開始する。
【０１３６】
更に、ＡＭ１７０４ｂにもＭＰＥＧ２トランスポートストリームの所在としてアダプタ１３１１を与え、また再生すべきチャンネル識別子を与える。すると、ＡＭ１７０４ｂはアダプタ１３１１から出力されるＭＰＥＧ２トランスポートストリームに多重されたＡＩＴに従って、２次記憶部１３０７から出力されるＭＰＥＧ２トランスポートストリームに多重されたＪａｖａプログラムの実行および終了を開始する。その後、２次記憶部１３０７から出力されるＭＰＥＧ２トランスポートストリームの終端まで、上述のサービスの再生を継続する。
【０１３７】
グラフィックス１７０４ｉは、サービスに含まれるＪａｖａプログラムによって描画を指示されたグラフィックスを、ライブラリ１７０１ｂを介して、グラフィックスプレーン１３１４上に描画するための機能を提供する。これは、Ｊａｖａ  ＡＷＴ（Ａｂｓｔｒａｃｔ  Ｗｉｎｄｏｗ  Ｔｏｏｌｋｉｔ）の機能で実現される。グラフィックスプレーン１３１４上に描画されたグラフィックスは、ＣＰＵによって指示される適当な頻度でディスプレイ１３０５へ転送されて表示される。
【０１３８】
特殊再生マネージャ１７０４ｇは、現在再生中のサービスに関して、特殊再生の状態を監視するとともに、その変更に応じて、ＡＭ１７０４ｂへそのサービスに含まれるＪａｖａプログラムの制御を指示する。
【０１３９】
図２７は、特殊再生マネージャ１７０４ｇの詳細な構成を示した図である。
特殊再生開始／終了判定部２７０１は、早送り、巻戻し、スロー再生、あるいは、一時停止などの特殊再生の開始、および、終了を判定する。ＪＭＦ１７０４ａがＪａｖａプログラムから要求されてＭＰＥＧ２トランスポートストリームの読出速度を変更した場合に、ＪＭＦ１７０４ａからその変更前の読出速度、および、その変更後の読出速度が通知されることで、特殊再生開始／終了判定部２７０１は、特殊再生の開始、あるいは、終了を判定する。読出速度が１．０倍速から１．０倍速以外の倍速へ変更された場合は、特殊再生の開始と判定する一方、読出速度が１．０倍速以外の倍速から１．０倍速へ変更された場合は、特殊再生の終了と判定する。例えば、ＭＰＥＧ２トランスポートストリームの読出速度が１．０倍速から２．０倍速へ変更した場合は、特殊再生が開始したと判定する。逆にＭＰＥＧ２トランスポートストリームの読出速度が２．０倍速から１．０倍速へ変更した場合は、特殊再生が終了したと判定する。その判定結果が特殊再生の開始、あるいは、終了のいずれかの場合は、特殊再生区間処理管理部２７０３へその判定結果を引き渡す。
【０１４０】
特殊再生区間処理管理部２７０３は、特殊再生開始／終了判定部２７０１による判定結果にもとづいて、あるいは、ＡＩＴ監視部２７１１によって通知される更新されたＡＩＴにもとづいて、特殊再生区間処理部２７０２へＪａｖａプログラムに対する特殊再生開始／終了時の処理を指示する。具体的には、特殊再生区間処理部２７０２へ処理対象となるＪａｖａプログラム識別子、および、特殊再生フラグ値を引き渡して処理させる。
【０１４１】
まず、特殊再生開始／終了判定部２７０１による判定結果にもとづいて、特殊再生区間処理部２７０２へＪａｖａプログラムに対する特殊再生開始／終了時の処理を指示する場合を以下に説明する。
【０１４２】
特殊再生区間処理管理部２７０３は、その内部にフラグ等のデータを一覧にした特殊再生区間処理情報を一時的に格納するためのバッファをもつ。
【０１４３】
特殊再生開始／終了判定部２７０１からその判定結果が通知されると、まず特殊再生区間処理管理部２７０３は、自身が保持する特殊再生区間処理情報を参照して、処理すべきＪａｖａプログラムに対応するＪａｖａプログラム識別子を特定する。
【０１４４】
図４１は特殊再生区間処理管理部２７０３が保持する特殊再生区間処理情報の一例である。図４１において、列２２０１、列２２０４、列２８０５、列４１０１は、それぞれＪａｖａプログラム識別子、それに対応するプログラム名、一時停止フラグ、特殊再生フラグである。
【０１４５】
特殊再生フラグは、現時点においてＭＰＥＧ２トランスポートストリームの再生が特殊再生状態にあるかどうかを表すフラグである。特殊再生フラグ値が“ｏｎ”である場合は現時点で特殊再生状態にあって、特殊再生フラグ値が“ｏｆｆ”である場合は現時点で特殊再生状態にはないことを意味する。特殊再生フラグは、特殊再生開始／終了判定部２７０１が通知する結果によって更新される。すなわち、特殊再生開始／終了判定部２７０１によって特殊再生が開始したと判定された場合は特殊再生フラグ値が“ｏｎ”と更新されて、特殊再生が終了したと判定された場合は特殊再生フラグ値が“ｏｆｆ”と更新される。
【０１４６】
一時停止フラグは、特殊再生中にその対応するＪａｖａプログラムを一時停止状態にするかどうかを表すフラグである。一時停止フラグ値が“ｔｒｕｅ”である場合は特殊再生中に対応するＪａｖａプログラムを一時停止させることを意味する。例えば、図４１を参照して、Ｊａｖａプログラム識別子“３０１”に対応するＪａｖａプログラム“／ａ／ＴｏｐＸｌｅｔ”は、一時停止フラグ値が“ｔｒｕｅ”であるので、特殊再生中に一時停止させる。
【０１４７】
特殊再生区間処理管理部２７０３は、上述の一時停止フラグにもとづいて、特殊再生区間処理部２７０２へ引き渡すＪａｖａプログラム識別子を特定する。具体的には、一時停止フラグ値が“ｔｒｕｅ”と設定されているＪａｖａプログラム識別子を、特殊再生区間処理部２７０２へ特殊再生フラグ値とともに引き渡す。例えば、ここで、図４１を参照すれば、一時停止フラグ値が“ｔｒｕｅ”であるＪａｖａプログラム識別子は“３０１”となる。特殊再生開始／終了判定部２７０１が特殊再生開始と判定した場合、特殊再生区間処理管理部２７０３は、そのＪａｖａプログラム識別子とともに、特殊再生が開始されたとの結果、すなわち、特殊再生フラグ値“ｏｎ”を特殊再生区間処理部２７０２へ引き渡して、そのＪａｖａプログラム識別子に対応するＪａｖａプログラムを一時停止させる処理を指示する。また、特殊再生開始／終了判定部２７０１が特殊再生終了と判定した場合、特殊再生区間処理管理部２７０３は、そのＪａｖａプログラム識別子とともに、特殊再生が終了されたとの結果、すなわち、特殊再生フラグ値“ｏｆｆ”を特殊再生区間処理部２７０２へ引き渡して、そのＪａｖａプログラム識別子に対応するＪａｖａプログラムを一時停止から再開する処理を指示する。
【０１４８】
次いで、ＡＩＴ監視部２７１１によって通知される更新されたＡＩＴにもとづいて、特殊再生区間処理部２７０２へＪａｖａプログラムに対する特殊再生開始／終了時の処理を指示する場合を以下に説明する。
【０１４９】
図２８Ａあるいは図２８Ｂは、それぞれＡＭ１７０４ｂのＡＩＴ監視部２７１１から通知されるＡＩＴの一例である。ＡＩＴが更新されるごとに、ＡＩＴ監視部２７１１から特殊再生区間処理管理部２７０３へ更新されたＡＩＴが通知される。まず、特殊再生区間処理管理部２７０３は、一時停止フラグ値が変更されたか判定するために、更新前にその時点における一時停止フラグ値を含めた特殊再生区間処理情報をバッファに退避させておく。次に、通知されたＡＩＴを解析することで、特殊再生区間処理管理部２７０３に保持されている特殊再生区間処理情報中の各Ｊａｖａプログラムに対応する一時停止フラグを更新する。例えば、ＡＩＴ監視部２７１１において図２８Ａで示されるＡＩＴが検出された後に、図２８Ｂで示されるＡＩＴが検出された場合は、特殊再生区間処理管理部２７０３に保持されている特殊再生区間処理情報中のＪａｖａプログラム識別子“３０１”に対応する一時停止フラグ値が“ｔｒｕｅ”から“ｆａｌｓｅ”へ更新される。
【０１５０】
特殊再生区間処理情報が更新された場合は、特殊再生区間処理管理部２７０３はバッファ上に退避された一時停止フラグ値と、特殊再生区間処理情報中の一時停止フラグ値とを比較することで、更新前後でどのＪａｖａプログラムの一時停止フラグ値が変更されたか判定する。一時停止フラグ値が変更されていない場合は、何もしない。一時停止フラグ値が変更されている場合は、特殊再生区間処理管理部２７０３は変更後の値を保持して、その後、特殊再生区間処理情報の特殊再生フラグによって、現時点において特殊再生中であるか判定する。特殊再生フラグ値が“ｏｆｆ”、すなわち、現時点で特殊再生中でない場合は、何もしない。特殊再生フラグ値が“ｏｎ”、すなわち、現時点で特殊再生中である場合は、一時停止フラグ値が“ｔｒｕｅ”から“ｆａｌｓｅ”へ変更されたか、あるいは、“ｆａｌｓｅ”から“ｔｒｕｅ”へ変更されたか判定する。
【０１５１】
前者の場合、すなわち、一時停止フラグ値が“ｔｒｕｅ”から“ｆａｌｓｅ”へ変更された場合は、その一時停止フラグに対応するＪａｖａプログラム識別子とともに、特殊再生が終了されたとの結果、すなわち、特殊再生フラグ値“ｏｆｆ”を特殊再生区間処理部２７０２へ引き渡して、そのＪａｖａプログラム識別子に対応するＪａｖａプログラムを一時停止から再開する処理を指示する。
【０１５２】
後者の場合、すなわち、一時停止フラグ値が“ｆａｌｓｅ”から“ｔｒｕｅ”へ変更された場合は、その一時停止フラグに対応するＪａｖａプログラム識別子とともに、特殊再生が開始されたとの結果、すなわち、特殊再生フラグ値“ｏｎ”を特殊再生区間処理部２７０２へ引き渡して、そのＪａｖａプログラム識別子に対応するＪａｖａプログラムを一時停止させる処理を指示する。
【０１５３】
特殊再生区間処理部２７０２は、特殊再生区間処理管理部２７０３から処理すべきＪａｖａプログラム識別子、および、特殊再生フラグ値を受け取って、そのＪａｖａプログラム識別子に対応するＪａｖａプログラムに対して適切な処理を実行する。特殊再生フラグ値が“ｏｎ”である場合は、そのＪａｖａプログラム識別子を引数として、アプリケーション状態管理部２７１２が提供するｐａｕｓｅメソッドを呼び出すことで、そのＪａｖａプログラム識別子に対応するＪａｖａプログラムの一時停止を指示する。一方、特殊再生フラグ値が“ｏｆｆ”である場合は、そのＪａｖａプログラム識別子を引数として、アプリケーション状態管理部２７１２が提供するｒｅｓｕｍｅメソッドを呼び出すことで、そのＪａｖａプログラム識別子に対応するＪａｖａプログラムの再開を指示する。
【０１５４】
例えば、図４１を参照して、Ｊａｖａプログラム識別子“３０１”、および、特殊再生フラグ値“ｏｎ”を特殊再生区間処理管理部２７０３が特殊再生区間処理部２７０２へ引き渡した場合は、特殊再生区間処理部２７０２は、Ｊａｖａプログラム識別子“３０１”に対応するＪａｖａプログラム“／ａ／ＴｏｐＸｌｅｔ”を一時停止させるために、Ｊａｖａプログラム識別子“３０１”を引数として、ＡＭ１７０４ｂにおけるアプリケーション状態管理部２７１２が提供するｐａｕｓｅメソッドを呼び出すことで、Ｊａｖａプログラム識別子“３０１”に対応するＪａｖａプログラム“／ａ／ＴｏｐＸｌｅｔ”を一時停止させるように指示する。また、Ｊａｖａプログラム識別子“３０１”、および、特殊再生フラグ値“ｏｆｆ”を特殊再生区間処理管理部２７０３が特殊再生区間処理部２７０２へ引き渡した場合は、特殊再生区間処理部２７０２は、Ｊａｖａプログラム識別子“３０１”に対応するＪａｖａプログラム“／ａ／ＴｏｐＸｌｅｔ”を再開するために、Ｊａｖａプログラム識別子“３０１”を引数として、ＡＭ１７０４ｂにおけるアプリケーション状態管理部２７１２が提供するｒｅｓｕｍｅメソッドを呼び出すことで、Ｊａｖａプログラム識別子“３０１”に対応するＪａｖａプログラム“／ａ／ＴｏｐＸｌｅｔ”を再開するように指示する。
【０１５５】
ＥＰＧ１７０２は、電子番組表（Ｅｌｅｃｔｒｉｃ  Ｐｒｏｇｒａｍ  Ｇｕｉｄｅの略）であり、録画や再生の対象とする番組をユーザに選択させる機能である。放送波を受信しての通常の再生は本発明の趣旨から外れるため、説明を割愛する。
【０１５６】
番組を記録する場合は、ＥＰＧ１７０２は、放送番組一覧を表示してユーザに希望の番組を選択させる。図１９は、録画対象とする番組を選択させるための画面表示の一例である。時刻１９０１とチャンネル１９０２と１９０３が格子状に表示され、各時刻で記録可能な各チャンネルの番組を一覧できる。ユーザは端末装置１３００の入力部１３１０に備わっている上下左右カーソルボタン１４０１〜１４０４を用いて画面上のフォーカス１９１１を移動させることができる。更にＯＫボタン１４０５を押下すると、現在フォーカスが当たっている番組が記録対象として選択される。ＥＰＧ１７０２は当該番組のチャンネル識別子をライブラリから取得して知っており、ユーザによって記録対象番組が選択されると、当該番組のチャンネル識別子、開始時間、終了時間をレコーディングマネージャ１７０４ｈに通知する。 レコーディングマネージャ１７０４ｈは、その情報に基づいて、当該番組を２次記憶部１３０７に記録する。
【０１５７】
一方、記録済みの番組を再生する場合は、ＥＰＧ１７０２は、記録済み番組一覧を表示してユーザに希望の番組を選択させる。図１８は、録画済み番組を選択させるための画面表示の一例である。その時点で２次記憶部１３０７に記憶されている番組がすべて一覧表示される。ユーザは端末装置１３００の入力部１３１０に備わっている上下カーソルボタン１４０１、１４０２を用いて画面上のフォーカス１８０１を移動させることができる。更にＯＫボタン１４０５を押下すると、現在フォーカスが当たっている番組が再生対象として選択される。ＥＰＧ１７０２は当該番組のレコード識別子をレコーディングマネージャ１７０４ｈから取得して知っており、ユーザによって再生対象番組が選択されると、当該番組のレコード識別子をサービスマネージャ１７０４ｆに通知する。 サービスマネージャ１７０４ｆは、その情報に基づいて、当該番組を２次記憶部１３０７から読み出して再生する。
【０１５８】
以上説明した構成による本実施例において特徴的な動作を、以下にフローチャートを用いて説明する。
【０１５９】
図２９は、２次記憶部１３０７に記録されたＭＰＥＧ２トランスポートストリームからサービスを再生する場合のフローチャートである。
【０１６０】
まず、ユーザがＥＰＧ１７０２にＭＰＥＧ２トランスポートストリームからのサービス再生を指示する（Ｓ２９０１）。それによって、サービスマネージャ１７０４ｆに２次記憶部１３０７に記録されたＭＰＥＧ２トランスポートストリームからのサービス再生の指示、および、そのサービスを特定するレコード識別子が与えられる。次いで、サービスマネージャ１７０４ｆは、ＪＭＦ１７０４ａに２次記憶部１３０７に記録されたＭＰＥＧ２トランスポートストリームからの映像と音声の再生を指示することで、ＪＭＦ１７０４ａが映像と音声の再生を開始する（Ｓ２９０２）。また、サービスマネージャ１７０４ｆは、ＡＭ１７０４ｂに対して、２次記憶部１３０７に記録されたＭＰＥＧ２トランスポートストリームを指定することで、ＡＭ１７０４ｂのＡＩＴ監視部２７１１はＡＩＴ検出を開始する（Ｓ２９０３）。
【０１６１】
ここで、更新されたＡＩＴが検出された場合は、ＡＩＴにおける制御情報にもとづいて対応するＪａｖａプログラムを制御する（Ｓ２９０４）。ＡＩＴに「ａｕｔｏｓｔａｒｔ」の制御情報が指定されたＪａｖａプログラムに対しては、ＡＭ１７０４ｂのアプリケーション状態管理部２７１２はそのＪａｖａプログラムを起動する（Ｓ２９０５）。ＡＩＴに「ｋｉｌｌ」の制御情報が指定されたＪａｖａプログラムに対しては、ＡＭ１７０４ｂのアプリケーション状態管理部２７１２はそのＪａｖａプログラムを終了する（Ｓ２９０６）。次いで、ＡＭ１７０４ｂのＡＩＴ監視部２７１１は、その更新されたＡＩＴを特殊再生マネージャ１７０４ｇの特殊再生区間処理管理部２７０３へ通知する（Ｓ２９０７）。
【０１６２】
図２８Ａあるいは図２８ＢはそれぞれＡＩＴの一例である。ＡＩＴが更新されるごとに、ＡＩＴ監視部２７１１から特殊再生区間処理管理部２７０３へ更新されたＡＩＴが通知される。特殊再生区間処理管理部２７０３は、通知されたＡＩＴを解析することで、特殊再生区間処理管理部２７０３に保持されている特殊再生区間処理情報中の各Ｊａｖａプログラムに対応する一時停止フラグを更新する。例えば、ＡＩＴ監視部２７１１において図２８Ａで示されるＡＩＴが検出された後に、図２８Ｂで示されるＡＩＴが検出された場合は、特殊再生区間処理管理部２７０３に保持されている特殊再生区間処理情報中のＪａｖａプログラム識別子“３０１”に対応する一時停止フラグ値が“ｔｒｕｅ”から“ｆａｌｓｅ”へ更新される。
【０１６３】
そして、特殊再生区間処理管理部２７０３に保持されている特殊再生区間処理情報の更新に応じて、特殊再生マネージャ１７０４ｇにおいて処理がなされる（Ｓ２９０８）。その処理に関しては後述する。その後、ＡＩＴ監視部２７１１によるＡＩＴ検出へ戻る（Ｓ２９０３）。
【０１６４】
更新されたＡＩＴが検出されなかった場合は、Ｊａｖａプログラムが特殊再生を指示したか判定する（Ｓ２９０９）。ここで、Ｊａｖａプログラムがｆａｃｔｏｒを“２．０”としてｓｅｔＲａｔｅ（）を呼び出した、すなわち、特殊再生が指示された場合は、ＪＭＦ１７０４ａは、２次記憶部１３０７からのＭＰＥＧ２トランスポートストリームの読出速度を通常の２倍に設定する（Ｓ２９１０）。特殊再生が指示されなかった場合は、ＡＩＴ監視部２７１１によるＡＩＴ検出へ戻る（Ｓ２９０３）。次いで、ＪＭＦ１７０４ａは、変更前後のＭＰＥＧ２トランスポートストリームの読出速度の値を特殊再生マネージャ１７０４ｇの特殊再生開始／終了判定部２７０１へ通知する（Ｓ２９１１）。
【０１６５】
そして、ＭＰＥＧ２トランスポートストリームの再生速度の変更に応じて、特殊再生マネージャ１７０４ｇにおいて処理がなされる（Ｓ２９１２）。その処理に関しては後述する。その後、ＡＩＴ監視部２７１１によるＡＩＴ検出へ戻る（Ｓ２９０３）。
【０１６６】
図３０は、ＭＰＥＧ２トランスポートストリームの再生速度の変更に応じて、特殊再生マネージャ１７０４ｇにおいて処理される流れを示したフローチャートである。
【０１６７】
ＪａｖａプログラムによってｓｅｔＲａｔｅ（）を呼び出されてＭＰＥＧ２トランスポートストリームの再生速度が変更された場合に、ＪＭＦ１７０４ａから変更前後の再生速度が特殊再生マネージャ１７０４ｇの特殊再生開始／終了判定部２７０１へ通知されると、まず特殊再生開始／終了判定部２７０１は変更前の再生速度が“１．０”か判定する（Ｓ３００１）。変更前の再生速度が“１．０”ならば、さらに変更後の再生速度が“１．０”か判定して（Ｓ３００２）、変更後の再生速度が“１．０”でなければ、特殊再生が開始されたと判定する。そして、その判定結果を特殊再生区間処理管理部２７０３へ引き渡す。変更後の再生速度が“１．０”ならば、何もしない。
【０１６８】
特殊再生区間処理管理部２７０３は、特殊再生が開始されたとの結果を受けると、保持されている特殊再生区間処理情報において、一時停止フラグ値が“ｔｒｕｅ”であるＪａｖａプログラム識別子があるか判定する（Ｓ３００３）。ここで、図４１を参照すれば、一時停止フラグ値が“ｔｒｕｅ”であるＪａｖａプログラム識別子は“３０１”となる。特殊再生区間処理管理部２７０３は、そのＪａｖａプログラム識別子とともに、特殊再生が開始されたとの結果、すなわち、特殊再生フラグ値“ｏｎ”を特殊再生区間処理部２７０２へ引き渡して、そのＪａｖａプログラム識別子に対応するＪａｖａプログラムを一時停止させる処理を指示する（Ｓ３００４）。特殊再生区間処理部２７０２は、Ｊａｖａプログラム識別子“３０１”を引数として、ＡＭ１７０４ｂにおけるアプリケーション状態管理部２７１２が提供するｐａｕｓｅメソッドを呼び出すことで、そのＪａｖａプログラム識別子に対応するＪａｖａプログラムの一時停止させる処理を指示する（Ｓ３００５）。
【０１６９】
また、特殊再生開始／終了判定部２７０１において、変更前の再生速度が“１．０”でなければ、さらに変更後の再生速度が“１．０”か判定して（Ｓ３００６）、変更後の再生速度が“１．０”であれば、特殊再生が終了されたと判定する。そして、その判定結果を特殊再生区間処理管理部２７０３へ引き渡す。変更後の再生速度が“１．０”でなければ、何もしない。
【０１７０】
特殊再生区間処理管理部２７０３は、特殊再生が終了されたとの結果を受けると、保持されている特殊再生区間処理情報において、一時停止フラグ値が“ｔｒｕｅ”であるＪａｖａプログラム識別子があるか判定する（Ｓ３００７）。ここで、図４１を参照すれば、一時停止フラグ値が“ｔｒｕｅ”であるＪａｖａプログラム識別子は“３０１”となる。特殊再生区間処理管理部２７０３は、そのＪａｖａプログラム識別子とともに、特殊再生が終了されたとの結果、すなわち、特殊再生フラグ値“ｏｆｆ”を特殊再生区間処理部２７０２へ引き渡して、そのＪａｖａプログラム識別子に対応するＪａｖａプログラムを一時停止から再開する処理を指示する（Ｓ３００８）。特殊再生区間処理部２７０２は、Ｊａｖａプログラム識別子“３０１”を引数として、ＡＭ１７０４ｂにおけるアプリケーション状態管理部２７１２が提供するｒｅｓｕｍｅメソッドを呼び出すことで、そのＪａｖａプログラム識別子に対応するＪａｖａプログラムの一時停止から再開する処理を指示する（Ｓ３００９）。
【０１７１】
図３１は、特殊再生区間処理管理部２７０３に保持されている特殊再生区間処理情報の更新に応じて、特殊再生マネージャ１７０４ｇにおいて処理される流れを示したフローチャートである。
【０１７２】
更新されたＡＩＴが検出された場合に特殊再生区間処理管理部２７０３に保持されている特殊再生区間処理情報が更新されると、特殊再生区間処理管理部２７０３はいずれかのＪａｖａプログラムに対応する一時停止フラグ値が変更されたか判定する（Ｓ３１０１）。ここで、一時停止フラグ値が変更されたか判定するために、更新前にその時点における一時停止フラグ値を含めた特殊再生区間処理情報をバッファに退避させておく。バッファ上に退避された一時停止フラグ値と、特殊再生区間処理情報中の一時停止フラグ値とを比較することで、更新前後で一時停止フラグ値が変更されたか判定する。一時停止フラグ値が変更されていない場合は、何もしない。一時停止フラグ値が変更されている場合は、特殊再生区間処理管理部２７０３は変更後の値を保持して（Ｓ３１０２）、その後、特殊再生区間処理情報の特殊再生フラグによって、現時点において特殊再生中であるか判定する（Ｓ３１０３）。
【０１７３】
特殊再生フラグ値が“ｏｆｆ”、すなわち、現時点で特殊再生中でない場合は、何もしない。特殊再生フラグ値が“ｏｎ”、すなわち、現時点で特殊再生中である場合は、一時停止フラグ値が“ｔｒｕｅ”から“ｆａｌｓｅ”へ変更されたか、あるいは、“ｆａｌｓｅ”から“ｔｒｕｅ”へ変更されたか判定する（Ｓ３１０４）。後者の場合、すなわち、一時停止フラグ値が“ｆａｌｓｅ”から“ｔｒｕｅ”へ変更された場合は、その一時停止フラグに対応するＪａｖａプログラム識別子とともに、特殊再生が開始されたとの結果、すなわち、特殊再生フラグ値“ｏｎ”を特殊再生区間処理部２７０２へ引き渡して、そのＪａｖａプログラム識別子に対応するＪａｖａプログラムを一時停止させる処理を指示する（Ｓ３１０５）。特殊再生区間処理部２７０２は、Ｊａｖａプログラム識別子“３０１”を引数として、ＡＭ１７０４ｂにおけるアプリケーション状態管理部２７１２が提供するｐａｕｓｅメソッドを呼び出すことで、そのＪａｖａプログラム識別子に対応するＪａｖａプログラムの一時停止させる処理を指示する（Ｓ３１０６）。
【０１７４】
前者の場合、すなわち、一時停止フラグ値が“ｔｒｕｅ”から“ｆａｌｓｅ”へ変更された場合は、その一時停止フラグに対応するＪａｖａプログラム識別子とともに、特殊再生が終了されたとの結果、すなわち、特殊再生フラグ値“ｏｆｆ”を特殊再生区間処理部２７０２へ引き渡して、そのＪａｖａプログラム識別子に対応するＪａｖａプログラムを一時停止から再開する処理を指示する（Ｓ３１０７）。特殊再生区間処理部２７０２は、Ｊａｖａプログラム識別子“３０１”を引数として、ＡＭ１７０４ｂにおけるアプリケーション状態管理部２７１２が提供するｒｅｓｕｍｅメソッドを呼び出すことで、そのＪａｖａプログラム識別子に対応するＪａｖａプログラムの一時停止から再開する処理を指示する（Ｓ３１０８）。
【０１７５】
以上説明したように、実施の形態１によれば、特殊再生中には一時停止フラグが設定されているＪａｖａプログラムを一時停止状態にすることで、特殊再生中におけるＪａｖａプログラムの予期しない挙動を未然に防止することが可能となる。
【０１７６】
（実施の形態２）
以下に、本発明の実施の形態２に係る装置および方法を、図面を参照しながら説明する。
【０１７７】
実施の形態２に用いるハードウェア構成等は、本発明の実施の形態１と同様であるので、図１から図１６までを援用することとする。図中の構成要素は、実施の形態１の同一名称、同一符号の構成要素と同様の機能をもつため、再度の説明は省略する。
【０１７８】
実施の形態２のソフトウェア構成は、図１７に示すものと同様である。ＡＭ１７０４ｂ、および、特殊再生マネージャ１７０４ｇ以外の構成要素は、実施の形態１のソフトウェア構成の同一名称、同一符号の構成要素と同様の機能をもつため、再度の説明は省略する。また、実施の形態２で用いる各種データ形式は、図２０から図２２までの図面、および、図４１に示すものと同様であるため、再度の説明は省略する。
【０１７９】
図３２は、Ｊａｖａライブラリ１７０４におけるＡＭ１７０４ｂ、および、特殊再生マネージャ１７０４ｇの詳細な構成を示す図である。
【０１８０】
ＡＭ１７０４ｂは、ＡＩＴ監視部２７１１と、アプリケーション状態管理部２７１２で構成される。アプリケーション状態管理部２７１２は、実施の形態１と同様の機能をもつため、再度の説明は省略する。
【０１８１】
ＡＩＴ監視部２７１１は、実施の形態１と同様に、ＭＰＥＧ２トランスポートストリームとチャンネル識別子を入力として、ＡＩＴの更新状況を監視する。実施の形態１においては、ＡＩＴが更新された場合に、特殊再生区間処理管理部２７０３、および、アプリケーション状態管理部２７１２へ更新されたＡＩＴを通知するが、本実施の形態においては、アプリケーション状態管理部２７１２のみへ更新されたＡＩＴを通知する。特殊再生区間処理管理部２７０３へ更新されたＡＩＴを通知する動作を除いて、本実施の形態におけるＡＩＴ監視部２７１１の動作は、実施の形態１におけるＡＩＴ監視部２７１１の動作と同様である。
【０１８２】
特殊再生マネージャ１７０４ｇは、特殊再生開始／終了判定部２７０１、特殊再生区間処理部２７０２、特殊再生区間処理管理部２７０３、および、特殊再生区間処理情報登録特権判定部３２０１で構成される。特殊再生開始／終了判定部２７０１、および、特殊再生区間処理部２７０２は、それぞれ実施の形態１と同様の機能をもつため、再度の説明は省略する。
【０１８３】
特殊再生区間処理管理部２７０３は、実施の形態１と同様に、各Ｊａｖａプログラムに対する特殊再生開始／終了時の処理を記述する特殊再生区間処理情報を保持するとともに、その特殊再生区間処理情報にもとづいて、特殊再生区間処理部２７０２へ適切なＪａｖａプログラムに対する特殊再生開始／終了時の処理を指示する。実施の形態１においては、ＡＩＴが更新された場合に、ＡＩＴ監視部２７１１から更新されたＡＩＴが通知されて、そのＡＩＴにもとづいて保持する特殊再生区間処理情報中の一時停止フラグが更新されるが、本実施の形態においては、ＡＩＴが更新された場合であっても、ＡＩＴ監視部２７１１から更新されたＡＩＴは通知されない。特殊再生区間処理管理部２７０３は、一時停止フラグ値を引数としてもつｓｅｔＰａｕｓｉｎｇＦｌａｇ（ｉｎｔ  ａｐｐＩＤ，ｂｏｏｌｅａｎ  ｐａｕｓｉｎｇＦｌａｇ）メソッドをＪａｖａＡＰＩとして提供する。
【０１８４】
ここで、引数ａｐｐＩＤは一時停止フラグ値を設定する対象のＪａｖａプログラム識別子であって、引数ｐａｕｓｉｎｇＦｌａｇは一時停止フラグ値である。あるＪａｖａプログラムからｓｅｔＰａｕｓｉｎｇＦｌａｇメソッドが呼び出されることで、保持する特殊再生区間処理情報中の一時停止フラグが更新される。例えば、ＪａｖａプログラムからｓｅｔＰａｕｓｉｎｇＦｌａｇ（３０１，ｔｒｕｅ）と呼び出されれば、Ｊａｖａプログラム識別子“３０１”をもつＪａｖａプログラムに対応する一時停止フラグは“ｔｒｕｅ”と設定される。一方、ＪａｖａプログラムからｓｅｔＰａｕｓｉｎｇＦｌａｇ（３０１，ｆａｌｓｅ）と呼び出されれば、Ｊａｖａプログラム識別子“３０１”をもつＪａｖａプログラムに対応する一時停止フラグは“ｆａｌｓｅ”と設定される。
【０１８５】
特殊再生区間処理管理部２７０３は、ｓｅｔＰａｕｓｉｎｇＦｌａｇメソッドが呼び出されると、まず呼出元のＪａｖａプログラムが一時停止フラグを更新する特権、すなわち、パーミッションをもつか判定するために、特殊再生区間処理情報登録特権判定部３２０１へ、呼出元のＪａｖａプログラム識別子を引き渡す。特殊再生区間処理情報登録特権判定部３２０１からは、引き渡したＪａｖａプログラムが一時停止フラグを更新する特権をもつか判定した結果が返される。
【０１８６】
特殊再生区間処理情報登録特権判定部３２０１からの判定結果が、呼出元のＪａｖａプログラムは一時停止フラグを更新する特権をもたないことを示す場合は、呼出元のＪａｖａプログラムへその旨を返す。一方、呼出元のＪａｖａプログラムは一時停止フラグを更新する特権をもつことを示す場合は、その時点における一時停止フラグ値を含めた特殊再生区間処理情報をバッファに退避させておいて、そのＪａｖａプログラムが指定した一時停止フラグ値を設定する。次に、Ｊａｖａプログラムに対応する一時停止フラグ値が変更されたか判定する。バッファ上に退避された一時停止フラグ値と、特殊再生区間処理情報中の一時停止フラグ値とを比較することで、更新前後でどのＪａｖａプログラムの一時停止フラグ値が変更されたか判定する。ここで、一時停止フラグ値が変更されていない場合は、何もしない。一時停止フラグ値が変更されている場合は、特殊再生区間処理管理部２７０３は変更後の値を保持して、その後、特殊再生区間処理情報の特殊再生フラグによって、現時点において特殊再生中であるか判定する。特殊再生フラグ値が“ｏｆｆ”、すなわち、現時点で特殊再生中でない場合は、何もしない。特殊再生フラグ値が“ｏｎ”、すなわち、現時点で特殊再生中である場合は、一時停止フラグ値が“ｔｒｕｅ”から“ｆａｌｓｅ”へ変更されたか、あるいは、“ｆａｌｓｅ”から“ｔｒｕｅ”へ変更されたか判定する。
【０１８７】
前者の場合、すなわち、一時停止フラグ値が“ｔｒｕｅ”から“ｆａｌｓｅ”へ変更された場合は、その一時停止フラグに対応するＪａｖａプログラム識別子とともに、特殊再生が終了されたとの結果、すなわち、特殊再生フラグ値“ｏｆｆ”を特殊再生区間処理部２７０２へ引き渡して、そのＪａｖａプログラム識別子に対応するＪａｖａプログラムを一時停止から再開する処理を指示する。
【０１８８】
後者の場合、すなわち、一時停止フラグ値が“ｆａｌｓｅ”から“ｔｒｕｅ”へ変更された場合は、その一時停止フラグに対応するＪａｖａプログラム識別子とともに、特殊再生が開始されたとの結果、すなわち、特殊再生フラグ値“ｏｎ”を特殊再生区間処理部２７０２へ引き渡して、そのＪａｖａプログラム識別子に対応するＪａｖａプログラムを一時停止させる処理を指示する。
【０１８９】
特殊再生区間処理情報登録特権判定部３２０１は、指定されたＪａｖａプログラム識別子に対応するＪａｖａプログラムが、特殊再生区間処理情報中の一時停止フラグを更新する特権をもつかどうか判定する。特殊再生区間処理管理部２７０３からＪａｖａプログラム識別子が引き渡されると、そのＪａｖａプログラム識別子に対応するＪａｖａプログラムが特殊再生区間処理情報中の一時停止フラグを更新するためのパーミッションをもつかどうか判定して、その後、そのパーミッションをもつ場合は、特殊再生区間処理管理部２７０３へ特殊再生区間処理情報中の一時停止フラグの更新を許可する。
【０１９０】
ここで、特殊再生区間処理情報中の一時停止フラグを更新する特権、すなわち、パーミッションは、例えば、ＯＣＡＰ仕様書におけるＭｏｎｉｔｏｒＡｐｐＰｅｒｍｉｓｓｉｏｎなどで設定できる。これは、Ｊａｖａプログラムが格納されているディレクトリ中にパーミッション記述ファイルをあわせて格納しておき、そのパーミッション記述ファイルに許可された特権の一覧を持つ方式である。例えば、ｏｃａｐ．ａｐｐｌｉｃａｔｉｏｎ名．ｐｅｒｍという名前のファイルに、＜ｏｃａｐ:ｍｏｎｉｔｏｒａｐｐｌｉｃａｔｉｏｎ  ｎａｍｅ＝“ｓｅｔＰａｕｓｉｎｇＦｌａｇ”  ｖａｌｕｅ＝ｔｒｕｅ＞＜／ｏｃａｐ:ｍｏｎｉｔｏｒａｐｐｌｉｃａｔｉｏｎ＞のような形式で記述すると、ａｐｐｌｉｃａｔｉｏｎ名で指定されたＪａｖａプログラムは特殊再生区間処理情報中の一時停止フラグを更新する特権を持つことができる。
【０１９１】
まずＪａｖａプログラムが特殊再生マネージャ１７０４ｇの特殊再生区間処理管理部２７０３が提供するｓｅｔＰａｕｓｉｎｇＦｌａｇメソッドを呼び出して、特殊再生区間処理情報中の一時停止フラグ値の設定を要求する。特殊再生区間処理管理部２７０３は、特殊再生区間処理情報登録特権判定部３２０１へ、ｓｅｔＰａｕｓｉｎｇＦｌａｇメソッドを呼び出したＪａｖａプログラムに対応するＪａｖａプログラム識別子を引き渡して、そのＪａｖａプログラムが一時停止フラグを更新する特権をもつかどうか判定する。ここで、そのＪａｖａプログラムが一時停止フラグを更新する特権をもたない場合は、特殊再生区間処理管理部２７０３へその旨を返して終了する。そのＪａｖａプログラムが一時停止フラグを更新する特権をもつ場合は、特殊再生区間処理管理部２７０３へその旨を返す。
【０１９２】
以上説明した構成による本実施例において特徴的な動作を、以下にフローチャートを用いて説明する。
【０１９３】
図３３は、Ｊａｖａプログラムが特殊再生マネージャ１７０４ｇへ特殊再生区間処理情報中の一時停止フラグの更新を指示する場合のフローチャートである。
【０１９４】
まずＪａｖａプログラムが特殊再生マネージャ１７０４ｇの特殊再生区間処理管理部２７０３が提供するｓｅｔＰａｕｓｉｎｇＦｌａｇメソッドを呼び出して、特殊再生区間処理情報中の一時停止フラグ値の設定を要求する（Ｓ３３０１）。特殊再生区間処理管理部２７０３は、特殊再生区間処理情報登録特権判定部３２０１へ、ｓｅｔＰａｕｓｉｎｇＦｌａｇメソッドを呼び出したＪａｖａプログラムに対応するＪａｖａプログラム識別子を引き渡して、そのＪａｖａプログラムが一時停止フラグを更新する特権をもつかどうか判定する（Ｓ３３０２）。ここで、そのＪａｖａプログラムが一時停止フラグを更新する特権をもたない場合は、特殊再生区間処理管理部２７０３へその旨を返して終了する。そのＪａｖａプログラムが一時停止フラグを更新する特権をもつ場合は、特殊再生区間処理管理部２７０３へその旨を返して、そのＪａｖａプログラムが指定した一時停止フラグ値を設定する（Ｓ３３０３）。ここで、Ｊａｖａプログラムに対応する一時停止フラグ値が変更されたか判定する（Ｓ３３０４）。ここで、一時停止フラグ値が変更されたか判定するために、更新前にその時点における一時停止フラグ値を含めた特殊再生区間処理情報をバッファに退避させておく。バッファ上に退避された一時停止フラグ値と、特殊再生区間処理情報中の一時停止フラグ値とを比較することで、更新前後で一時停止フラグ値が変更されたか判定する。
【０１９５】
ここで、一時停止フラグ値が変更されていない場合は、何もしない。一時停止フラグ値が変更されている場合は、特殊再生区間処理管理部２７０３は変更後の値を保持して（Ｓ３３０５）、その後、特殊再生区間処理情報の特殊再生フラグによって、現時点において特殊再生中であるか判定する（Ｓ３３０６）。特殊再生フラグ値が“ｏｆｆ”、すなわち、現時点で特殊再生中でない場合は、何もしない。特殊再生フラグ値が“ｏｎ”、すなわち、現時点で特殊再生中である場合は、一時停止フラグ値が“ｔｒｕｅ”から“ｆａｌｓｅ”へ変更されたか、あるいは、“ｆａｌｓｅ”から“ｔｒｕｅ”へ変更されたか判定する（Ｓ３３０７）。後者の場合、すなわち、一時停止フラグ値が“ｆａｌｓｅ”から“ｔｒｕｅ”へ変更された場合は、その一時停止フラグに対応するＪａｖａプログラム識別子とともに、特殊再生が開始されたとの結果、すなわち、特殊再生フラグ値“ｏｎ”を特殊再生区間処理部２７０２へ引き渡して、そのＪａｖａプログラム識別子に対応するＪａｖａプログラムを一時停止させる処理を指示する（Ｓ３３０８）。特殊再生区間処理部２７０２は、Ｊａｖａプログラム識別子“３０１”を引数として、ＡＭ１７０４ｂにおけるアプリケーション状態管理部２７１２が提供するｐａｕｓｅメソッドを呼び出すことで、そのＪａｖａプログラム識別子に対応するＪａｖａプログラムの一時停止させる処理を指示する（Ｓ３３０９）。
【０１９６】
前者の場合、すなわち、一時停止フラグ値が“ｔｒｕｅ”から“ｆａｌｓｅ”へ変更された場合は、その一時停止フラグに対応するＪａｖａプログラム識別子とともに、特殊再生が終了されたとの結果、すなわち、特殊再生フラグ値“ｏｆｆ”を特殊再生区間処理部２７０２へ引き渡して、そのＪａｖａプログラム識別子に対応するＪａｖａプログラムを一時停止から再開する処理を指示する（Ｓ３３１０）。特殊再生区間処理部２７０２は、Ｊａｖａプログラム識別子“３０１”を引数として、ＡＭ１７０４ｂにおけるアプリケーション状態管理部２７１２が提供するｒｅｓｕｍｅメソッドを呼び出すことで、そのＪａｖａプログラム識別子に対応するＪａｖａプログラムの一時停止から再開する処理を指示する（Ｓ３３１１）。
【０１９７】
図３４は、２次記憶部１３０７に記録されたＭＰＥＧ２トランスポートストリームからサービスを再生する場合のフローチャートである。
【０１９８】
まず、ユーザがＥＰＧ１７０２にＭＰＥＧ２トランスポートストリームからのサービス再生を指示する（Ｓ３４０１）。それによって、サービスマネージャ１７０４ｆに２次記憶部１３０７に記録されたＭＰＥＧ２トランスポートストリームからのサービス再生の指示、および、そのサービスを特定するレコード識別子が与えられる。次いで、サービスマネージャ１７０４ｆは、ＪＭＦ１７０４ａに２次記憶部１３０７に記録されたＭＰＥＧ２トランスポートストリームからの映像と音声の再生を指示することで、ＪＭＦ１７０４ａが映像と音声の再生を開始する（Ｓ３４０２）。また、サービスマネージャ１７０４ｆは、ＡＭ１７０４ｂに対して、２次記憶部１３０７に記録されたＭＰＥＧ２トランスポートストリームを指定することで、ＡＭ１７０４ｂのＡＩＴ監視部２７１１はＡＩＴ検出を開始する（Ｓ３４０３）。
【０１９９】
ここで、更新されたＡＩＴが検出された場合は、ＡＩＴにおける制御情報にもとづいて対応するＪａｖａプログラムを制御する（Ｓ３４０４）。ＡＩＴに「ａｕｔｏｓｔａｒｔ」の制御情報が指定されたＪａｖａプログラムに対しては、ＡＭ１７０４ｂのアプリケーション状態管理部２７１２はそのＪａｖａプログラムを起動する（Ｓ３４０５）。ＡＩＴに「ｋｉｌｌ」の制御情報が指定されたＪａｖａプログラムに対しては、ＡＭ１７０４ｂのアプリケーション状態管理部２７１２はそのＪａｖａプログラムを終了する（Ｓ３４０６）。その後、ＡＩＴ監視部２７１１によるＡＩＴ検出へ戻る（Ｓ３４０３）。
【０２００】
更新されたＡＩＴが検出されなかった場合は、Ｊａｖａプログラムが特殊再生を指示したか判定する（Ｓ３４０７）。ここで、Ｊａｖａプログラムがｆａｃｔｏｒを“２．０”としてｓｅｔＲａｔｅ（）を呼び出した、すなわち、特殊再生が指示された場合は、ＪＭＦ１７０４ａは、２次記憶部１３０７からのＭＰＥＧ２トランスポートストリームの読出速度を通常の２倍に設定する（Ｓ３４０８）。特殊再生が指示された場合は、ＡＩＴ監視部２７１１によるＡＩＴ検出へ戻る（Ｓ３４０３）。次いで、ＪＭＦ１７０４ａは、変更前後のＭＰＥＧ２トランスポートストリームの読出速度の値を特殊再生マネージャ１７０４ｇの特殊再生開始／終了判定部２７０１へ通知する（Ｓ３４０９）。
【０２０１】
そして、ＭＰＥＧ２トランスポートストリームの再生速度の変更に応じて、特殊再生マネージャ１７０４ｇにおいて処理がなされる（Ｓ３４１０）。その処理に関しては実施の形態１と同様であるので、図３０を参照して再度の説明は省略する。その後、ＡＩＴ監視部２７１１によるＡＩＴ検出へ戻る（Ｓ３４０３）。
【０２０２】
以上説明したように、実施の形態２によれば、特殊再生中には一時停止フラグが設定されているＪａｖａプログラムを一時停止状態にすることで、特殊再生中におけるＪａｖａプログラムの予期しない挙動を未然に防止することが可能となる。また、Ｊａｖａプログラムによって一時停止フラグを設定することで、ＡＩＴによる一時停止フラグの制御よりも柔軟な制御が可能となる。
【０２０３】
（実施の形態３）
以下に、本発明の実施の形態３に係る装置および方法を、図面を参照しながら説明する。
【０２０４】
実施の形態３に用いるハードウェア構成等は、本発明の実施の形態１と同様であるので、図１から図１６までを援用することとする。図中の構成要素は、実施の形態１の同一名称、同一符号の構成要素と同様の機能をもつため、再度の説明は省略する。
【０２０５】
実施の形態３のソフトウェア構成は、図１７に示すものと同様である。ＡＭ１７０４ｂ、特殊再生マネージャ１７０４ｇ、および、グラフィックス１７０４ｉ以外の構成要素は、実施の形態１のソフトウェア構成の同一名称、同一符号の構成要素と同様の機能をもつため、再度の説明は省略する。また、実施の形態３で用いる各種データ形式は、図２２および図４１以外は図２０から図２１までの図面と同様であるため、再度の説明は省略する。
【０２０６】
図３５は、Ｊａｖａライブラリ１７０４におけるＡＭ１７０４ｂ、特殊再生マネージャ１７０４ｇ、および、グラフィックス１７０４ｉの詳細な構成を示す図である。
【０２０７】
ＡＭ１７０４ｂは、実施の形態１と同様に、ＡＩＴ監視部２７１１と、アプリケーション状態管理部２７１２で構成される。ＡＩＴ監視部２７１１は、実施の形態１と同様の機能をもつため、再度の説明は省略する。
【０２０８】
アプリケーション状態管理部２７１２は、実施の形態１においては、特殊再生区間処理部２７０２から要求されることで、あるいは、ＡＩＴ監視部２７１１から引き渡された更新されたＡＩＴの内容を解析することで、Ｊａｖａプログラムの実行状態を管理したが、本実施の形態においては、ＡＩＴ監視部２７１１から引き渡された更新されたＡＩＴの内容を解析することのみで、Ｊａｖａプログラムの実行状態を管理する。特殊再生区間処理部２７０２から要求された場合の動作を除いて、本実施の形態におけるアプリケーション状態管理部２７１２の動作は、実施の形態１におけるアプリケーション状態管理部２７１２の動作と同様である。
【０２０９】
特殊再生マネージャ１７０４ｇは、特殊再生開始／終了判定部２７０１、特殊再生区間処理部２７０２、および、特殊再生区間処理管理部２７０３で構成される。特殊再生開始／終了判定部２７０１は、実施の形態１と同様の機能をもつため、再度の説明は省略する。
【０２１０】
特殊再生区間処理管理部２７０３は、特殊再生開始／終了判定部２７０１からの判定結果にもとづいて、あるいは、ＡＩＴ監視部２７１１によって通知される更新されたＡＩＴにもとづいて、特殊再生区間処理部２７０２へＪａｖａプログラムに対する特殊再生開始／終了時の処理を指示する。具体的には、特殊再生区間処理部２７０２へ処理対象となるＪａｖａプログラム識別子、および、特殊再生フラグ値を引き渡して処理させる。
【０２１１】
まず、特殊再生開始／終了判定部２７０１からの判定結果にもとづいて、特殊再生区間処理部２７０２へＪａｖａプログラムに対する特殊再生開始／終了時の処理を指示する場合を以下に説明する。
【０２１２】
特殊再生開始／終了判定部２７０１からその判定結果が通知されると、まず特殊再生区間処理管理部２７０３は、自身が保持する特殊再生区間処理情報を参照して、処理すべきＪａｖａプログラムに対応するＪａｖａプログラム識別子を特定する。
【０２１３】
図４２は特殊再生区間処理管理部２７０３が保持する特殊再生区間処理情報の一例である。図４２において、列２２０１、列２２０４、列３６０５、列４１０１は、それぞれＪａｖａプログラム識別子、それに対応するプログラム名、非表示フラグ、特殊再生フラグである。
【０２１４】
特殊再生フラグは、実施の形態１と同様に、現時点においてＭＰＥＧ２トランスポートストリームの再生が特殊再生状態にあるかどうかを表すフラグである。
【０２１５】
非表示フラグは、特殊再生中にＪａｖａプログラムが描画するグラフィックスを非表示にするかどうかを表すフラグである。非表示フラグ値が“ｔｒｕｅ”である場合は特殊再生状態になれば、対応するＪａｖａプログラムが描画するグラフィックスを非表示として、その後、特殊再生が解除されて通常再生状態になれば、非表示としたＪａｖａプログラムが描画するグラフィックスを再び表示することを意味する。また、非表示フラグ値が“ｆａｌｓｅ”である場合は特殊再生状態になったとしても、対応するＪａｖａプログラムが描画するグラフィックスを非表示とせずに、表示し続けることを意味する。例えば、図４２を参照して、Ｊａｖａプログラム識別子“３０１”に対応するＪａｖａプログラム“／ａ／ＴｏｐＸｌｅｔ”は、非表示フラグ値が“ｔｒｕｅ”であるので、特殊再生中に描画するグラフィックスを非表示とする。
【０２１６】
特殊再生区間処理管理部２７０３は、上述の非表示フラグにもとづいて、特殊再生区間処理部２７０２へ引き渡すＪａｖａプログラム識別子を特定する。具体的には、非表示フラグ値が“ｔｒｕｅ”と設定されているＪａｖａプログラム識別子を、特殊再生区間処理部２７０２へ特殊再生フラグ値とともに引き渡す。例えば、ここで、図４２を参照すれば、非表示フラグ値が“ｔｒｕｅ”であるＪａｖａプログラム識別子は“３０１”となる。特殊再生開始／終了判定部２７０１が特殊再生開始と判定した場合、特殊再生区間処理管理部２７０３は、そのＪａｖａプログラム識別子とともに、特殊再生が開始されたとの結果、すなわち、特殊再生フラグ値“ｏｎ”を特殊再生区間処理部２７０２へ引き渡して、そのＪａｖａプログラムによって描画されるグラフィックスを非表示とする処理を指示する。また、特殊再生を終了した場合、特殊再生区間処理管理部２７０３は、そのＪａｖａプログラム識別子とともに、特殊再生が終了されたとの結果、すなわち、特殊再生フラグ値“ｏｆｆ”を特殊再生区間処理部２７０２へ引き渡して、そのＪａｖａプログラムによって描画されるグラフィックスを再び表示する処理を指示する。
【０２１７】
次いで、ＡＩＴ監視部２７１１によって通知される更新されたＡＩＴにもとづいて、特殊再生区間処理部２７０２へＪａｖａプログラムに対する特殊再生開始／終了時の処理を指示する場合を説明する。
【０２１８】
図３６Ａあるいは図３６Ｂはそれぞれ、ＡＭ１７０４ｂのＡＩＴ監視部２７１１から通知されるＡＩＴの一例である。図３６Ａあるいは図３６ＢにおけるＪａｖａプログラム識別子２２０１、制御情報２２０２、ＤＳＭ−ＣＣ識別子２２０３、および、プログラム名２２０４は、それぞれ図２２におけるＡＩＴと同様であるので、再度の説明を省略する。列３６０５は、各Ｊａｖａプログラムに対応する非表示フラグである。
【０２１９】
ＡＩＴが更新されるごとに、ＡＩＴ監視部２７１１から特殊再生区間処理管理部２７０３へ更新されたＡＩＴが通知される。まず、特殊再生区間処理管理部２７０３は、非表示フラグ値が変更されたか判定するために、更新前にその時点における非表示フラグ値を含めた特殊再生区間処理情報をバッファに退避させておく。次に、通知されたＡＩＴを解析することで、特殊再生区間処理管理部２７０３に保持されている特殊再生区間処理情報中の各Ｊａｖａプログラムに対応する非表示フラグを更新する。例えば、ＡＩＴ監視部２７１１において図３６Ａで示されるＡＩＴが検出された後に、図３６Ｂで示されるＡＩＴが検出された場合は、特殊再生区間処理管理部２７０３に保持されている特殊再生区間処理情報中の各Ｊａｖａプログラム識別子“３０１”に対応する非表示フラグ値が“ｔｒｕｅ”から“ｆａｌｓｅ”へ更新される。
【０２２０】
特殊再生区間処理情報が更新された場合は、特殊再生区間処理管理部２７０３は、バッファ上に退避された非表示フラグ値と、特殊再生区間処理情報中の非表示フラグ値とを比較することで、更新前後でどのＪａｖａプログラムの非表示フラグ値が変更されたか判定する。ここで、非表示フラグ値が変更されていない場合は、何もしない。非表示フラグ値が変更されている場合は、特殊再生区間処理管理部２７０３は変更後の値を保持して、その後、特殊再生区間処理情報の特殊再生フラグによって、現時点において特殊再生中であるか判定する。特殊再生フラグ値が“ｏｆｆ”、すなわち、現時点で特殊再生中でない場合は、何もしない。特殊再生フラグ値が“ｏｎ”、すなわち、現時点で特殊再生中である場合は、非表示フラグ値が“ｔｒｕｅ”から“ｆａｌｓｅ”へ変更されたか、あるいは、“ｆａｌｓｅ”から“ｔｒｕｅ”へ変更されたか判定する。
【０２２１】
前者の場合、すなわち、非表示フラグ値が“ｔｒｕｅ”から“ｆａｌｓｅ”へ変更された場合は、その非表示フラグに対応するＪａｖａプログラム識別子とともに、特殊再生が終了されたとの結果、すなわち、特殊再生フラグ値“ｏｆｆ”を特殊再生区間処理部２７０２へ引き渡して、そのＪａｖａプログラム識別子に対応するＪａｖａプログラムが描画するグラフィックスを再び表示する処理を指示する。
【０２２２】
後者の場合、すなわち、非表示フラグ値が“ｆａｌｓｅ”から“ｔｒｕｅ”へ変更された場合は、その非表示フラグに対応するＪａｖａプログラム識別子とともに、特殊再生が開始されたとの結果、すなわち、特殊再生フラグ値“ｏｎ”を特殊再生区間処理部２７０２へ引き渡して、そのＪａｖａプログラム識別子に対応するＪａｖａプログラムが描画するグラフィックスを非表示とする処理を指示する。
【０２２３】
特殊再生区間処理部２７０２は、特殊再生区間処理管理部２７０３から処理すべきＪａｖａプログラム識別子、および、特殊再生フラグ値を受け取って、そのＪａｖａプログラム識別子に対応するＪａｖａプログラムに対して適切な処理を実行する。特殊再生フラグ値が“ｏｎ”である場合は、そのＪａｖａプログラム識別子を引数として、グラフィックスプレーンフィルタ部３５０２が提供するｉｎｖａｌｉｄａｔｅ（ｉｎｔ  ａｐｐＩＤ）メソッドを呼び出すことで、そのＪａｖａプログラム識別子に対応するＪａｖａプログラムによるグラフィックスプレーン１３１４上へのグラフィックス描画の非表示を指示する。ここで、引数ａｐｐＩＤはＪａｖａプログラム識別子である。例えば、ｉｎｖａｌｉｄａｔｅ（３０１）と呼び出されれば、Ｊａｖａプログラム識別子“３０１”に対応するＪａｖａプログラムによるグラフィックスプレーン１３１４上へのグラフィックス描画の非表示とする。一方、特殊再生フラグ値が“ｏｆｆ”である場合は、そのＪａｖａプログラム識別子を引数として、グラフィックスプレーンフィルタ部３５０２が提供するｖａｌｉｄａｔｅ（ｉｎｔ  ａｐｐＩＤ）メソッドを呼び出すことで、そのＪａｖａプログラム識別子に対応するＪａｖａプログラムによるグラフィックスプレーン１３１４上へのグラフィックス描画の再表示を指示する。
【０２２４】
ここで、引数ａｐｐＩＤはＪａｖａプログラム識別子である。例えば、ｖａｌｉｄａｔｅ（３０１）と呼び出されれば、Ｊａｖａプログラム識別子“３０１”に対応するＪａｖａプログラムによるグラフィックスプレーン１３１４上へのグラフィックス描画を再び表示する。
【０２２５】
例えば、図４２を参照して、Ｊａｖａプログラム識別子“３０１”、および、特殊再生フラグ値“ｏｎ”を特殊再生区間処理管理部２７０３が特殊再生区間処理部２７０２へ引き渡した場合は、特殊再生区間処理部２７０２は、Ｊａｖａプログラム識別子“３０１”に対応するＪａｖａプログラムが描画するグラフィックスを非表示とするために、ｉｎｖａｌｉｄａｔｅ（３０１）と呼び出すことで、そのＪａｖａプログラムによるグラフィックスプレーン１３１４上へのグラフィックス描画を無効にするように指示する。また、Ｊａｖａプログラム識別子“３０１”、および、特殊再生フラグ値“ｏｆｆ”を特殊再生区間処理管理部２７０３が特殊再生区間処理部２７０２へ引き渡した場合は、特殊再生区間処理部２７０２は、Ｊａｖａプログラム識別子“３０１”に対応するＪａｖａプログラムが描画するグラフィックスを再び表示するために、ｖａｌｉｄａｔｅ（３０１）と呼び出すことで、グラフィックスプレーン１３１４へのそのＪａｖａプログラムによるグラフィックスプレーン１３１４上へのグラフィックス描画を有効にするように指示する。
【０２２６】
グラフィックス１７０４ｉは、グラフィックスプレーン描画部３５０１、および、グラフィックスプレーンフィルタ部３５０２で構成される。
【０２２７】
グラフィックスプレーン描画部３５０１は、Ｊａｖａプログラムによって描画を指示されたグラフィックスを、ライブラリ１７０１ｂを介してグラフィックスプレーン１３１４上に描画する機能を有する。これは、Ｊａｖａ  ＡＷＴ（Ａｂｓｔｒａｃｔ  Ｗｉｎｄｏｗ  Ｔｏｏｌｋｉｔ）の機能で実現される。グラフィックスプレーン１３１４上に描画されたグラフィックスはＣＰＵ１３０６からの指示によって適当な頻度でディスプレイ１３０５上へ転送されて表示される。
【０２２８】
グラフィックスプレーンフィルタ部３５０２は、特殊再生区間処理部２７０２から引き渡されるＪａｖａプログラム識別子にもとづいて、その対応するＪａｖａプログラムによるグラフィックスプレーン１３１４上へのグラフィックス描画を無効化あるいは有効化する機能を提供する。
【０２２９】
具体的には、指定されたＪａｖａプログラムが描画するグラフィックスの表示をディスプレイ１３０５上から消去する。特殊再生区間処理部２７０２からＪａｖａプログラム識別子を引数としてｉｎｖａｌｉｄａｔｅメソッドの呼出があれば、そのＪａｖａプログラム識別子に対応するＪａｖａプログラムによるグラフィックスプレーン１３１４上へのグラフィックス描画を無効化する。また、特殊再生区間処理部２７０２からＪａｖａプログラム識別子を引数としてｖａｌｉｄａｔｅメソッドの呼出があれば、そのＪａｖａプログラム識別子に対応するＪａｖａプログラムによるグラフィックスプレーン１３１４上へのグラフィックス描画を有効化する。特殊再生区間処理部２７０２から指示されて、特定のＪａｖａプログラムによるグラフィックスプレーン１３１４上へのグラフィックス描画を特殊再生中は無効に、通常再生中は有効にすることで、ディスプレイ１３０５上へはそのＪａｖａプログラムが描画を指示したグラフィックスが特殊再生中に表示されないようになる。
【０２３０】
２次記憶部１３０７に記録されたＭＰＥＧ２トランスポートストリームからサービスを再生する場合の処理の流れは、実施の形態１において図２９で示したフローチャートと同様であるので、図２９を援用することとして、再度の説明を省略する。
【０２３１】
図３７はＭＰＥＧ２トランスポートストリームの再生速度の変更に応じて、特殊再生マネージャ１７０４ｇにおいて処理される流れを示したフローチャートである。
【０２３２】
ＪａｖａプログラムによってｓｅｔＲａｔｅ（）を呼び出されてＭＰＥＧ２トランスポートストリームの再生速度が変更された場合に、ＪＭＦ１７０４ａから変更前後の再生速度が特殊再生マネージャ１７０４ｇの特殊再生開始／終了判定部２７０１へ通知されると、まず特殊再生開始／終了判定部２７０１は変更前の再生速度が“１．０”か判定する（Ｓ３７０１）。変更前の再生速度が“１．０”ならば、さらに変更後の再生速度が“１．０”か判定して（Ｓ３７０２）、変更後の再生速度が“１．０”でなければ、特殊再生が開始されたと判定する。そして、その判定結果を特殊再生区間処理管理部２７０３へ引き渡す。変更後の再生速度が“１．０”ならば、何もしない。
【０２３３】
特殊再生区間処理管理部２７０３は、特殊再生が開始されたとの結果を受けると、保持されている特殊再生区間処理情報において、非表示フラグ値が“ｔｒｕｅ”であるＪａｖａプログラム識別子があるか判定する（Ｓ３７０３）。ここで、図４２を参照すれば、非表示フラグ値が“ｔｒｕｅ”であるＪａｖａプログラム識別子は“３０１”となる。特殊再生区間処理管理部２７０３は、そのＪａｖａプログラム識別子とともに、特殊再生が開始されたとの結果、すなわち、特殊再生フラグ値“ｏｎ”を特殊再生区間処理部２７０２へ引き渡して、そのＪａｖａプログラムによって描画されるグラフィックスを非表示とする処理を指示する（Ｓ３７０４）。特殊再生区間処理部２７０２は、Ｊａｖａプログラム識別子を引数としてグラフィックスプレーンフィルタ部３５０２が提供するｉｎｖａｌｉｄａｔｅメソッドを呼び出すことで、そのＪａｖａプログラムによるグラフィックスプレーン１３１４へのグラフィックス描画を無効とする処理を指示する（Ｓ３７０５）。
【０２３４】
また、特殊再生開始／終了判定部２７０１において、変更前の再生速度が“１．０”でなければ、さらに変更後の再生速度が“１．０”か判定して（Ｓ３７０６）、変更後の再生速度が“１．０”であれば、特殊再生が終了されたと判定する。そして、その判定結果を特殊再生区間処理管理部２７０３へ引き渡す。変更後の再生速度が“１．０”でなければ、何もしない。
【０２３５】
特殊再生区間処理管理部２７０３は、特殊再生が終了されたとの結果を受けると、保持されている特殊再生区間処理情報において、非表示フラグ値が“ｔｒｕｅ”であるＪａｖａプログラム識別子があるか判定する（Ｓ３７０７）。ここで、図４２を参照すれば、非表示フラグ値が“ｔｒｕｅ”であるＪａｖａプログラム識別子は“３０１”となる。特殊再生区間処理管理部２７０３は、そのＪａｖａプログラム識別子とともに、特殊再生が終了されたとの結果、すなわち、特殊再生フラグ値“ｏｆｆ”を特殊再生区間処理部２７０２へ引き渡して、そのＪａｖａプログラムによって描画されるグラフィックスを再び表示する処理を指示する（Ｓ３７０８）。特殊再生区間処理部２７０２は、Ｊａｖａプログラム識別子を引数としてグラフィックスプレーンフィルタ部３５０２が提供するｖａｌｉｄａｔｅメソッドを呼び出すことで、そのＪａｖａプログラムによるグラフィックスプレーン１３１４へのグラフィックス描画を再び有効にする処理を指示する（Ｓ３７０９）。
【０２３６】
図３８は、特殊再生区間処理管理部２７０３に保持されている特殊再生区間処理情報の更新に応じて、特殊再生マネージャ１７０４ｇにおいて処理される流れを示したフローチャートである。
【０２３７】
図３６Ａあるいは図３６Ｂはそれぞれ、ＡＭ１７０４ｂのＡＩＴ監視部２７１１から通知されるＡＩＴの一例である。図３６Ａあるいは図３６ＢにおけるＪａｖａプログラム識別子２２０１、制御情報２２０２、ＤＳＭ−ＣＣ識別子２２０３、および、プログラム名２２０４は、それぞれ図２２におけるＡＩＴと同様であるので、再度の説明を省略する。列３６０５は、各Ｊａｖａプログラムに対応する非表示フラグである。非表示フラグは、特殊再生中にＪａｖａプログラムが描画するグラフィックスを非表示にするかどうかを表すフラグである。非表示フラグ値が“ｔｒｕｅ”である場合は特殊再生中にＪａｖａプログラムが描画するグラフィックスを非表示とすることを意味する。例えば、図３６Ａを参照して、Ｊａｖａプログラム識別子“３０１”に対応するＪａｖａプログラム“／ａ／ＴｏｐＸｌｅｔ”は、非表示フラグ値が“ｔｒｕｅ”であるので、特殊再生中に描画するグラフィックスを非表示とする。
【０２３８】
ＡＩＴが更新されるごとに、ＡＩＴ監視部２７１１から特殊再生区間処理管理部２７０３へ更新されたＡＩＴが通知される。特殊再生区間処理管理部２７０３は、通知されたＡＩＴを解析することで、特殊再生区間処理管理部２７０３に保持されている特殊再生区間処理情報中の各Ｊａｖａプログラムに対応する非表示フラグを更新する。例えば、ＡＩＴ監視部２７１１において図３６Ａで示されるＡＩＴが検出された後に、図３６Ｂで示されるＡＩＴが検出された場合は、特殊再生区間処理管理部２７０３に保持されている特殊再生区間処理情報中の各Ｊａｖａプログラム識別子“３０１”に対応する非表示フラグ値が“ｔｒｕｅ”から“ｆａｌｓｅ”へ更新される。
【０２３９】
図３６Ａから図３６Ｂへと更新されたＡＩＴが検出された場合に特殊再生区間処理管理部２７０３に保持されている特殊再生区間処理情報が更新されると、特殊再生区間処理管理部２７０３は非表示フラグ値が変更されたか判定する（Ｓ３８０１）。ここで、非表示フラグ値が変更されたか判定するために、更新前にその時点における非表示フラグ値を含めた特殊再生区間処理情報をバッファに退避させておく。バッファ上に退避された非表示フラグ値と、特殊再生区間処理情報中の非表示フラグ値とを比較することで、更新前後で非表示フラグ値が変更されたか判定する。ここで、非表示フラグ値が変更されていない場合は、何もしない。非表示フラグ値が変更されている場合は、特殊再生区間処理管理部２７０３は変更後の値を保持して（Ｓ３８０２）、その後、特殊再生区間処理情報の特殊再生フラグによって、現時点において特殊再生中であるか判定する（Ｓ３８０３）。
【０２４０】
特殊再生フラグ値が“ｏｆｆ”、すなわち、現時点で特殊再生中でない場合は、何もしない。特殊再生フラグ値が“ｏｎ”、すなわち、現時点で特殊再生中である場合は、非表示フラグ値が“ｔｒｕｅ”から“ｆａｌｓｅ”へ変更されたか、あるいは、“ｆａｌｓｅ”から“ｔｒｕｅ”へ変更されたか判定する（Ｓ３８０４）。後者の場合、すなわち、非表示フラグ値が“ｆａｌｓｅ”から“ｔｒｕｅ”へ変更された場合は、その非表示フラグに対応するＪａｖａプログラム識別子とともに、特殊再生が開始されたとの結果、すなわち、特殊再生フラグ値“ｏｎ”を特殊再生区間処理部２７０２へ引き渡して、そのＪａｖａプログラム識別子に対応するＪａｖａプログラムが描画するグラフィックスを非表示とする処理を指示する（Ｓ３８０５）。特殊再生区間処理部２７０２は、Ｊａｖａプログラム識別子を引数としてグラフィックスプレーンフィルタ部３５０２が提供するｉｎｖａｌｉｄａｔｅメソッドを呼び出すことで、そのＪａｖａプログラムによるグラフィックスプレーン１３１４へのグラフィックス描画を無効とする処理を指示する（Ｓ３８０６）。
【０２４１】
前者の場合、すなわち、非表示フラグ値が“ｔｒｕｅ”から“ｆａｌｓｅ”へ変更された場合は、その非表示フラグに対応するＪａｖａプログラム識別子とともに、特殊再生が終了されたとの結果、すなわち、特殊再生フラグ値“ｏｆｆ”を特殊再生区間処理部２７０２へ引き渡して、そのＪａｖａプログラム識別子に対応するＪａｖａプログラムが描画するグラフィックスを再び表示する処理を指示する（Ｓ３８０７）。特殊再生区間処理部２７０２は、Ｊａｖａプログラム識別子を引数としてグラフィックスプレーンフィルタ部３５０２が提供するｖａｌｉｄａｔｅメソッドを呼び出すことで、そのＪａｖａプログラムによるグラフィックスプレーン１３１４へのグラフィックス描画を再び有効にする処理を指示する（Ｓ３８０８）。
【０２４２】
以上説明したように、実施の形態３によれば、非表示フラグが設定されている場合の特殊再生中には、Ｊａｖａプログラムが描画するグラフィックスを非表示とすることで、特殊再生中に描画されるグラフィックスの乱れを未然に防止することが可能となる。
【０２４３】
（実施の形態４）
以下に、本発明の実施の形態４に係る装置および方法を、図面を参照しながら説明する。
【０２４４】
実施の形態４に用いるハードウェア構成等は、本発明の実施の形態１と同様であるので、図１から図１６までを援用することとする。図中の構成要素は、実施の形態１の同一名称、同一符号の構成要素と同様の機能をもつため、再度の説明は省略する。
【０２４５】
実施の形態４のソフトウェア構成は、図１７に示すものと同様である。ＡＭ１７０４ｂ、および、特殊再生マネージャ１７０４ｇ以外の構成要素は、実施の形態３のソフトウェア構成の同一名称、同一符号の構成要素と同様の機能をもつため、再度の説明は省略する。また、実施の形態４で用いる各種データ形式は、図２０から図２１までの図面、図３６Ａ、図３６Ｂ、および、図４２に示すものと同様であるため、再度の説明は省略する。
【０２４６】
図３９は、Ｊａｖａライブラリ１７０４におけるＡＭ１７０４ｂ、および、特殊再生マネージャ１７０４ｇの詳細な構成を示す図である。
【０２４７】
ＡＭ１７０４ｂは、実施の形態１と同様に、ＡＩＴ監視部２７１１と、アプリケーション状態管理部２７１２で構成される。ＡＩＴ監視部２７１１は、実施の形態２と同様の機能をもつため、再度の説明は省略する。また、アプリケーション状態管理部２７１２は、実施の形態３と同様の機能をもつため、再度の説明は省略する。
【０２４８】
特殊再生マネージャ１７０４ｇは、特殊再生開始／終了判定部２７０１、特殊再生区間処理部２７０２、特殊再生区間処理管理部２７０３、および、特殊再生区間処理情報登録特権判定部３２０１で構成される。特殊再生開始／終了判定部２７０１、および、特殊再生区間処理部２７０２は、それぞれ実施の形態３と同様の機能をもつため、再度の説明は省略する。
【０２４９】
特殊再生区間処理管理部２７０３は、実施の形態３と同様に、Ｊａｖａプログラムに対する特殊再生開始／終了時の処理を記述する特殊再生区間処理情報を保持するとともに、その特殊再生区間処理情報にもとづいて、特殊再生区間処理部２７０２へ適切な特殊再生開始／終了時の処理を指示する。実施の形態３においては、ＡＩＴが更新された場合に、ＡＩＴ監視部２７１１から更新されたＡＩＴが通知されて、そのＡＩＴにもとづいて保持する特殊再生区間処理情報中の非表示フラグが更新されるが、本実施の形態においては、ＡＩＴが更新された場合であっても、ＡＩＴ監視部２７１１から更新されたＡＩＴは通知されない。特殊再生区間処理管理部２７０３は、非表示フラグ値を引数としてもつｓｅｔＩｎｖｉｓｉｂｌｅＦｌａｇ（ｉｎｔ  ａｐｐＩＤ，ｂｏｏｌｅａｎ  ｉｎｖｉｓｉｂｌｅＦｌａｇ）メソッドをＪａｖａＡＰＩとして提供する。
【０２５０】
ここで、引数ａｐｐＩＤは非表示フラグ値を設定する対象のＪａｖａプログラム識別子であって、引数ｉｎｖｉｓｉｂｌｅＦｌａｇは非表示フラグ値である。あるＪａｖａプログラムからｓｅｔＩｎｖｉｓｉｂｌｅＦｌａｇメソッドが呼び出されることで、保持する特殊再生区間処理情報中の非表示フラグが更新される。例えば、ＪａｖａプログラムからｓｅｔＩｎｖｉｓｉｂｌｅＦｌａｇ（３０１，ｔｒｕｅ）と呼び出されれば、Ｊａｖａプログラム識別子“３０１”をもつＪａｖａプログラムに対応する非表示フラグは“ｔｒｕｅ”と設定される。一方、ＪａｖａプログラムからｓｅｔＩｎｖｉｓｉｂｌｅＦｌａｇ（３０１，ｆａｌｓｅ）と呼び出されれば、Ｊａｖａプログラム識別子“３０１”をもつＪａｖａプログラムに対応する非表示フラグフラグは“ｆａｌｓｅ”と設定される。
【０２５１】
特殊再生区間処理管理部２７０３は、ｓｅｔＩｎｖｉｓｉｂｌｅＦｌａｇメソッドが呼び出されると、まず呼出元のＪａｖａプログラムが非表示フラグを更新する特権、すなわち、パーミッションをもつか判定するために、特殊再生区間処理情報登録特権判定部３２０１へ、呼出元のＪａｖａプログラム識別子を引き渡す。特殊再生区間処理情報登録特権判定部３２０１からは、引き渡したＪａｖａプログラムが非表示フラグを更新する特権をもつか判定した結果が返される。
【０２５２】
特殊再生区間処理情報登録特権判定部３２０１からの判定結果が、呼出元のＪａｖａプログラムは非表示フラグを更新する特権をもたないことを示す場合は、呼出元のＪａｖａプログラムへその旨を返す。一方、呼出元のＪａｖａプログラムは非表示フラグを更新する特権をもつことを示す場合は、その時点における非表示フラグ値を含めた特殊再生区間処理情報をバッファに退避させておいて、そのＪａｖａプログラムが指定した非表示フラグ値を設定する。次に、Ｊａｖａプログラムに対応する非表示フラグ値が変更されたか判定する。バッファ上に退避された非表示フラグ値と、特殊再生区間処理情報中の非表示フラグ値とを比較することで、更新前後で非表示フラグ値が変更されたか判定する。ここで、非表示フラグ値が変更されていない場合は、何もしない。非表示フラグ値が変更されている場合は、特殊再生区間処理管理部２７０３は変更後の値を保持して、その後、特殊再生区間処理情報の特殊再生フラグによって、現時点において特殊再生中であるか判定する。特殊再生フラグ値が“ｏｆｆ”、すなわち、現時点で特殊再生中でない場合は、何もしない。特殊再生フラグ値が“ｏｎ”、すなわち、現時点で特殊再生中である場合は、非表示フラグ値が“ｔｒｕｅ”から“ｆａｌｓｅ”へ変更されたか、あるいは、“ｆａｌｓｅ”から“ｔｒｕｅ”へ変更されたか判定する。
【０２５３】
前者の場合、すなわち、非表示フラグ値が“ｔｒｕｅ”から“ｆａｌｓｅ”へ変更された場合は、その非表示フラグに対応するＪａｖａプログラム識別子とともに、特殊再生が終了されたとの結果、すなわち、特殊再生フラグ値“ｏｆｆ”を特殊再生区間処理部２７０２へ引き渡して、そのＪａｖａプログラム識別子に対応するＪａｖａプログラムが描画するグラフィックスを再び表示する処理を指示する。
【０２５４】
後者の場合、すなわち、非表示フラグ値が“ｆａｌｓｅ”から“ｔｒｕｅ”へ変更された場合は、その非表示フラグに対応するＪａｖａプログラム識別子とともに、特殊再生が開始されたとの結果、すなわち、特殊再生フラグ値“ｏｎ”を特殊再生区間処理部２７０２へ引き渡して、そのＪａｖａプログラム識別子に対応するＪａｖａプログラムが描画するグラフィックスを非表示とする処理を指示する。
【０２５５】
特殊再生区間処理情報登録特権判定部３２０１は、指定されたＪａｖａプログラム識別子に対応するＪａｖａプログラムが、特殊再生区間処理情報中の非表示フラグを更新する特権をもつかどうか判定する。特殊再生区間処理管理部２７０３からＪａｖａプログラム識別子が引き渡されると、そのＪａｖａプログラム識別子に対応するＪａｖａプログラムが特殊再生区間処理情報中の非表示フラグを更新するためのパーミッションをもつかどうか判定して、その後、そのパーミッションをもつ場合は、特殊再生区間処理管理部２７０３へ特殊再生区間処理情報中の非表示フラグの更新を許可する。
【０２５６】
ここで、特殊再生区間処理情報中の非表示フラグを更新する特権、すなわち、パーミッションは、例えば、ＯＣＡＰ仕様書におけるＭｏｎｉｔｏｒＡｐｐＰｅｒｍｉｓｓｉｏｎなどで設定できる。これは、Ｊａｖａプログラムが格納されているディレクトリ中にパーミッション記述ファイルをあわせて格納しておき、そのパーミッション記述ファイルに許可された特権の一覧を持つ方式である。例えば、ｏｃａｐ．ａｐｐｌｉｃａｔｉｏｎ名．ｐｅｒｍという名前のファイルに、＜ｏｃａｐ:ｍｏｎｉｔｏｒａｐｐｌｉｃａｔｉｏｎ  ｎａｍｅ＝“ｓｅｔＩｎｖｉｓｉｂｌｅＦｌａｇ”  ｖａｌｕｅ＝ｔｒｕｅ＞＜／ｏｃａｐ:ｍｏｎｉｔｏｒａｐｐｌｉｃａｔｉｏｎ＞のような形式で記述すると、ａｐｐｌｉｃａｔｉｏｎ名で指定されたＪａｖａプログラムは特殊再生区間処理情報中の非表示フラグを更新する特権を持つことができる。
【０２５７】
まずＪａｖａプログラムが特殊再生マネージャ１７０４ｇの特殊再生区間処理管理部２７０３が提供するｓｅｔＩｎｖｉｓｉｂｌｅＦｌａｇメソッドを呼び出して、特殊再生区間処理情報中の非表示フラグ値の設定を要求する。特殊再生区間処理管理部２７０３は、特殊再生区間処理情報登録特権判定部３２０１へ、ｓｅｔＩｎｖｉｓｉｂｌｅＦｌａｇメソッドを呼び出したＪａｖａプログラムに対応するＪａｖａプログラム識別子を引き渡して、そのＪａｖａプログラムが非表示フラグを更新する特権をもつかどうか判定する。ここで、そのＪａｖａプログラムが非表示フラグを更新する特権をもたない場合は、特殊再生区間処理管理部２７０３へその旨を返して終了する。そのＪａｖａプログラムが非表示フラグを更新する特権をもつ場合は、特殊再生区間処理管理部２７０３へその旨を返す。
【０２５８】
以上説明した構成による本実施例において特徴的な動作を、以下にフローチャートを用いて説明する。
【０２５９】
図４０は、Ｊａｖａプログラムが特殊再生マネージャ１７０４ｇへ特殊再生区間処理情報中の非表示フラグの更新を指示する場合のフローチャートである。
【０２６０】
まずＪａｖａプログラムが特殊再生マネージャ１７０４ｇの特殊再生区間処理管理部２７０３が提供するｓｅｔＩｎｖｉｓｉｂｌｅＦｌａｇメソッドを呼び出して、特殊再生区間処理情報中の非表示フラグ値の設定を要求する（Ｓ４００１）。特殊再生区間処理管理部２７０３は、特殊再生区間処理情報登録特権判定部３２０１へ、ｓｅｔＩｎｖｉｓｉｂｌｅＦｌａｇメソッドを呼び出したＪａｖａプログラムに対応するＪａｖａプログラム識別子を引き渡して、そのＪａｖａプログラムが非表示フラグを更新する特権をもつかどうか判定する（Ｓ４００２）。ここで、そのＪａｖａプログラムが非表示フラグを更新する特権をもたない場合は、特殊再生区間処理管理部２７０３へその旨を返して終了する。そのＪａｖａプログラムが非表示フラグを更新する特権をもつ場合は、特殊再生区間処理管理部２７０３へその旨を返して、そのＪａｖａプログラムが指定した非表示フラグ値を設定する（Ｓ４００３）。
【０２６１】
ここで、Ｊａｖａプログラムに対応する非表示フラグ値が変更されたか判定する（Ｓ４００４）。ここで、非表示フラグ値が変更されたか判定するために、更新前にその時点における非表示フラグ値を含めた特殊再生区間処理情報をバッファに退避させておく。バッファ上に退避された非表示フラグ値と、特殊再生区間処理情報中の非表示フラグ値とを比較することで、更新前後で非表示フラグ値が変更されたか判定する。ここで、非表示フラグ値が変更されていない場合は、何もしない。非表示フラグ値が変更されている場合は、特殊再生区間処理管理部２７０３は変更後の値を保持して（Ｓ４００５）、その後、特殊再生区間処理情報の特殊再生フラグによって、現時点において特殊再生中であるか判定する（Ｓ４００６）。
【０２６２】
特殊再生フラグ値が“ｏｆｆ”、すなわち、現時点で特殊再生中でない場合は、何もしない。特殊再生フラグ値が“ｏｎ”、すなわち、現時点で特殊再生中である場合は、非表示フラグ値が“ｔｒｕｅ”から“ｆａｌｓｅ”へ変更されたか、あるいは、“ｆａｌｓｅ”から“ｔｒｕｅ”へ変更されたか判定する（Ｓ４００７）。後者の場合、すなわち、非表示フラグ値が“ｆａｌｓｅ”から“ｔｒｕｅ”へ変更された場合は、その非表示フラグに対応するＪａｖａプログラム識別子とともに、特殊再生が開始されたとの結果、すなわち、特殊再生フラグ値 “ｏｎ”を特殊再生区間処理部２７０２へ引き渡して、そのＪａｖａプログラム識別子に対応するＪａｖａプログラムが描画するグラフィックスを非表示とする処理を指示する（Ｓ４００８）。特殊再生区間処理部２７０２は、Ｊａｖａプログラム識別子を引数としてグラフィックスプレーンフィルタ部３５０２が提供するｉｎｖａｌｉｄａｔｅメソッドを呼び出すことで、そのＪａｖａプログラムによるグラフィックスプレーン１３１４へのグラフィックス描画を無効にする処理を指示する（Ｓ４００９）。
【０２６３】
前者の場合、すなわち、非表示フラグ値が“ｔｒｕｅ”から“ｆａｌｓｅ”へ変更された場合は、その非表示フラグに対応するＪａｖａプログラム識別子とともに、特殊再生が終了されたとの結果、すなわち、特殊再生フラグ値 “ｏｆｆ”を特殊再生区間処理部２７０２へ引き渡して、そのＪａｖａプログラム識別子に対応するＪａｖａプログラムが描画するグラフィックスを再び表示する処理を指示する（Ｓ４０１０）。特殊再生区間処理部２７０２は、Ｊａｖａプログラム識別子を引数としてグラフィックスプレーンフィルタ部３５０２が提供するｖａｌｉｄａｔｅメソッドを呼び出すことで、そのＪａｖａプログラムによるグラフィックスプレーン１３１４へのグラフィックス描画を再び有効にする処理を指示する（Ｓ４０１１）。
【０２６４】
２次記憶部１３０７に記録されたＭＰＥＧ２トランスポートストリームからサービスを再生する場合の処理の流れは、図３４に示すフローチャートと同様であるので、図３４を援用することとして、再度の説明を省略する。また、ＭＰＥＧ２トランスポートストリームの再生速度の変更に応じて、特殊再生マネージャ１７０４ｇにおいてなされる処理の流れは、実施の形態３と同様であるので、図３７を参照して再度の説明は省略する。
【０２６５】
以上説明したように、実施の形態４によれば、非表示フラグが設定されている場合の特殊再生中には、Ｊａｖａプログラムが描画するグラフィックスを非表示とすることで、特殊再生中に描画されるグラフィックスの乱れを未然に防止することが可能となる。また、Ｊａｖａプログラムによって非表示フラグを設定することで、ＡＩＴによる非表示フラグの制御よりも柔軟な制御が可能となる。
【０２６６】
以上説明したいくつかの実施例は、本発明の実現例を示したものであり、本発明の趣旨が実現される限り他の実現例でも実施可能である。
【０２６７】
実施例ではケーブルシステムを対象とした構成を示したが、本発明は放送システムの種類に依存しない。例えば、衛星システム、地上波システム、あるいはＩＰネットワークを用いた番組配信システムなどにも容易に適応可能である。さらに本発明は各放送システムの違いと直接的な関係を持たないため、放送システムに係らず任意の伝送媒体で適用可能である。有線、無線の違いにも依存しない。
【０２６８】
ＡＶデコーダは、必ずしも映像および音声を同時にデコードする必要はない。映像デコーダ、音声デコーダを分離した構成としても、本発明は実現可能である。またＡＶデコーダがクローズドキャプションなどのデータに対するデコード機能を持っていても差し支えない。ＡＶデコーダによってデコードされたａｕｄｉｏ信号およびｖｉｄｅｏ信号が、記録領域１５０４に蓄積されるまでの任意の段階において暗号化されてもよい。
【０２６９】
実施例では、限定視聴を制御するアダプタを導入した例を示したが、アダプタは本発明を実現するために必ずしも必要ではない。アダプタの形式がいかなるものであってもよいし、またアダプタのない構成とすることも可能である。その場合、図１５において、チューナからのＭＰＥＧ２トランスポートストリームが直接ＴＳデコーダに入力される。この場合も本発明は適用可能である。また、アダプタによる限定視聴解除をＴＳデコーダ以前に行う必要はない。任意の位置でアダプタを利用して限定視聴を解除する構成とすることは容易であり、その場合も本発明は適用可能である。
【０２７０】
ＡＶエンコーダによるａｕｄｉｏ信号およびｖｉｄｅｏ信号のエンコード形式は、任意の形式であってもよい。本発明はいかなるエンコード形式であっても適用可能である。
【０２７１】
多重器の多重形式は任意の形式であってもよい。本発明はいかなる多重形式であっても適用可能である。
【０２７２】
ディスプレイおよびスピーカは、放送録画再生装置内部に包含していてもよく、放送録画再生装置に外部ディスプレイおよびスピーカを接続してもよい。ディスプレイおよびスピーカの存在場所や数によらず、本発明は適用可能である。
【０２７３】
ＣＰＵ自身が、ＴＳデコード、ＡＶデコード、ＡＶエンコードおよび多重化のすべてあるいはいくつかの処理を兼用で行うシステムであっても本発明は実施可能である。
【０２７４】
サービスを記録する形式としては、他にもＴＳデコーダを介さずにチューナからのＭＰＥＧ２トランスポートストリーム出力を直接、記録領域記録してもよいし、ＭＰＥＧ２トランスポートストリームの形式を変換するトランスレータを設けてチューナからのＭＰＥＧ２トランスポートストリームを形式変換して記録領域に記録してもよい。いかなるサービス記録方式を用いても、本発明は実施可能である。
【０２７５】
一部のＪａｖａバーチャルマシンは、バイトコードをＣＰＵが理解可能な実行形式に翻訳してから、ＣＰＵに引渡して実行するが、この場合でも本発明は適用可能である。
【０２７６】
以上の実施例では、トランスポートストリームがＩｎ−ｂａｎｄから得られるとしてＡＩＴに関して実現方法を説明したが、ＡＭが実行すべきＪａｖａプログラムを参照する手法はＡＩＴによるものだけではない。米国ケーブルシステムで利用されることが想定されるＯＣＡＰでは図３に記載されるＯＯＢにてＪａｖａプログラムの参照情報を記載するＸＡＩＴが利用されている。その他、ＲＯＭに予め記録されているものを起動する、２次記憶にダウンロードして記憶したものを起動する、等の方法も考えられる。
【０２７７】
上記に詳細に説明した本発明の実施の形態は単なる例示にすぎず、本発明の新規な教示および効果から実質的に逸脱することなく例示として挙げた実施の形態において様々な変更が可能であることは、当業者であれば容易に理解するところである。したがって、かかる変更はすべて本発明の範囲内に含まれるものである。
【産業上の利用可能性】
【０２７８】
本発明に係る録画再生装置（記録再生装置）および録画再生方法は、端末がその録画したコンテンツを特殊再生させる場合に、アプリケーションプログラムが時間のかかる処理を実行していた場合であっても、また、アプリケーションプログラムが処理速度の低い端末上で実行されていた場合であっても、アプリケーションプログラムを一時停止状態へ遷移させる、あるいは、アプリケーションプログラムによるグラフィックス描画を一時的に無効にすることで、アプリケーションプログラムの予期しない挙動を抑制することが可能とする。また、殊に早送り、および、巻戻し時において、ハードディスク、ＢＤ（Ｂｌｕ−ｒａｙ  Ｄｉｓｃ）、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｃ）、ＳＤ（Ｓｅｃｕｒｅ  Ｄｉｇｉｔａｌ）メモリカード等に代表される半導体メモリ等に対する高負荷なアクセスを低減し、記録媒体の劣化を低減することが可能とするため、殊に放送録画再生装置に係る民生機器産業において利用される可能性が高い。例えば、ケーブルＳＴＢ、および、ディジタルＴＶ等として利用可能である。さらに、例えば、携帯電話等の機器においても放送受信機能をもつ機器であれば利用可能である。
【図面の簡単な説明】
【０２７９】
本願におけるこれらの目的および他の目的や、効果、特徴は、実施の形態を示す付属図面に関する以下の説明から明確になる。当該図面において、
【図１】図１は、本発明に係る放送システムの構成図である。
【図２】図２は、本発明に係るケーブルテレビシステムにおいて放送局側システムと端末装置間の通信に使用される周波数帯域の使い方の一例を示す図である。
【図３】図３は、本発明に係るケーブルテレビシステムにおいて放送局側システムと端末装置間の通信に使用される周波数帯域の使い方の一例を示す図である。
【図４】図４は、本発明に係るケーブルテレビシステムにおいて放送局側システムと端末装置間の通信に使用される周波数帯域の使い方の一例を示す図である。
【図５】図５は、ＭＰＥＧ２仕様で既定されるＴＳパケットの構成図である。
【図６】図６は、ＭＰＥＧ２トランスポートストリームの模式図である。
【図７】図７は、ＭＰＥＧ２仕様で既定されるＰＥＳパケットがＴＳパケットを用いて伝送される際の分割例を示す図である。
【図８】図８は、ＭＰＥＧ２仕様で既定されるＭＰＥＧ２セクションがＴＳパケットを用いて伝送される際の分割例を示す図である。
【図９】図９は、ＭＰＥＧ２仕様で既定されるＭＰＥＧ２セクションの構成図を示す図である。
【図１０】図１０は、ＭＰＥＧ２仕様で既定されるＭＰＥＧ２セクションの利用例を示す図である。
【図１１】図１１は、ＭＰＥＧ２仕様で規定されるＰＭＴの利用例を示す図である。
【図１２】図１２は、ＭＰＥＧ２仕様で規定されるＰＡＴの利用例を示す図である。
【図１３】図１３は、本発明に係る放送録画再生装置のハードウェア構成の構成例を示す図である。
【図１４】図１４は、本発明に係る端末装置１２００のハードウェア構成における入力部１３１０のフロントパネル例を示す図である。
【図１５】図１５は、本発明に係る録画再生装置の録画時におけるデバイス接続例を示す図である。
【図１６】図１６は、本発明に係る録画再生装置の再生時におけるデバイス接続例を示す図である。
【図１７】図１７は、本発明に係る端末装置が保存するプログラム構成の構成図である。
【図１８】図１８は、本発明に係る端末装置が実行するＥＰＧの一例を示す図である。
【図１９】図１９は、本発明に係る端末装置が実行するＥＰＧの一例を示す図である。
【図２０】図２０は、本発明に係る２次記憶部が保存する情報の一例を示す図である。
【図２１】図２１は、本発明に係るレコード情報管理テーブルの一例を示す図である。
【図２２】図２２は、本発明に係るＤＶＢ−ＭＨＰ規格が規定するＡＩＴの内容を表す模式図である。
【図２３】図２３は、本発明に係るＤＳＭ−ＣＣ方式で送信されるファイルシステムを表す模式図である。
【図２４】図２４は、本発明に係る録画再生装置の録画時におけるデバイス接続例を示す図である。
【図２５】図２５は、本発明に係る録画再生装置の再生時におけるデバイス接続例を示す図である。
【図２６】図２６は、本発明に係るレコード情報管理テーブルの一例を示す図である。
【図２７】図２７は、本発明に係る特殊再生マネージャおよびＡＭの構成の一例を示す図である。
【図２８Ａ】図２８Ａは、本発明に係るＤＶＢ−ＭＨＰ規格を拡張するＡＩＴの内容を表す模式図である。
【図２８Ｂ】図２８Ｂは、本発明に係るＤＶＢ−ＭＨＰ規格を拡張するＡＩＴの内容を表す模式図である。
【図２９】図２９は、本発明に係るサービス再生時におけるフローチャートである。
【図３０】図３０は、本発明に係るサービス再生速度の変更時におけるフローチャートである。
【図３１】図３１は、本発明に係るＡＩＴの更新時におけるフローチャートである。
【図３２】図３２は、本発明に係る特殊再生マネージャおよびＡＭの構成の一例である。
【図３３】図３３は、本発明に係るＪａｖａプログラムによる一時停止フラグの更新時におけるフローチャートである。
【図３４】図３４は、本発明に係るサービス再生時におけるフローチャートである。
【図３５】図３５は、本発明に係る特殊再生マネージャおよびその他の構成の一例を示す図である。
【図３６Ａ】図３６Ａは、本発明に係るＤＶＢ−ＭＨＰ規格を拡張するＡＩＴの内容を表す模式図である。
【図３６Ｂ】図３６Ｂは、本発明に係るＤＶＢ−ＭＨＰ規格を拡張するＡＩＴの内容を表す模式図である。
【図３７】図３７は、本発明に係るサービス再生速度の変更時におけるフローチャートである。
【図３８】図３８は、本発明に係るＡＩＴの更新時におけるフローチャートである。
【図３９】図３９は、本発明に係る特殊再生マネージャおよびその他の構成の一例を示す図である。
【図４０】図４０は、本発明に係るＪａｖａプログラムによる非表示フラグの更新時におけるフローチャートである。
【図４１】図４１は、本発明に係る特殊再生区間処理情報の内容を表す模式図である。
【図４２】図４２は、本発明に係る特殊再生区間処理情報の内容を表す模式図である。
【図１】
2008545284.tif 000003
【図２】
2008545284.tif 000004
【図３】
2008545284.tif 000005
【図４】
2008545284.tif 000006
【図５】
2008545284.tif 000007
【図６】
2008545284.tif 000008
【図７】
2008545284.tif 000009
【図８】
2008545284.tif 000010
【図９】
2008545284.tif 000011
【図１０】
2008545284.tif 000012
【図１１】
2008545284.tif 000013
【図１２】
2008545284.tif 000014
【図１３】
2008545284.tif 000015
【図１４】
2008545284.tif 000016
【図１５】
2008545284.tif 000017
【図１６】
2008545284.tif 000018
【図１７】
2008545284.tif 000019
【図１８】
2008545284.tif 000020
【図１９】
2008545284.tif 000021
【図２０】
2008545284.tif 000022
【図２１】
2008545284.tif 000023
【図２２】
2008545284.tif 000024
【図２３】
2008545284.tif 000025
【図２４】
2008545284.tif 000026
【図２５】
2008545284.tif 000027
【図２６】
2008545284.tif 000028
【図２７】
2008545284.tif 000029
【図２８Ａ】
2008545284.tif 000030
【図２８Ｂ】
2008545284.tif 000031
【図２９】
2008545284.tif 000032
【図３０】
2008545284.tif 000033
【図３１】
2008545284.tif 000034
【図３２】
2008545284.tif 000035
【図３３】
2008545284.tif 000036
【図３４】
2008545284.tif 000037
【図３５】
2008545284.tif 000038
【図３６Ａ】
2008545284.tif 000039
【図３６Ｂ】
2008545284.tif 000040
【図３７】
2008545284.tif 000041
【図３８】
2008545284.tif 000042
【図３９】
2008545284.tif 000043
【図４０】
2008545284.tif 000044
【図４１】
2008545284.tif 000045
【図４２】
2008545284.tif 000046
【手続補正書】
【提出日】平成20年4月9日(2008.4.9)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
記録媒体に記録されたコンテンツを再生するコンテンツ再生手段と、
プログラムを実行するとともに、前記プログラムの状態を制御するプログラム実行手段と、
前記コンテンツの再生速度を前記実行中のプログラムからの指示にもとづいて変更するコンテンツ再生速度変更手段と、
前記再生速度が通常再生速度から前記通常再生速度とは異なる再生速度になったこと、または前記通常再生速度とは異なる再生速度から前記通常再生速度になったことを検知する特殊再生検知手段と、
前記特殊再生検知手段の検知にもとづいて前記プログラム実行手段へ、前記プログラムのうち特定のプログラムのみの状態の変更を指示する特殊再生時処理手段とを備え、
前記プログラム実行手段は、前記プログラムが前記特殊再生時処理手段から指示された状態となるように、前記プログラムの状態を制御する
ことを特徴とする記録再生装置。
【請求項２】
前記特殊再生検知手段が、前記再生速度が通常再生速度とは異なる再生速度になったことを検知した場合、
前記特殊再生時処理手段は、前記プログラム実行手段へ前記実行中のプログラムの状態を一時停止状態へ変更するよう指示するとともに、
前記プログラム実行手段は、前記プログラムの状態が一時停止状態となるように前記プログラムの実行を一時停止する
ことを特徴とする請求項１記載の記録再生装置。
【請求項３】
前記特殊再生検知手段が、前記再生速度が前記通常再生とは異なる再生速度から通常再生速度になったことを検知した場合、
前記特殊再生時処理手段は、前記プログラム実行手段へ前記一時停止状態にされているプログラムの状態を実行状態へ変更するよう指示するとともに、
前記プログラム実行手段は、前記プログラムの状態が実行状態となるように前記プログラムの実行を再開する
ことを特徴とする請求項２記載の記録再生装置。
【請求項４】
前記特定のプログラムは、前記コンテンツに多重化されている情報にもとづいて特定される
ことを特徴とする請求項１記載の記録再生装置。
【請求項５】
前記特定のプログラムは、前記プログラムのうち特権をもつプログラムによって事前に登録された情報にもとづいて特定される
ことを特徴とする請求項１記載の記録再生装置。
【請求項６】
記録媒体に記録されたコンテンツを再生するコンテンツ再生手段と、
プログラムを実行するとともに、前記プログラムの実行状態を制御するプログラム実行手段と、
プログラム実行手段にて実行されるプログラムにより描画されるグラフィックスの表示状態と非表示状態を制御するグラフィックス表示手段と、
前記コンテンツの再生速度を前記プログラムからの指示にもとづいて変更するコンテン
ツ再生速度変更手段と、
前記再生速度が通常再生速度から前記通常再生速度とは異なる再生速度になったこと、または前記通常再生速度とは異なる再生速度から前記通常再生速度になったことを検知する特殊再生検知手段と、
前記特殊再生検知手段の検知にもとづいて前記グラフィックス表示手段へ前記グラフィックスの状態の変更を指示する特殊再生時処理手段と
を備えることを特徴とする記録再生装置。
【請求項７】
前記特殊再生検知手段が、前記再生速度が通常再生速度から前記通常再生速度とは異なる再生速度になったことを検知した場合、
前記特殊再生時処理手段は、前記グラフィックス表示手段へ前記グラフィックスの状態を表示状態から非表示状態へ変更するよう指示する
ことを特徴とする請求項６記載の記録再生装置。
【請求項８】
前記特殊再生検知手段が、前記再生速度が前記通常再生速度とは異なる再生速度から前記通常再生速度になったことを検知した場合、
前記特殊再生時処理手段は、前記グラフィックス表示手段へ前記グラフィックスの状態を非表示状態から表示状態へ変更するよう指示する
ことを特徴とする請求項７記載の記録再生装置。
【請求項９】
前記特殊再生時処理手段は、前記グラフィックス表示手段へ、前記プログラムのうち特定のプログラムにより描画されるグラフィックスのみの状態の変更を指示する
ことを特徴とする請求項６記載の記録再生装置。
【請求項１０】
前記特定のプログラムは、前記コンテンツに多重化されている情報にもとづいて特定される
ことを特徴とする請求項９記載の記録再生装置。
【請求項１１】
前記特定のプログラムは、前記プログラムのうち特権をもつプログラムによって事前に登録された情報にもとづいて特定される
ことを特徴とする請求項９記載の記録再生装置。
【請求項１２】
前記コンテンツおよび前記プログラムは、放送波から前記記録媒体に記録された情報である
ことを特徴とする請求項１または６記載の記録再生装置。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】００１３
【補正方法】変更
【補正の内容】
【００１３】
上記目的を達成するために、本発明の記録再生装置は、記録媒体に記録されたコンテンツを再生するコンテンツ再生手段と、プログラムを実行するとともに、前記プログラムの状態を制御するプログラム実行手段と、前記コンテンツの再生速度を前記実行中のプログラムからの指示にもとづいて変更するコンテンツ再生速度変更手段と、前記再生速度が通常再生速度から前記通常再生速度とは異なる再生速度になったこと、または前記通常再生速度とは異なる再生速度から前記通常再生速度になったことを検知する特殊再生検知手段と、前記特殊再生検知手段の検知にもとづいて前記プログラム実行手段へ、前記プログラムのうち特定のプログラムのみの状態の変更を指示する特殊再生時処理手段とを備え、前記プログラム実行手段は、前記プログラムが前記特殊再生時処理手段から指示された状態となるように、前記プログラムの状態を制御することを特徴とする。
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】００１７
【補正方法】削除
【補正の内容】
【国際調査報告】
2008545284.tif 000047
2008545284.tif 000048