(57)【特許請求の範囲】
【請求項１】
ＩＴＶシステムにおいて、イベントと前記イベントのそれぞれに関する開始日時とを含むスケジュールイベント情報を獲得し、ストアする方法であって、
開始日時、終了日時および１つまたは複数のサービスのリストによって定義されるウィンドウを作成するステップと、
複数のイベントに対応するスケジュールイベント情報を受信するステップと、
前記ウィンドウに対応する前記複数のイベントのサブセットを識別するステップと、
前記識別されたイベントのサブセットのみについてスケジュールイベント情報をストアするステップと、
指定された間隔で前記ウィンドウを自動的に前記開始日時よりも先に移動するステップと
を備え、
前記ウィンドウを自動的に先に移動するステップは、現在の時刻と、前記ウィンドウが作成された時刻との間隔が指定された間隔に等しい場合に前記ウィンドウを移動するステップをさらに含むことを特徴とする方法。
【請求項２】
前記スケジュールイベント情報は、前記イベントのそれぞれに関する継続時間をさらに含み、前記スケジュールイベント情報をストアするステップは、前記ウィンドウ内に継続時間を有するイベントに関するスケジュールイベント情報をストアするステップをさらに備えたことを特徴とする請求項１に記載の方法。
【請求項３】
前記ウィンドウを自動的に先に移動するステップは、ＧＭＴ日付のロールオーバに対応する時間に、前記ウィンドウを移動するステップをさらに備えたことを特徴とする請求項１に記載の方法。
【請求項４】
前記ウィンドウはモニタウィンドウであり、
前記方法は、
１つまたは複数のイベントを識別するストレージウィンドウを作成するステップと、
前記モニタウィンドウ内にないが、前記ストレージウィンドウ内にあるイベントに関するスケジュールイベント情報をストアするステップと
をさらに備えたことを特徴とする請求項１に記載の方法。
【請求項５】
前記モニタウィンドウ内にあるイベントに関するスケジュールイベント情報は、システムヒープメモリ内にストアされ、
前記モニタウィンドウ内にないが、前記ストレージウィンドウ内にあるイベントに関するスケジュールイベント情報は、キャッシュにストアされる
ことを特徴とする請求項４に記載の方法。
【請求項６】
１つまたは複数のイベントディスクリプタをフィルタリングして、フィルタリングされたイベントディスクリプタを持つイベントに対応するスケジュールイベント情報のみがストアされるようにするステップをさらに備えたことを特徴とする請求項１に記載の方法。
【請求項７】
イベントコンテンツをフィルタリングして、選択されたコンテンツを持つイベントに対応するスケジュールイベント情報のみがストアされるようにするステップをさらに備えたことを特徴とする請求項１に記載の方法。
【請求項８】
受信局で前記イベントスケジュール情報を受信するステップをさらに備えたことを特徴とする請求項１に記載の方法。
【請求項９】
前記ウィンドウを自動的に移動するステップは、前記ウィンドウの終了日時が常に現在日時より後になるように前記ウィンドウを移動するステップをさらに備えたことを特徴とする請求項１に記載の方法。
【請求項１０】
前記ウィンドウを作成するステップは、アプリケーションによってウィンドウを作成するステップをさらに備えたことを特徴とする請求項１に記載の方法。
【請求項１１】
ＩＴＶシステムにおいて、イベントと前記イベントのそれぞれに関する開始日時とを含むスケジュールイベント情報を獲得し、ストアするシステムであって、
プロセッサであって、
開始日時、終了日時および１つまたは複数のサービスのリストによって定義されるウィンドウを作成し、
複数のイベントに対応するスケジュールイベント情報を受信し、
前記ウィンドウに対応する前記複数のイベントのサブセットを識別し、
前記識別されたイベントのサブセットのみについてスケジュールイベント情報をストアし、
指定された間隔で前記ウィンドウを自動的に前記開始日時よりも先に移動する
ように構成されたプロセッサと、
前記スケジュールイベント情報をストアするためのメモリデバイスと
を備え、
前記ウィンドウを自動的に先に移動することは、現在の時刻と、前記ウィンドウが作成された時刻との間隔が指定された間隔に等しい場合に前記ウィンドウを移動することをさらに含むことを特徴とするシステム。
【請求項１２】
前記スケジュールイベント情報は、前記イベントのそれぞれに関する継続時間をさらに含み、前記メモリは、前記ウィンドウ内に継続時間を有するイベントに関する前記スケジュールイベント情報をストアすることを特徴とする請求項１１に記載のシステム。
【請求項１３】
フィルタリングされたイベントディスクリプタを持つイベントに対応するスケジュールイベント情報だけがストアされるようにイベントディスクリプタをフィルタリングするように操作することができるイベントディスクリプタフィルタをさらに含むことを特徴とする請求項１１に記載のシステム。
【請求項１４】
選択されたコンテンツを持つイベントに対応するスケジュールイベント情報だけがストアされるようにイベントをフィルタリングするように操作することができるイベントコンテンツフィルタをさらに含むことを特徴とする請求項１１に記載のシステム。
【請求項１５】
前記スケジュールイベント情報を受信するレシーバをさらに備えたことを特徴とする請求項１１に記載のシステム。
【請求項１６】
前記ウィンドウはモニタウィンドウであり、
前記プロセッサは、
１つまたは複数のイベントを識別するストレージウィンドウを作成し、
前記モニタウィンドウ内にないが、前記ストレージウィンドウ内にあるイベントに関するスケジュールイベント情報をストアする
ようにさらに構成されたことを特徴とする請求項１１に記載のシステム。
【発明の詳細な説明】
【０００１】
（関連出願）
本出願は、１９９８年１１月２３日出願の米国仮特許出願第６０／１０９，９１８の利益を請求するものである。
【０００２】
（発明の背景）
本発明は、一般に、ＩＴＶ（interactive television）システムに関し、より詳細には、スケジュールイベント情報テーブルの獲得、処理、およびストアに関する。
【０００３】
ＩＴＶシステムは、典型的なビデオ番組ストリームの他に、テキストおよびグラフィックスイメージを表示することができ、視聴者にいくつかのサービスおよびインタラクティブ（interactive）アプリケーションを提供している。一般に、放送サービスプロバイダは、視聴者のＴＶ（television）に送信するためのＩＴＶ信号を生成する。ＩＴＶ信号はアプリケーションコードまたはシステム情報からなるインタラクティブポーションと、ＴＶ番組からなるオーディオビデオポーションとを含んである。放送サービスプロバイダはオーディオビデオポーションとインタラクティブポーションとを、視聴者のＴＶに接続されたレシーバに送信するための単一の信号に結合する。この信号は一般に送信前に圧縮され、典型的な放送チャネル、例えば、ＣＡＴＶ（cable television）回線または直接衛星伝送システム（direct satellite transmission system）を介して送信される。
【０００４】
ＴＶに接続されたセットトップボックスはＴＶのインタラクティブ機能を制御する。このセットトップボックスは放送サービスプロバイダによって送信された信号を受信し、インタラクティブポーションをオーディオビデオポーションから分離し、この信号の各ポーションを圧縮解除する。このセットトップボックスは、（処理の後の）オーディオビデオ情報がＴＶに送信されている間にインタラクティブ情報を使用してアプリケーションを実行する。このセットトップボックスはインタラクティブアプリケーションによって生成されたインタラクティブグラフィックスまたはインタラクティブオーディオと、オーディオビデオ情報とをコンバイン（combine）し、その後、その情報をＴＶに送信することができる。インタラクティブグラフィックスとインタラクティブオーディオは、視聴者に追加情報を提示するか、視聴者に入力を促すことができる。このセットトップボックスは視聴者入力または他の情報をモデム接続を介して放送サービスプロバイダに供給することができる。
【０００５】
これらビデオ情報と、オーディオ情報と、システム情報は、ヘッドエンド（head end）から、種々のトランスポート媒体を介して、種々のデータブロックにして送信することができる。これらの情報を、例えば、ケーブルまたは衛星を介してヘッドエンドからセットトップボックスに送信することができる。このようなシステム情報のコンテンツの例としては、現在または将来のイベントに関する情報や、セットトップボックスのユーザがアクセスできるサービスや、現在の時刻および日付がある。イベントの例としては、ＴＶ番組（例えば、ニュース、映画、スポーツ）があり、サービスの例としては、ネットワーク（ヘッドエンド）によって放送されるチャネルのセットがある。イベントに関する情報はＥＩＴ（event information table）に含まれている。この情報はＥＩＴセクションにしてヘッドエンドからセットトップボックスに転送されるのが典型的である。ヘッドエンドはセットトップボックスがいつパワーオンされるか知らないので、ヘッドエンドによってこれらのＥＩＴテーブルが連続的に繰り返し放送される。視聴者は、種々のサービス上に現れる予定のイベント情報を要求することができる。しかし、バンド幅が限られているため、この繰り返し放送は２０秒〜３０秒おきに行われる。したがって、この情報が収集され処理されＴＶセットに表示されるのにかかる時間は、セットトップボックスに配信されるデータにサイクル時間があるため、意味がある。
【０００６】
そこで、視聴者がスケジュール情報を即座にアクセスできるように、スケジュールイベント情報をストアし、その情報を連続的に更新し、過去のイベントに関する情報を破壊し、将来のイベントに関する情報をストアするためのシステムおよび方法に対するニーズがでてくる。
【０００７】
（発明の概要）
ＩＴＶシステムにおいてスケジュールイベント情報を獲得しストアするシステムおよび方法が開示されている。各イベントに関するスケジュールイベントは、例えば、イベントの開始日時と、イベントの継続時間と、追加イベントの説明を含むことができる。
【０００８】
本発明の方法は、一般に、開始日時および継続時間によって定義されるウィンドウを作成することを含む。スケジュールイベント情報はウィンドウ内に開始日時を有するイベントに関してストアされる。このような方法は、さらに、ウィンドウを指定の間隔で自動的に、開始日時よりも先に進めることを含む。このウィンドウは、さらに、サービスのリストによって定義することもできる。
【０００９】
本発明のシステムは、一般に、開始日時および継続時間によって定義されるウィンドウを作成するプロセッサと、このウィンドウ内に開始日時を有するイベントに関するスケジュールイベント情報をストアするためのメモリデバイスとを含む。このプロセッサは指定の間隔でウィンドウを自動的に、開始日時よりも先に進める操作ができる。
【００１０】
本発明の別の態様おいて、コンピュータプログラムプロダクトは、一般に、開始日時および継続時間によって定義されるウィンドウを作成するコンピュータコードと、ウィンドウ内に開始日時を有するイベントに関するスケジュールイベント情報をストアするコンピュータコードとを含む。このコンピュータプログラムプロダクトは、さらに、指定の間隔でウィンドウを自動的に開始日時よりも先に進めるコンピュータコードと、そのコンピュータコードをストアするコンピュータ可読媒体とを含む。このプロセッサは開始日時を変更するためにウィンドウを修正するために操作することもできる。
【００１１】
従来技術の不完全な点と本発明の利点とを簡単に説明してきた。本発明の他の特徴と利点と実施の形態は、次の説明と図面と特許請求の範囲とから当業者に明らかになろう。
【００１２】
（発明の詳細な説明）
以下の説明は、当業者が本発明を作成し使用できるようにするためのものである。具体的な実施形態と応用例の説明は例示に過ぎず、種々の変更は当業者にとって当然のことである。本明細書で説明する一般原則は本発明の範囲を逸脱することなく他の実施態様および応用例に適用することができる。したがって、本発明は実施形態に限定されるものではないが、本明細書で説明する原則および特徴に、最も広い範囲で一致するものとする。説明を明確にするため、本発明に関する技術分野で周知の技術的題材については詳細に説明しない。
【００１３】
図１はＩＴＶアプリケーションと、ＴＶ番組（オーディオおよびビデオ）と、システム情報（例えば、サービスの数、サービス名、イベント名、イベントスケジュール）をソースから視聴者へ分配する例を示す。このシステムにはヘッドエンドが含まれており、このヘッドエンドは、関係付けをしたオーディオを有する特定のビデオをヘッドエンド２０に供給するビデオおよびオーディオデバイス（図示せず）に結合できるものである。オーディオ・ビデオ・インタラクティブ信号には、ＴＶ番組または類似のオーディオビデオコンテンツが含まれるとともに、インタラクティブコンテンツ、例えば、制御信号と、システム情報と、インタラクティブアプリケーションが含まれている。このビデオ情報は、ヘッドエンド２０でデジタル化し、送信機を介して受信システム２４に送信することができる。ヘッドエンド２０によって伝送される情報は、種々の方法で送受信システム２４に伝送することができる。例えば、伝送される情報は、衛星伝送のような放送信号により受信システム２４に送信することができる。受信システム２４はモデムチャネルまたはケーブルを介して信号を受信するように構成することもできる。受信システム２４は、例えば、セットトップボックス２８に結合されたＴＶ２６を含むことができる。セットトップボックス２８は衛星３２から情報を受信するための受信アンテナ３０を含むことができる。受信アンテナ３０は、受信システム２４の処理機能をパフォームするセットトップボックス２８に、ＩＴＶ信号をパッシングする。一度、受信アンテナ３０を介して情報が受信されると、セットトップボックス２８は情報を処理してＴＶセット２６に表示することができる。セットトップボックス２８は、この方法で、オーディオデータと、ビデオデータと、インタラクティブデータを受信し処理することができる。放送チャネルまたはモデムチャネルを介して伝送された信号は、インタラクティブアプリケーションの構成要素を含む種々のモジュールを実施することができる。モジュールには、アプリケーションコードか、生データか、グラフィカル情報のようなあらゆるタイプのデータを含むことができる。
【００１４】
セットトップボックス２８に供給されるシステム情報は、視聴者が利用可能なサービス（例えば、ＣＮＮ、ＭＴＶ、ＥＳＰＮ）のリストと、イベント名（例えば、Dateline、Star Trek）と、イベントのスケジュール（開始日時と継続時間）とを含んでいる。この情報はＥＩＴスケジュールに供給される。ＥＩＴスケジュールのデータはヘッドエンド２０によって供給され、セットトップボックス２８に伝送される。
【００１５】
セットトップボックス２８はＥＩＴスケジュールモジュールを含んでおり、このＥＩＴスケジュールモジュールは指定された時間間隔に対するＥＩＴスケジュールを獲得し処理しストアする。その結果、視聴者はＥＩＴスケジュールのうちの選択した部分に迅速にアクセスでき、その部分を表示できる。視聴者がＥＩＴスケジュールイベント情報を要求できる前に、視聴者はスケジュールイベントのＥＩＴスケジュールウィンドウ４０を作成しなければならない（図２）。
【００１６】
ＥＩＴスケジュールウィンドウ４０は、指定された時間間隔に亘って、選択されたサービスに対して定義される（図２）。図２に示すように、グラフの横軸には、サービスのリスト（Ａ〜Ｉ）を含み、縦軸には、日時（Ｔ０〜Ｔ５）をリストしてある。ＥＩＴスケジュールウィンドウ４０の一部であるサービスに属し、しかも、そのウィンドウのタイムレンジ（time range）内にあるＥＩＴスケジュールイベントは、セットトップボックス２８で処理されストアされることになる。例えば、次のこと、すなわち、
当該イベントが、当該ウィンドウに対するサービスのリストの一部であるサービスに属する。当該イベントの開始日時と継続時間が当該ウィンドウの開始日時と継続時間内にある。当該イベントが、当該データをフィルタリングするために使用されるコンテンツディスクリミネータ（後程説明する）にうまくパッシングされる。
ことがあてはまるならば、スケジュールイベントはＥＩＴスケジュールウィンドウ４０内にあるものとして受け取られる。イベントの継続時間をイベントの終了日時を判定するために使用するか、あるいは、イベント終了日時を継続時間に代えて供給することができる。次の説明では、終了日時と継続時間のどちらかを使用するか、終了日時と継続時間を互に交換することもできる。
【００１７】
視聴者はマルチプルＥＩＴスケジュールウィンドウを定義することができる。このマルチプルＥＩＴスケジュールウィンドウに対して、スケジュールモジュールはＥＩＴスケジュールイベントを獲得しストアすることになる。このマルチプルＥＩＴスケジュールウィンドウは、セットトップボックス２８で実行中のアプリケーションによって作成することもできる。モニタされるサービスのリストは、図３に示すように、連続している（すなわち、サービスがイベント情報テーブルに位置する順番になっている）必要はない。ただし、モニタウィンドウの開始日時および継続時間は、ＥＩＴスケジュールウィンドウに割り当てられたすべてのサービスに適用する。図３に示す３つのブロック４２は、１つのＥＩＴスケジュールウィンドウを構成する。図４は互いに一部重複する２つのＥＩＴスケジュールウィンドウ４８、５０の例を示す。これら２つのＥＩＴスケジュールウィンドウについては、一方のウィンドウ５２が他方のウィンドウ５４に完全に包含されるように作成することもできる（図５）。このＥＩＴスケジュールモジュールは、視聴者によってＥＩＴスケジュールウィンドウが定義された後か、サービスが追加または除去されてＥＩＴスケジュールウィンドウが定義された後か、図６に示すような開始日時や継続時間を修正することによりＥＩＴスケジュールウィンドウが定義された後に、ＥＩＴスケジュールウィンドウを修正するために使用することもできる。視聴者はＥＩＴスケジュールウィンドウ全体を削除することもできる。
【００１８】
ＵＴＣ（Universal Time, Coordinated）またはＧＭＴ（Greenwich Mean Time）の日付がセットトップボックス２８でロールフォワード（roll forward）する場合は、いつでも、以前のＧＭＴの日付に対してスケジュールされたイベントに一致する全てのＥＩＴスケジュールイベントが、当該データストリームから除去される。当該ウィンドウが時間的に将来に向けて進められない場合は、結局、当該ウィンドウは空になることになる。したがって、アプリケーションまたは視聴者がＥＩＴスケジュールウィンドウを作成したとき、自動ウィンドウタイムアドバンス（automatic window time advance）も定義するべきである。この自動ウィンドウタイムアドバンスにより、この作成されたＥＩＴスケジュールウィンドウが、自動的に、時間的に将来に向けてシフトされることになる。このような特徴により、ＥＩＴスケジュールウィンドウがＧＭＴ日付のロールオーバ（roll over）に従うことが保障されることになる。一度、ＥＩＴスケジュールウィンドウが定義されると、開始日時および継続時間はＥＩＴスケジュールモジュールによって自動的に更新される。その結果、当該ウィンドウは現在のＧＭＴ日時との同期を維持するため連続的にフォワードされる。例えば、セットトップボックスの現在の日時と、視聴者がＥＩＴスケジュールウィンドウを定義した日時との差が、指定された更新時間間隔を超えると、開始時刻がインクリメントされることになる。更新時間間隔は、例えば、ＤＶＢ（digital video broadcasting）ＥＩＴスケジュールセグメントの継続時間が３時間であるということから、３時間の倍数にすることができる。
【００１９】
ＥＩＴスケジュールモジュールは、ＥＩＴスケジュールウィンドウを作成した後、ハンドルを、ＥＩＴスケジュールモジュール内のウィンドウを一意的に識別するユーザに戻す。アプリケーションまたはユーザは、ウィンドウに対してハンドルが作成されるまで、ＥＩＴスケジュール情報を取り出すことはできない。あるハンドルが当該ウィンドウに対して作成されるが、その上、あるハンドルがＥＩＴスケジュールウィンドウ内の各イベントに対しても作成される。当該ユーザがスケジュールイベントへのハンドルを解放しても、当該イベントが少なくとも１つのＥＩＴスケジュールウィンドウ内に依然として位置する限り、当該イベントが破壊されることはない。アプリケーションまたはユーザは、一度、ＥＩＴスケジュールイベントに対するハンドルを作成すると、ＥＩＴスケジュールイベントが変更された場合には、通知を受け取ることになる。例えば、ＥＩＴスケジュールイベントがもはや利用可能でない（例えば、所定のウィンドウ外にあるか、プレイアウト（play out）部分でない）場合か、ＥＩＴスケジュールイベントの新バージョンが受け取られる場合は、ユーザは通知を受け取ることができる。
【００２０】
当該ＥＩＴスケジュールモジュールは２つの異なるタイプのＥＩＴスケジュールウィンドウ、すなわち、ストレージ（storage）ＥＩＴスケジュールウィンドウと、モニタＥＩＴスケジュールウィンドウとを作成するように構成されている。このストレージＥＩＴスケジュールウィンドウは、例えば、ＴＶスクリーンに表示されるＥＰＧ（electric program guide）ウィンドウの表現（すなわち、同じ日時と、継続時間の設定と、同じサービスのリスト）とすることができる。このＥＩＴスケジュールモジュールは、次に説明するように、ストレージＥＩＴスケジュールウィンドウ内にあるＥＩＴスケジュールイベントを獲得し、システムヒープ（system heap）にストアする。アプリケーションまたはユーザは当該イベントに対するハンドルを作成し、イベント情報（例えば、ディスクリプタ、開始日時）を取り出すため、これらのハンドルを使用することができる。アプリケーションが終了した場合、スケジュールイベントに対する全てのハンドルは破壊される。このＥＩＴスケジュールモジュールは、関係付けしたウィンドウオブジェクトとスケジュールイベントオブジェクトとが他のＥＩＴスケジュールウィンドウ内に位置しない場合は、これらのオブジェクトを削除する。
【００２１】
このモニタＥＩＴスケジュールウィンドウは、ＥＩＴスケジュールモジュールがＥＩＴスケジュールイベントを獲得する、タイムレンジと、サービスのリストとをカバーする。このモニタＥＩＴスケジュールウィンドウに対して獲得されたイベントは、システムヒープにストアされず、ＥＩＴスケジュールキャッシュメモリセグメントにストアされる。マルチプルアプリケーションまたはマルチプルユーザが、同じモニタＥＩＴスケジュールウィンドウに対するハンドルを有することができる。アプリケーションが終了した場合、ハンドルは全て破壊される。ただし、このＥＩＴスケジュールモジュールは、関係付けられたウィンドウオブジェクトを削除することはない。このＥＩＴスケジュールモジュールは、どのアプリケーションがアクティブかに関わらず、作成されたＥＩＴスケジュールウィンドウを連続的に更新する。次の表１に、ストレージＥＩＴスケジュールウィンドウとモニタＥＩＴスケジュールウィンドウとの主要な相違を要約する。
【００２２】
【表１】
0004425471.tif 000002
【００２３】
アプリケーションまたはユーザが、まず、ＥＩＴスケジュールウィンドウを作成すると、このＥＩＴスケジュールモジュールは、既に獲得したＥＩＴスケジュールイベントのリストをチェックして、ウィンドウ内にあるかどうかを調べる。このＥＩＴスケジュールモジュールは、ウィンドウ内にある可能性のある全てのスケジュールイベントを獲得するため、追加セグメントまたは追加セクションが必要かどうかも判定する。必要と判定した場合、このＥＩＴスケジュールモジュールは、特定セグメントまたは特定セクションを獲得するようにセグメントマネジャーに命令する。ストレージＥＩＴスケジュールウィンドウにある新しいＥＩＴスケジュールイベントが受信されると、ＥＩＴスケジュールモジュールはこの新しい状態をウィンドウの所有者に通知する。例えば、次のような状態、すなわち、
ＥＩＴスケジュールイベントが受信され、処理に対してレディ（ready）であるが、全てのイベントの受信が完了したわけではない。
ウィンドウ内にある最後のＥＩＴスケジュールイベントの受信が完了した。
このＥＩＴスケジュールモジュールがメモリを使いきり、全てのＥＩＴスケジュールイベントをストアすることができない。
という状態が発生すると、所有者は通知を受けることができる。
【００２４】
図７はＥＩＴスケジュールモジュール６０を示すブロック図である。ＥＩＴスケジュールモジュール６０はＥＩＴスケジュールイベントを獲得し処理しストアする。ＥＩＴスケジュールモジュール６０は、ＥＩＴスケジュールイベントと、このＥＩＴスケジュールイベントに関係付けをしたコントロール構造とをストアするＥＩＴスケジュールデータベースと、ＥＩＴスケジュールエンジン６８とを含む。このデータベースは、ストレージＥＩＴスケジュールウィンドウ用のシステムヒープメモリ６２と、モニタＥＩＴスケジュールウィンドウ用のＥＩＴスケジュールキャッシュ６４とからなる。初期設定中、このＥＩＴスケジュールエンジン６８はメモリのセグメント（ＥＩＴスケジュールキャッシュ）を受け取り、モニタＥＩＴスケジュールウィンドウ内にあるＥＩＴスケジュールイベントの情報をストアするために使用する。モニタＥＩＴスケジュールウィンドウ内にはないが、ストレージＥＩＴスケジュールウィンドウ内にある全てのＥＩＴスケジュールイベントのコントロール構造と情報とは、そのデータをヒープにストアするのに利用可能なだけのメモリがあるものとして、システムヒープにストアされる。ＥＩＴスケジュールモジュール６０は、アプリケーションとともに伝送するためのＥＩＴスケジュールインタフェース７０と、ＥＩＴスケジュールディスクリプタフィルタ７２と、次に説明するコンテンツ識別フィルタ７５とをさらに含む。
【００２５】
このＥＩＴスケジュールウィンドウはサービスと開始日時継続時間のリストを定義する。このリストに対して、ＥＩＴスケジュールイベントが連続的にＥＩＴスケジュールエンジン６８によってモニタされ（モニタウィンドウ用のＥＩＴスケジュールキャッシュ６４か、ストアウィンドウ用のシステムヒープ６２に）ストアされ、管理される。このサービスのリストのモニタは、どのアプリケーションが実行中かに関わらず、ＥＩＴスケジュールエンジン６８によって行なわれる。したがって、アプリケーションが終了しても、ＥＩＴスケジュールキャッシュ６４はクリアされない。ただし、ＥＩＴスケジュールキャッシュに駐在しないＥＩＴスケジュールイベント情報は、アプリケーションが終了したときクリアされる。アプリケーション自体が有する利用可能なアプリケーションメモリ以上のアプリケーションメモリを、当該アプリケーションが必要とする場合、当該アプリケーションに、ＥＩＴスケジュールキャッシュ６４が与えられる。ＥＩＴスケジュールキャッシュ６４に含まれる情報はそのプロセスで破壊され、ＥＩＴスケジュールエンジン６８は、モニタＥＩＴスケジュールウィンドウ内にあるＥＩＴスケジュールイベントのために、モニタを停止する。しかし、ＥＩＴスケジュールウィンドウのセットアップ情報は破壊されない。一度、アプリケーションが終了すると、ＥＩＴスケジュールキャッシュ６４がＥＩＴスケジュールエンジン６８に戻され、ＥＩＴスケジュールエンジン６８はモニタＥＩＴスケジュールウィンドウ内にあるＥＩＴスケジュールイベントのモニタを再度開始することになる。
【００２６】
システムヒープ６２で利用可能なストレージより多いストレージを、ＥＩＴスケジュールエンジン６８が使用しようとする場合、ＥＩＴスケジュールエンジン６８はＥＩＴスケジュールイベント情報を破棄し、メッセージを現行アプリケーションに伝送する。ＥＩＴスケジュールキャッシュ６４で利用可能なストレージより多いストレージを、ＥＩＴスケジュールエンジン６８が使用しようとする場合、ＥＩＴスケジュールエンジン６８はＥＩＴスケジュールイベント情報を破棄し、この状態をステータスフラグにストアする。アプリケーションはこのステータスフラグをクエリすることができる。
【００２７】
アプリケーションがＥＩＴスケジュールイベント情報を要求すると、ＥＩＴスケジュールエンジン６８は、まずＥＩＴスケジュールデータベースをチェックし、その情報が利用可能かどうかを調べる。この情報が利用可能でステーブル（stable）である場合（例えば、更新中のプロセスにない場合）、アプリケーションはそのデータに即時にアクセスすることになる。しかし、要求された情報が利用可能でない場合、ＥＩＴスケジュールエンジン６８はプレイアウトからそのデータを獲得するため、セグメントマネジャーを命令することになる。一度、情報がＥＩＴスケジュールデータベース（ＥＩＴスケジュールキャッシュまたはシステムヒープ）にストアされると、このアプリケーションに通知される。ついで、このアプリケーションは、ストアされたＥＩＴスケジュールイベント情報にアクセスする。
【００２８】
このアプリケーションはＥＩＴスケジュールエンジン６８を停止し、再スタートさせることもできる。ＥＩＴスケジュールエンジン６８が停止されると、ＥＩＴスケジュールデータベースにストアされている全ての情報は削除される。しかし、ＥＩＴスケジュールエンジン６８は、ＥＩＴスケジュールウィンドウの最後のセッティングを覚えており、その最後のセッティングを有するＥＩＴスケジュールイベント情報をスタートコマンドを使用して再獲得する、のが好ましい。アプリケーションはあらゆる周知のサービスに対してＥＩＴスケジュールイベント要求を行うことができる。要求されたＥＩＴスケジュールイベント情報が既にＥＩＴスケジュールウィンドウの一部であり、既にＥＩＴスケジュールデータベースにストアされている場合、このアプリケーションはその情報に即時にアクセスすることになる。しかし、要求されたＥＩＴスケジュールイベント情報がまだＥＩＴスケジュールデータベースにストアされておらず、類似の要求が保留になっていない場合、ＥＩＴスケジュールエンジン６８はその情報をプレイアウトから獲得し、システムヒープメモリ６２にストアする。ＥＩＴスケジュールイベント情報がステーブルになったことが、アプリケーションに１回通知されることになる。このアプリケーションが終了する場合か、要求されたＥＩＴスケジュールイベントを指し示すハンドルを解放する場合で、このイベントが他のＥＩＴスケジュールウィンドウの一部でない場合には、全てのイベント情報はＥＩＴスケジュールデータベースから削除されることになる。しかし、このリソースが別のＥＩＴスケジュールウィンドウの一部であるＥＩＴスケジュールイベントを指し示す場合には、そのイベント情報は削除されないことになる。
【００２９】
ＥＩＴスケジュールエンジン６８からのＥＩＴスケジュールセクションの要求は、当該放送からデータを収集するＥＩＴスケジュールセグメントマネージャに伝送される。このＥＩＴスケジュールセグメントマネージャは当該放送からＤＶＢセグメントを検索することを担当する。ＥＩＴスケジュールセグメントマネージャは当該放送から具体的なセクションを収集するために、demuxセクションフィルタにコマンドを発行する。このdemuxセクションフィルタは、一度、セクション全体を受け取ると、セグメントマネージャに通知する。そのセクションの処理に対してレディであることを示すメッセージをセグメントマネージャに伝送するために、通知ルーチンが使用される。このセグメントマネージャはそのメッセージを受信し、付加されているセクション（例えば、バージョンチェック、受信済みセクション）を事前処理する。ＥＩＴスケジュールセクションをハイビットレートで受信できることから、通知ルーチンによって伝送されたメッセージをセグメントマネージャが処理できるよりも速く、セクションが受信される可能性がある。したがって、ＥＩＴスケジュールセクションの獲得レートを制御するため、セグメントマネージャにより、限られた数のＥＩＴスケジュールセクションだけがセグメントマネージャのメッセージキュー（queue）で次の処理を待つことができるようにするのが好ましい。この限られた数に達した場合には、このセグメントマネージャはＥＩＴスケジュールセクションにさらに通知することを許可しない。しかし、ＥＩＴスケジュールセクションが、限られた数のために拒絶された場合には、demuxセクションフィルタは引き続きＥＩＴスケジュールセクションを獲得する。
【００３０】
一度、要求された全てのＥＩＴスケジュールセクションが受信されると、セグメントマネージャは、バージョン変更のために引き続きＥＩＴスケジュールセクションをモニタする。処理時間を短縮するため、demuxセクションフィルタは、要求された全てのセクションの受信が完了した後にスイッチオフにされ、バージョン変更のためにＥＩＴスケジュールセクションをモニタするため、定期的にだけイネーブルにされるのが好ましい。例えば、（例えば、５分）の時間遅延の後で、セグメントマネージャはdemuxセクションフィルタをイネーブルし、ＥＩＴスケジュールセクションをモニタすることができる。バージョン変更が検出されない場合、demuxセクションフィルタは、再度、ある時間間隔だけディセーブルにされる。遅延時間は例えばセットトップボックス２８の初期設定中に指定することができる。
【００３１】
図８はＥＩＴスケジュールモジュールで使用するためのデータベース構造の一例を示す。ウィンドウオブジェクト８０はサービスリンクエレメント８２を介してモニタするためのサービスのリストを指し示す。ウィンドウオブジェクト８０は、例えば、開始時刻と、継続時間と、当該リストの第１サービスリンクエレメント８２を指し示すポインタと、次のウィンドウオブジェクトを指し示すポインタと、第１イベントリンクエレメントおよび他のウィンドウ制御情報を指し示すポインタとを含む。イベントリンクエレメント８６は、当該リスト内の次のイベントリンクエレメントと、当該リスト内の前のイベントリンクエレメントと、それが属するウィンドウオブジェクト８０と、同じイベントオブジェクトを共有するイベントリンクエレメントのリストの次のイベントリンクエレメントと、イベントリンクエレメント８６が参照されるイベントオブジェクト９２とを指し示す。
【００３２】
サービスリンクエレメント８２は同じウィンドウのサービスオブジェクト８８と同じサービスに対する要求とをリンクする。このため、所定のサービスに対する全ての要求と、同じ時間のウィンドウに対する全ての要求へのアクセスとが可能になる。サービスリンクエレメント８２は１つのウィンドウにだけ属する。サービスリンクエレメント８２はサービスおよびウィンドウのために、既に獲得されたセグメントのリストまたは依然として保留になっているセグメントのリストを含むセグメントリスト９０を指し示す。サービスリンクエレメント８２は同じサービスの次のサービスリンクエレメントと、ウィンドウオブジェクト８０と、その関連するサービスオブジェクト８８と、そのウィンドウで次にスケジュールされているサービスと、そのサービスとウィンドウのセグメントリスト９０も指し示す。
【００３３】
サービスオブジェクト８８は、トランスポートスクリーンＩＤと、オリジナルネットワークＩＤと、ＥＩＴスケジュールイベントが獲得されるサービスのサービスＩＤとを含む。個々のＥＩＴスケジュールイベントを指し示すエントリポイントとして、サービスコントロール構造が使用される。サービスオブジェクト８８はサービスリンクエレメント８２とハーフデイ（half day）テーブル１００を指し示す。ハーフデイテーブル（１２時間テーブル）１００は、サーチを高速化するため、１２時間ブラケット（bracket）内にスケジュールイベントをグループ化するために使用される。ハーフデイテーブル１００は、第１のスケジュールイベント９２の始め（begining）を指し示す。イベントオブジェクト９２はＥＩＴスケジュールイベントのイベントＩＤを含み、そのディスクリプタ９６をストアする。同じトランスポートストリームＩＤと、オリジナルネットワークＩＤと、サービスＩＤとを有するイベントオブジェクトは、ハーフデイテーブル１００にリニアにリンクされる。リンクのシーケンスはそのイベントの開始日時によって決定される（日時順）。イベントオブジェクト９２は、例えば、開始時刻と、継続時間と、イベントＩＤを含む。イベントオブジェクト９２は同じハーフデイテーブルエントリに属する次のイベントオブジェクトと、そのイベントリンクエレメント８６と、ディスクリプタオブジェクト９６とを指し示すポインタを含む。
【００３４】
個々のＥＩＴスケジュールイベントを記述するため、ディスクリプタ９６が使用される。ＥＩＴスケジュールエンジン６８はエンジンによってイベントが拒絶されるか追加されるように、ディスクリプタフィルタルーチンを含むのが好ましい。ディスクリプタフィルタルーチンにより、オペレータは、ＥＩＴスケジュールデータベースにストアする前に、ＥＩＴスケジュールイベントのディスクリプタリストを解析することができる。ディスクリプタフィルタルーチンは、オペレータの必要条件（例えば、言語、セットトップボックスの国コード）に基づいて、ディスクリプタをそのままストアするか、ストア前にそのディスクリプタを修正するか、あるいは、そのディスクリプタを拒絶するかを判定することができる。オペレータはディスクリプタリストのディスクリプタシーケンスを変更するオプションも有する。ディスクリプタフィルタルーチンはＥＩＴスケジュールイベントごとに１回ずつ呼び出されるのが好ましい。
【００３５】
システムはイベントコンテンツフィルタ７５も含むことができる（図７）。例えば、イベントコンテンツフィルタは「芸術／文化」または「映画／ドラマ」にセットすることができる。そのイベント情報がそのようなイベントを記述していれば、イベントはウィンドウに付加されるだけである。ディスクリプタリストに関しては、前述のように、オペレータによって提供されたコンテンツディスクリプタ名をＥＩＴスケジュールエンジン６８によって認識されるコンテンツディスクリプタ名に変換するために、コンテンツフィルタを設けることができる。このフィルタは、アプリケーションに、ＥＩＴスケジュールイベントディスクリプタリスト内の期待されるコンテンツディスクリプタのセットを指定することができるフィルタルール（例えば、ＯＲ、ＡＮＤ、ＮＯＴ）を含むのが好ましい。例えば、ルールストリングは、「Sport ＡＮＤ  ＮＯＴ wintersport」を含むことができる。このコマンドは、wintersportを除くsportイベントを記述するあらゆるＥＩＴスケジュールイベントが、イベントコンテンツフィルタを通過することを可能にする。コンテンツフィルタを通過したスケジュールイベントだけが特定のウィンドウに付加される。
【００３６】
図９は、獲得されたＥＩＴスケジュールセクションからＥＩＴスケジュールデータベースへのフローと、ＥＩＴスケジュールデータベースからアプリケーションへのフローを示す。ステップ１１０で、ＥＩＴスケジュールセクションはセグメントマネージャから受信される。ステップ１１２で、ＥＩＴスケジュールセクションは個々のイベントに分割される。ディスクリプタフィルタルーチンが事前に登録されている場合、ステップ１１４で、そのルーチンが呼び出される。ＥＩＴスケジュールイベントが、モニタＥＩＴスケジュールウィンドウ内にある場合、そのイベントはＥＩＴスケジュールキャッシュ６４にストアされる（ステップ１１６および１１８）。ＥＩＴスケジュールイベントがモニタＥＩＴスケジュールウィンドウ内にない場合、そのイベントは、ストレージウィンドウ内にあるならば、システムヒープ６２にストアされる（ステップ１１６、１２０、１２２）。そうでなければ、そのイベントは拒絶される（ステップ１２４）。その後、ＥＩＴスケジュールエンジンは、そのイベントがストレージウィンドウ内にあるかどうか、各ストレージウィンドウをチェックする（ステップ１２５）。そのウィンドウ内にあるならば、そのイベントはそのウィンドウコンテンツフィルタを通過しなければならない（ステップ１２６）。それらの制約を満足した場合だけ、そのイベントはストレージウィンドウに付加される（ステップ１２８）。イベントは、ウィンドウに関するコンテンツフィルタを通過しない場合、そのウィンドウには付加されない（ステップ１３０）。ついで、アプリケーションはそのストレージウィンドウに付加されているスケジュールイベントに関するイベント情報を要求することができる。
【００３７】
前述の方法は、その方法の種々のステップを実行するコンピュータコードを有するコンピュータプログラムプロダクトで実施することができる。そのコンピュータコードはコンピュータ可読媒体、例えば、ＣＤ−ＲＯＭと、ｚｉｐディスクと、フロッピーディスクと、テープと、フラッシュメモリと、システムメモリと、ハードドライブにストアされ、ネットワークを介するような搬送波で具体化されるデータシグナルにストアされるのが好ましい。
【００３８】
以上、実施形態に従って本発明を説明したが、本発明の範囲を逸脱することなく実施形態に変更できることは、当業者にとって当然のことである。したがって、前記説明に含まれ添付図面に示される全ての事項は、例示にすぎず限定する意味ではない。
【図面の簡単な説明】
【図１】  ＩＴＶアプリケーションと、ＴＶプログラムと、システム情報の、ソースから受信局への分配を示す図である。
【図２】  ＥＩＴスケジュールモジュールによって作成されるＥＩＴスケジュールウィンドウを示すグラフである。
【図３】  非連続的サービスレンジに含まれるＥＩＴスケジュールウィンドウを示すグラフである。
【図４】  一部重複するＥＩＴスケジュールウィンドウを示すグラフである。
【図５】  完全に重複する２つのＥＩＴスケジュールウィンドウを示すグラフである。
【図６】  ＥＩＴスケジュールウィンドウの移動を示すグラフである。
【図７】  本発明のＥＩＴスケジュールモジュールを示すブロック図である。
【図８】  ＥＩＴスケジュールウィンドウを作成するために使用されるデータベース構造を示す図である。
【図９】  ＥＩＴスケジュールセクションの、ＥＩＴスケジュールデータベースへの流れと、ＥＩＴスケジュールデータベースからアプリケーションへの流れを示す流れ図である。
図中の対応する参照番号は対応する部分を示す。
【図１】
0004425471.tif 000003
【図２】
0004425471.tif 000004
【図３】
0004425471.tif 000005
【図４】
0004425471.tif 000006
【図５】
0004425471.tif 000007
【図６】
0004425471.tif 000008
【図７】
0004425471.tif 000009
【図８】
0004425471.tif 000010
【図９】
0004425471.tif 000011