(57)【要約】データ・オン・デマンドサービスを提供するために、中央制御サーバ（１０２）によってクライアントにデータを送信する方法であって、以下のステップを含む。データファイルを受け取るステップと、時間間隔を特定するステップと、各データブロックが前記時間間隔中に表示可能となるように、前記時間間隔に基づいて、前記データファイルを複数のデータブロックに分解するステップと、データファイルを送信するために必要とされるタイムスロットの数を決定するステップと、複数のデータブロックのうち少なくとも第１のデータブロックを、そして必要に応じて追加の１つまたはそれ以上のデータブロックを、各タイムスロットに割り当てるステップと、である。データブロックを割り当てるステップは、以下のように割り当てを行う。どのタイムスロットから開始しても、（ｉ）複数のデータブロックのうちの第１のデータブロックにアクセスすることによって、データファイルが表示されることができ；（ｉｉ）直前に表示されたデータブロックに続く次のブロックを、次の１タイムスロットにおいて表示することができ；（ｉｉｉ）データファイルの複数のデータブロックが全て表示されるまでステップ（ｉｉ）を繰り返し、割り当てのステップに基づいてそれら複数のデータブロックを送信することができるように、割り当てを行う。【選択図】図１Ａ
2004501558.tif 000002
【特許請求の範囲】
【請求項１】
データ・オン・デマンドサービスを提供するために、クライアントにデータを送信する方法であって、
（ａ）データファイルを受け取るステップと、
（ｂ）時間間隔を特定するステップと、
（ｃ）前記時間間隔に基づいて、前記データファイルを複数のデータブロックに分解するステップと、
（ｄ）前記複数のデータブロックから１組の先取りデータブロックを選択するステップと、
（ｅ）前記１組の先取りデータブロックを専用チャネルで送信するステップと、
（ｆ）前記複数のデータブロックの残りのデータブロックを伝送チャネルで伝送するステップと
を備える方法。
【請求項２】
請求項１に記載の方法であって、
前記１組の先取りデータブロックを選択するステップは、
帯域幅の減少および先取りの遅延時間を決定するステップと、
前記帯域幅の減少および前記先取りの遅延時間に基づいて、前記先取りデータブロックを選択するステップと、を含む、方法。
【請求項３】
データ・オン・デマンドサービスを提供するために、クライアントにデータを送信する方法であって、
（ａ）データファイルを受け取るステップと、
（ｂ）時間間隔を特定するステップと、
（ｃ）各データブロックが前記時間間隔中に表示可能となるように、前記時間間隔に基づいて、前記データファイルを複数のデータブロックに分解するステップと、
（ｄ）前記複数のデータブロックを伝送チャネルで送信するステップと、
（ｅ）プレビュー要求を受け取るステップと、
（ｆ）前記複数のデータブロックから、前記プレビューを構成する１組のデータブロックを、ランダムに選択するステップと、
（ｇ）前記プレビューを表示させるステップと、を備える方法。
【請求項４】
請求項３に記載の方法であって、さらに、
１組のコマーシャルデータブロックを専用チャネルで送信するステップと、
前記１組のコマーシャルデータブロックを所定時に表示させるステップと、を備える方法。
【請求項５】
請求項４に記載の方法であって、
前記表示のステップは、
コマーシャル表示の頻度に基づいたユーザによる価格選択を受け取るステップと、
前記ユーザによる選択に基づいて、前記１組のコマーシャルデータブロックを表示させるステップと、を含む、方法。
【請求項６】
請求項３に記載の方法であって、さらに、
前記データファイルのパケットヘッダが緊急ビットを含むか否かをチェックするステップと、
前記緊急ビットが検知された場合に、緊急情報を表示させるステップと、を備える方法。
【請求項７】
請求項６に記載の方法であって、さらに、
前記緊急情報が関連地域に関するものであるか否かを決定するステップと、
前記緊急情報が前記関連地域に関するものである場合に、前記緊急情報を表示するステップと、を備える方法。
【発明の詳細な説明】
【０００１】
【発明の簡単な説明】
本発明は、一般に、データ・オン・デマンドシステムに関する。本発明は、特に、ビデオ・オン・デマンドシステムに関する。
【０００２】
【発明の背景】
ビデオ・オン・デマンド（ＶＯＤ）システムは、データ・オン・デマンド（ＤＯＤ）システムの一種である。ＶＯＤシステムでは、ビデオデータファイルは、サーバまたはサーバからなるネットワークによって、１つまたはそれ以上のクライアントにオン・デマンドで提供される。
【０００３】
従来のＶＯＤアーキテクチャでは、サーバまたはサーバからなるネットワークは、標準的な階層クライアント・サーバモデルの方式でクライアントと通信する。例えば、クライアントは、データファイル（例えばビデオデータファイル）要求をサーバに送信する。クライアントからの要求に応じ、サーバは、要求されたデータファイルをクライアントに送信する。標準的なクライアント・サーバモデルでは、クライアントからのデータファイル要求は、１つまたはそれ以上のサーバによって実現することができる。クライアントは、受信された任意のデータファイルを、後の使用のために不揮発性メモリにローカルに格納する能力を有することができる。標準的なクライアント・サーバモデルは、双方向通信インフラストラクチャを必要とする。既存のケーブルが単方向通信しか提供できないことから、現時点での双方向通信は、新しいインフラストラクチャを構築する必要がある。双方向通信インフラストラクチャの例として、光ファイバと同軸ケーブルの組み合わせ（ＨＦＣ）またはあらゆるファイバインフラストラクチャが挙げられる。既存のケーブルを取り替える作業は、非常に高コストであり、大部分のユーザは、こうして得られるサービスを享受することができない。
【０００４】
また、標準的なクライアント・サーバモデルは、サービスプロバイダ（例えばケーブル会社）が多数のクライアントにＶＯＤサービスを提供しようと試みる場合に、多くの制約を受ける。標準的なクライアント・サーバモデルが受ける制約の１つは、サービスプロバイダが、ネットワーク内の各クライアントから発せられる全ての要求を連続的に聞き入れて実現するメカニズムを構築する必要があり、したがって、サービスを受容できるクライアントの数が、このようなメカニズムのキャパシティに依存するという点である。あるメカニズムは、ローカルサーバとして、大きく且つ高速なディスクアレイを有した超並列コンピュータを使用する。しかしながら、既存のローカルサーバのうちで最も高速のものですら、一度に約１，０００から２，０００のクライアントにビデオデータストリームを配信できるに過ぎない。したがって、より多くのクライアントにサービスするためには、ローカルサーバの数を増やさなければならない。ローカルサーバの数が増えると、ローカルサーバの制御を維持するために、より多くの上位サーバが必要になる。
【０００５】
標準的なクライアント・サーバモデルが受けるもう１つの制約は、各クライアントがそれぞれ自身の帯域幅を必要とする点である。したがって、必要な総帯域幅は、加入クライアントの数に正比例する。帯域幅の制約を改善するために、これまでローカルサーバ内のキャッシュメモリが使用されてきたが、キャッシュメモリ自体にも限界があるので、キャッシュメモリを使用しても問題の解決にはならない。
【０００６】
ビデオ・オン・デマンドがクライアントにより享受されやすくなるように、既存のサービスプロバイダは、ローカルサーバごとのクライアントの割合をローカルサーバの能力を超えて増大させている。一般に、１，０００のクライアントにサービスを提供できるローカルサーバは、実際は、１０，０００のクライアントに対するサービスを請け負っている。この技術は、加入クライアントの大部分が同時にビデオを注文しない場合は機能し得る。しかしながら、この技術は故障を引き起こしやすい。なぜなら、大部分のクライアントは同じ時に（例えば夜間や週末などに）ビデオを見たがるものであり、このことが、ローカルサーバがオーバーロードすることにつながるからである。
【０００７】
したがって、既存のインフラストラクチャを取り替えることなく、事実上任意の伝送媒体を通して多数のクライアントにオン・デマンドサービスを提供できるシステムを提供することが、望まれている。
【０００８】
【発明の概要】
代表的な一実施形態では、データ・オン・デマンドサービスを提供するために、サーバ側においてクライアントにデータを送信する方法は、データファイルを受け取るステップと、時間間隔を特定するステップと、その時間間隔中に各データブロックを表示できるように、時間間隔に基づいてデータファイルを複数のデータブロックに分解するステップと、データファイルを送信するために必要とされるタイムスロットの数を決定するステップと、どのタイムスロット中にデータファイルにアクセスするクライアントであっても、複数のデータブロックを順番に使用できるように、複数のデータブロックのうち少なくとも第１のデータブロックを、そして必要に応じて追加の１つまたはそれ以上のデータブロックを、各タイムスロットに割り当てるステップと、割り当てのステップに基づいて複数のデータブロックを送信するステップとを備える。一実施形態では、分解のステップは、推定データブロックサイズを決定するステップと、チャネルサーバのなかのメモリのクラスタサイズを決定するステップと、推定データブロックサイズおよびクラスタサイズに基づいてデータファイルを分解するステップとを含む。別の一実施形態では、決定のステップは、リソースの割り当ておよび帯域幅の利用可用性を評価するステップを含む。
【０００９】
一実施形態では、この方法は、さらに、複数のデータブロックから１組の先取りデータブロックを選択するステップと、先取りデータ、番組ガイド、コマーシャル、ファームウェアアップデートなどを送信するための専用チャネルによって１組の先取りデータブロックを個々に送信するステップとを備える。代表的な一実施形態では、１組の先取りデータブロックを選択するステップは、（１）帯域幅の減少、専用チャネルでの先取りデータへの帯域幅の割り当て、および遅延時間を決定するステップと、（２）帯域幅の減少、帯域幅の割り当て、および遅延時間に基づいて先取りデータブロックを選択するステップとを含む。
【００１０】
別の一実施形態では、この方法は、さらに、プレビュー要求を受け取るステップと、プレビューを構成するために複数のデータブロックから１組のデータブロックをランダムに選択するステップと、プレビューを表示させるステップとを含む。さらに別の一実施形態では、方法は、さらに、専用チャネルで１組のコマーシャルデータブロックを送信するステップと、１組のコマーシャルデータブロックを所定の時間に表示させるステップとを備える。代表的な一実施形態では、コマーシャルデータブロックは、専用チャネルで連続的に送信される。この実施形態では、１組のコマーシャルデータブロックを表示するステップは、コマーシャル表示の頻度に基づいたユーザによる料金選択を受け取るステップと、ユーザによる選択に基づいて１組のコマーシャルデータブロックを表示させるステップとを含む。
【００１１】
さらに別の一実施形態では、この方法は、さらに、データファイルのパケットヘッダ内の緊急ビットの有無をチェックするステップと、緊急ビットが検出された場合に、専用チャネルにチューニングを合わせて緊急情報を受け取るステップと、緊急情報を表示させるステップとを備える。一実施形態では、この方法は、さらに、緊急情報が関連する領域に関連したものであるか否かを決定するステップと、緊急情報が関連する領域に関連したものである場合に、緊急情報を表示するステップとを備える。
【００１２】
代表的な一実施形態では、データ・オン・デマンドサービスを提供するために、サーバから受信されたデータをクライアント側において処理する方法は、（ａ）第１のタイムスロット中に、データファイルの選択を受け取るステップと、（ｂ）第２のタイムスロット中に、データファイルのうちの少なくとも１つのデータブロックを受け取るステップと、（ｃ）次のタイムスロット中に、まだ受信されていない任意のデータブロックを受信し、そのデータファイルのデータブロックを順番に表示し、データファイルの全データブロックが受信され表示されるまでステップ（ｃ）を繰り返すステップと、を備える。一実施形態では、サーバから受信されたデータを処理するための方法は、クライアント側においてセット・トップ・ボックスによって実施される。
【００１３】
代表的な一実施形態では、データファイルは、一定数のデータブロックに分割され、スケジューリング行列は、そのデータブロックの数に基づいて生成される。スケジューリング行列は、データブロックを送信する送信順序をサーバ側において提供し、クライアントがいつでも順番にデータブロックにアクセスできるようにする。代表的な一実施形態では、データファイルのためのスケジューリング行列を生成する方法は、以下のステップを備える。すなわち、（ａ）あるデータファイルのためのデータブロックの数［ｘ］を受け取るステップと、（ｂ）第１の変数［ｊ］を０に設定するステップと、（ｃ）第２の変数［ｉ］を０に設定するステップと、（ｄ）参照アレイ内のあらゆる入力を消去するステップと、（ｅ）参照アレイがまだデータブロックを含んでいない場合に、行列のなかの［（ｉ，ｊ）モジュロｘ］列の行列位置に格納された少なくとも１つのデータブロックを参照アレイに書き込むステップと、（ｆ）参照アレイがデータブロック［ｉ］を含まない場合に、参照アレイおよび行列の行列位置：［（ｉ，ｊ）モジュロｘ，ｊ］にデータブロック［ｉ］を書き込むステップと、（ｇ）第２の変数［ｉ］を１だけ増分させ、第２の変数［ｉ］がデータブロック［ｘ］の数に等しくなるまでステップ（ｅ）を繰り返すステップと、（ｈ）第１の変数［ｊ］を１だけ増分させ、第１の変数［ｊ］がデータブロック［ｘ］の数に等しくなるまでステップ（ｃ）を繰り返すステップとを備える。一実施形態では、１組のデータファイルのなかのデータファイルごとに、スケジューリング行列が生成され、また、畳み込み方法が適用され、これらのスケジューリング行列に基づいて、この１組のデータファイルを送信するためのデリバリ行列が生成される。
【００１４】
データ・オン・デマンドシステムは、第１組のチャネルサーバと、第１組のチャネルサーバを制御するための中央制御サーバと、第１組のチャネルサーバに結合された第１組のアップコンバータと、第１組のアップコンバータに結合されたコンバイナ／アンプと、伝送媒体を介してデータを伝送するように構成されたコンバイナ／アンプとを備える。代表的な一実施形態では、データ・オン・デマンドシステムは、さらに、システムをモニタするためのチャネルモニタモジュールと、スイッチマトリクスと、第２組のチャネルサーバと、第２組のアップコンバータとを備える。チャネルモニタモジュールは、システム障害が生じた場合に中央制御サーバに報告するように構成される。中央制御サーバは、チャネルモニタモジュールからの報告に応じ、第１組のチャネルサーバのなかで障害のあるチャネルサーバを第２組のチャネルサーバのチャネルサーバで置き換え、第１組のアップコンバータのなかで障害のあるアップコンバータを第２組のアップコンバータで置き換えるように、スイッチマトリクスに対して命令する。
【００１５】
データ・オン・デマンドサービスを提供するための方法は、データファイルのデリバリ行列を計算するステップと、デリバリ行列にしたがってデータファイルを送信し、多数のクライアントがデータファイルをオン・デマンドで見られるようにするステップとを備える。一実施形態では、データファイルはビデオファイルを含む。
【００１６】
【発明の実施形態】
図１Ａは、代表的なＤＯＤシステム１００を、本発明の一実施形態にしたがって示している。この実施形態では、ＤＯＤシステム１００は、ビデオファイルなどのデータファイルをオン・デマンドで提供する。しかしながら、ＤＯＤシステム１００は、ビデオファイルをオン・デマンドで提供することに限定されず、例えばゲームファイルなどの他のデータファイルをオン・デマンドで提供することもできる。ＤＯＤシステム１００は、中央制御サーバ１０２と、中央ストレージ１０３と、複数のチャネルサーバ１０４ａ〜１０４ｎと、複数のアップコンバータ１０６ａ〜１０６ｎと、コンバイナ／アンプ１０８とを含む。中央制御サーバ１０２は、チャネルサーバ１０４を制御する。中央ストレージ１０３は、データファイルをデジタルフォーマットで格納する。代表的な一実施形態では、中央ストレージ１０３に格納されたデータファイルは、ネットワークに接続された例えば中央制御サーバ１０２などの許可されたコンピュータによって、標準的なネットワークインターフェース（例えばイーサネット（商標）接続）を介してアクセスすることができる。各チャネルサーバ１０４は、１つのチャネルに割り当てられ、１つのアップコンバータ１０６に結合される。チャネルサーバ１０４は、中央ストレージ１０３から検索されたデータファイルを、中央制御サーバ１０２からの命令にしたがって提供する。各チャネルサーバ１０４の出力は、対応するアップコンバータ１０６に適した周波数を有し且つ直交振幅変調（ＱＡＭ）によって変調された中間周波数（ＩＦ）信号である。ＱＡＭによって変調されたＩＦ信号は、採用されている標準に依存する。米国において現在採用されている標準は、ＤＯＣＳＩＳ（ｄａｔａ−ｏｖｅｒ−ｃａｂｌｅ−ｓｙｓｔｅｍｓ−ｉｎｔｅｒｆａｃｅ−ｓｐｅｃｉｆｉｃａｔｉｏｎ）標準であり、約４３．７５ＭＨｚのＩＦ周波数を必要とする。アップコンバータ１０６は、チャネルサーバ１０４から受信されたＩＦ信号を高周波信号（ＲＦ信号）に変換する。周波数および帯域幅を含むＲＦ信号は、要求されるチャネルおよび採用されている標準に依存する。例えば、ケーブルテレビチャネル８０のための米国における現行の標準のもとでは、ＲＦ信号は、約５５９．２５ＭＨｚの周波数と約６ＭＨｚの帯域幅とを有する。アップコンバータ１０６の出力は、コンバイナ／アンプ１０８に供給される。コンバイナ／アンプ１０８は、受信されたＲＦ信号を増幅し、調節し、統合し、次いで伝送媒体１１０へと出力する。
【００１７】
代表的な一実施形態では、中央制御サーバ１０２は、サービスプロバイダがドラッグ・アンド・ドロップ動作によってデータデリバリをスケジュールすることを可能にするために、グラフィックユーザインターフェース（図示せず）を含む。さらに、中央制御サーバ１０２は、チャネルサーバ１０４を認証および制御し、デリバリ行列にしたがって開始または停止させる。代表的な一実施形態では、中央制御サーバ１０２は、チャネルを自動的に選択し、選択されたチャネルでデータファイルを伝送するためのデリバリ行列を計算する。中央制御サーバ１０２は、データファイル情報（例えば、継続時間、カテゴリ、等級、および／または短い解説など）の追加と、削除と、更新とを、オフラインで提供する。さらに、中央制御サーバ１０２は、格納されているデータファイルおよびデータベースを更新することによって、中央ストレージ１０３を制御する。
【００１８】
代表的な一実施形態では、既存のケーブルテレビシステム１２０は、クライアントに非ＤＯＤサービスを提供するために、コンバイナ／アンプ１０８に信号を供給し続けることができる。したがって、本発明にしたがったＤＯＤシステム１００は、現行のケーブルテレビサービスに支障を来たさない。
【００１９】
図１Ｂは、ＤＯＤシステム１００の別の代表的な一実施形態を、本発明の一実施形態にしたがって示している。図１Ａに示した素子に加えて、ＤＯＤシステム１００は、スイッチマトリクス１１２と、チャネルモニタモジュール１１４と、１組のバックアップチャネルサーバ１１６ａ〜１１６ｂと、１組のバックアップ・アップコンバータ１１８ａ〜１１８ｂとを含む。一実施形態では、スイッチマトリクス１１２は、アップコンバータ１０６とコンバイナ／アンプ１０８との間に物理的に設けられる。スイッチマトリクス１１２は、中央制御サーバ１０２によって制御される。チャネルモニタモジュール１１４は、ＤＯＤシステム１００の正常性をモニタするための、複数の設定されたセット・トップ・ボックスを備える。それらのセット・トップ・ボックスは、可能性のあるクライアントをシミュレートする。モニタ結果は、チャネルモニタモジュール１１４によって中央制御サーバ１０２に通信される。チャネル障害（すなわち、チャネルサーバ障害、アップコンバータ障害、または通信リンク障害）が生じた場合は、中央制御サーバ１０２は、スイッチマトリクス１１２を通して誤動作コンポーネントを切り離し、正常なバックアップコンポーネント１１６および／または１１８を係合してサービスを再開する。
【００２０】
代表的な一実施形態では、ＤＯＤシステム１００から放送されているデータファイルは、ＭＰＥＧ（ｍｏｔｉｏｎ ｐｉｃｔｕｒｅｓ ｅｘｐｅｒｔ ｇｒｏｕｐ）ファイルのなかに含まれる。各ＭＰＥＧファイルは、複数のデータブロックと、時間軸に沿ってデータファイルの特定部分に位置する複数のサブブロックとに、動的に分割される。これらのデータブロックおよびサブブロックは、中央制御サーバ１０２によって提供される三次元のデリバリ行列にしたがって、所定の期間中に送信される。フィードバックチャネルは、ＤＯＤシステム１００がＤＯＤサービスを提供するためには必要でない。しかしながら、フィードバックチャネルが使用可能である場合は、フィードバックチャネルは、請求書の作成発行またはインターネットサービスの提供などの他の目的のために使用することができる。
【００２１】
図２は、代表的なチャネルサーバ１０４を、本発明の一実施形態にしたがって示している。チャネルサーバ１０４は、サーバコントローラ２０２と、ＣＰＵ２０４と、ＱＡＭモジュレータ２０６と、ローカルメモリ２０８と、ネットワークインターフェース２１０とを備える。サーバコントローラ２０２は、データファイルをブロックに（そしてさらにサブブロックおよびデータパケットに）分割し、中央制御サーバ１０２によって提供されたデリバリ行列にしたがって伝送するためのデータブロックを選択し、選択されたデータをエンコードし、エンコードされたデータを圧縮し、圧縮されたデータを次いでＱＡＭモジュレータ２０６に送信するように、ＣＰＵ２０４に対して命令することによって、チャネルサーバ１０４の動作全般を制御する。ＱＡＭモジュレータ２０６は、バス（すなわちＰＣＩバスもしくはＣＰＵローカルバス）またはイーサネット（商標）接続を介して伝送されるべきデータを受信する。代表的な一実施形態では、ＱＡＭモジュレータ２０６は、ダウンストリームＱＡＭモジュレータと、前方向誤り訂正デコーダを備えたアップストリーム直交振幅変調／四位相偏移変調（ＱＡＭ／ＱＰＳＫ）バーストデモジュレータと、および／またはアップストリームチューナとを含むことができる。ＱＡＭモジュレータ２０６の出力は、アップコンバータ１０６に直接供給できるＩＦ信号である。
【００２２】
ネットワークインターフェース２１０は、中央制御サーバ１０２からの命令のスケジューリングおよび制御と、中央制御サーバ１０２に対するステータスの折り返し報告と、中央ストレージ１０３からのデータファイルの受信とを実行するために、他のチャネルサーバ１０４および中央制御サーバ１０２にチャネルサーバ１０４を接続する。中央ストレージ１０３から検索されたあらゆるデータファイルは、サーバコントローラ２０２からの命令にしたがってデータファイルが処理されるに先立って、チャネルサーバ１０４のローカルメモリ２０８に格納することができる。代表的な一実施形態では、チャネルサーバ１０４は、ケーブルチャネルの帯域幅（例えば６ＭＨｚ、６．５ＭＨｚ、または８ＭＨｚ）と、ＱＡＭ変調（例えばＱＡＭ６４またはＱＡＭ２５６）と、ＤＯＤデータストリームの圧縮標準／ビットレート（すなわちＭＰＥＧ−１またはＭＰＥＧ−２）とに依存して、１つまたはそれ以上のＤＯＤデータストリームを送信することができる。
【００２３】
図３は、代表的なセット・トップ・ボックス（ＳＴＢ）３００を、本発明の一実施形態にしたがって示している。ＳＴＢ３００は、ＱＡＭモジュレータ３０２と、ＣＰＵ３０４と、条件付きアクセスモジュール３０６（例えばスマートカードシステム）と、ローカルメモリ３０８と、バッファメモリ３０９と、ＳＴＢコントローラ３１０と、デコーダ３１２と、グラフィックオーバーレイモジュール３１４とを備える。ＳＴＢコントローラ３１０は、クライアントからの要求に応じてデータを選択し、選択されたデータをデコードし、デコードされたデータを解凍し、デコードされたデータを再組み立てし、デコードされたデータをローカルメモリ３０８またはバッファメモリ３０９に格納し、格納されたデータをデコーダ３１２に送信するように、ＣＰＵ３０２およびＱＡＭデモジュレータ３０２を制御することによって、ＳＴＢ３００の動作全般を制御する。代表的な一実施形態では、ＳＴＢコントローラ３１０は、伝送媒体１１０から受信されたデータパケットのなかのデータパケットヘッダに基づいて、ＳＴＢ３００の動作全般を制御する。代表的な一実施形態では、ローカルメモリ３０８は不揮発性メモリ（例えばハードドライブ）であり、バッファメモリ３０９は揮発性メモリである。
【００２４】
一実施形態では、ＱＡＭデモジュレータ３０２は、送受信モジュールと、
以下に示すもののうち１以上のものと、を備える。すなわち、プライバシ暗号化／非暗号化モジュール、前方向誤り訂正デコーダ／エンコーダ、チューナ制御、ダウンストリームおよびアップストリームプロセッサ、ＣＰＵ、ならびにメモリインターフェース回路、のうちの１以上のものを備える。ＱＡＭデモジュレータ３０２は、変調されたＩＦ信号を受信し、信号をサンプリングおよび復調してデータを復元する。条件付きアクセスモジュール３０６は、認証後にアクセス権が付与されたときおよび／または適切な料金が支払われたときに、非暗号化のプロセスを許可する。アクセス条件は、サービスプロバイダによって決定される。
【００２５】
代表的な一実施形態では、アクセス権が付与されたときに、デコーダ３１２は、データブロックを出力画面上に表示可能な画像に変換するために、少なくとも１つのデータブロックをデコードする。デコーダ３１２は、再生、停止、一時停止、ステップ、巻き戻し、早送りなどの、加入クライアントからのコマンドをサポートする。
【００２６】
グラフィックオーバーレイモジュール３１４は、表示された画像の質を、例えばアルファ・ブレンディングまたはピクチャ・イン・ピクチャ機能によって向上させる。代表的な一実施形態において、サービスプロバイダが、本発明にしたがったシステムを使用してゲーム・オン・デマンドサービスを提供するときは、グラフィックオーバーレイモジュール３１４は、ゲームプレイモード時にグラフィックを加速させるために使用することができる。
【００２７】
代表的な一実施形態では、データファイルは、全てのケーブルテレビ加入者に対して放送されるが、そのうち適合するＳＴＢ３００を有するＤＯＤ加入者のみが、データ・オン・デマンドサービスをデコードして享受することができる。代表的な一実施形態では、データファイルをオン・デマンドで取得する許可は、条件付きアクセス制御モジュール３０６のなかのスマートカードシステムを介して取得することができる。スマートカードは、サービスプロバイダによって設置された地元の小売店または自動販売機において再充電可能とすることができる。別の代表的な一実施形態では、あらゆる使用可能データファイルに対する無制限のアクセス権が、均一料金システムによって加入者に提供される。
【００２８】
代表的な一実施形態では、データ・オン・デマンドの双方向性は、クライアントがいつでも使用可能データファイルを選択することを可能にする。クライアントが選択ボタンを押したときから選択されたデータファイルが再生を開始されるまでの時間は、応答時間と称される。ＤＯＤサービスを提供するために割り当てられるリソース（例えば帯域幅やサーバ能力）が増大するにつれ、応答時間は短くなる。代表的な一実施形態では、応答時間は、リソースの割り当ておよび所望サービスの質に対する評価に基づいて決定することができる。
【００２９】
代表的な一実施形態では、選択された応答時間は、１タイムスロットの継続時間を決定する。１タイムスロット（ＴＳ）の継続時間は、クライアントが常用速度でデータブロックを再生する時間間隔である。代表的な一実施形態では、ビデオファイルなどのデータファイルは、一定数のデータブロックに分割され、各データブロックが、１タイムスロットの継続時間だけデータファイルの再生をサポートできるようにする。
【００３０】
一実施形態では、各データファイルのデータブロックの数（ＮＵＭ＿ＯＦ＿ＢＬＫＳ）は、次のように計算することができる。
【００３１】
【式１】
2004501558.tif 000003
【００３２】
【式２】
2004501558.tif 000004
【００３３】
【式３】
2004501558.tif 000005
【００３４】
【式４】
2004501558.tif 000006
【００３５】
式（１）〜（４）では、Ｅｓｔｉｍａｔｅｄ＿ＢＬＫ＿Ｓｉｚｅは、（バイト数で表される）推定ブロックサイズであり、ＤａｔａＦｉｌｅ＿Ｓｉｚｅは、（バイト数で表される）データファイルサイズであり、ＴＳは、（秒数で表される）１タイムスロットの継続時間であり、ＤａｔａＦｉｌｅ＿Ｌｅｎｇｔｈは、（秒数で表される）データファイルの継続時間であり、ＢＬＫ ＳＩＺＥは、データブロックごとに必要とされるクラスタの数であり、ＣＬＵＳＴＥＲ＿ＳＩＺＥは、各チャネルサーバ１０４のローカルメモリ２０８のなかにあるクラスタのサイズであり（例えば６４キロバイトなど）、ＢＬＫ＿ＳＩＺＥ＿ＢＹＴＥＳは、バイト数で表されるブロックのサイズである。この実施形態では、ブロックの数（ＮＵＭ＿ＯＦ＿ＢＬＫＳ）は、（バイト数で表される）データファイルのサイズに、バイト数で表されるデータブロックのサイズを加え、そこから１バイトを引き、さらに、バイト数で表されるデータブロックのサイズで割ったものに等しい。式（１）〜（４）は、具体的な一実施形態を示している。当業者ならば認識しているように、１データファイルのデータブロック数を計算するために、他の方法を使用することも可能である。例えば、データファイルを一定数のデータブロックに分割する作業は、主に、チャネルサーバ１０４のローカルメモリ２０８の推定ブロックサイズおよびクラスタサイズの関数である。したがって、本発明は、上述した具体的な実施形態に限定されるべきではない。
【００３６】
図４は、スケジューリング行列を生成する代表的なプロセスを、本発明の一実施形態にしたがって示している。代表的な一実施形態では、本発明は、サーバ側においてデータデリバリを圧縮およびスケジューリングするために、時分割多重方式（ＴＤＭ）および周波数分割多重（ＦＤＭ）を使用する。代表的な一実施形態では、スケジューリング行列は、データファイルごとに生成される。一実施形態では、各データファイルは、一定数のデータブロックに分割され、スケジューリング行列は、そのデータブロックの数に基づいて生成される。一般に、スケジューリング行列は、データファイルのデータブロックをサーバからクライアントへと送信する送信順序を提供する。その結果、任意の時刻にデータファイルにアクセスしようとする任意のクライアントが、順番にデータファイルにアクセスできるようになる。
【００３７】
ステップ４０２では、あるデータファイルのデータブロックの数（ｘ）が受信される。第１の変数ｊが、０に設定される（ステップ４０４）。参照アレイが、クリアされる（ステップ４０６）。参照アレイは、内部管理のためにデータブロックの移動を記録する。次に、ｊとｘが比較される（ステップ４０８）。ｊがｘ未満である場合は、第２の変数ｉが０に設定される（ステップ４１２）。次に、ｉとｘが比較される（ステップ４１４）。ｉがｘ未満である場合は、スケジューリング行列の［（ｉ＋ｊ）ｍｏｄｕｌｏ（ｘ）］列に格納されたデータブロックが、参照アレイに書き込まれる（ステップ４１８）。参照アレイが既にこのようなデータブロックを有している場合は、重複して書き込んではならない。初めは、スケジューリング行列はまだ何の入力も有していないので、このステップは省略することができる。次に、参照アレイは、データブロックｉを含むか否かをチェックされる（ステップ４２０）。初めは、参照アレイのなかの入力は全てステップ４０６で消去されているので、参照行列のなかには何も存在しない。参照アレイがデータブロックｉを含まない場合は、スケジューリング行列の行列位置：［（ｉ＋ｊ）モジュロ（ｘ），ｊ］および参照アレイに、データブロックｉが追加される（ステップ４２２）。データブロックｉがスケジューリング行列および参照アレイに追加された後は、ｉ＝ｉ＋１になるようにｉが１だけ増分され（ステップ４２４）、ステップ４１４でｉ＝ｘになるまで手順が繰り返される。参照アレイがデータブロックｉを含む場合は、ｉ＝ｉ＋１になるようにｉが１だけ増分され（ステップ４２４）、ステップ４１４でｉ＝ｘになるまで手順が繰り返される。ｉ＝ｘである場合は、ｊ＝ｊ＋１になるようにｊが１だけ増分され（ステップ４１６）、ｊ＝ｘになるまでステップ４０６が繰り返される。このプロセス全体は、ｊ＝ｘになったときに終了する（ステップ４１０）。
【００３８】
代表的な一実施形態において、データファイルが６つのデータブロックに分割される（ｘ＝６）場合は、スケジューリング行列および参照アレイは、次のように表される。
【００３９】
【表１】
2004501558.tif 000007
【００４０】
【表２】
2004501558.tif 000008
【００４１】
この代表的な一実施形態では、上述したスケジューリング行列に基づいて、データファイルの６つのデータブロックが、以下の順番で送信される。
【００４２】
【表３】
2004501558.tif 000009
【００４３】
別の代表的な一実施形態では、先読みスケジューリング行列を計算し、予測されるアクセス時間に先立って１データファイルに相当する所定数のデータブロックを送信するために、先読みプロセスを使用することができる。例えば、タイムスロットの番号が４またはそれより大きい任意のタイムスロットに関し、所定の先読み時間が１タイムスロット分の継続時間である場合は、データファイルのデータブロック４（ｂｌｋ４）は、加入クライアントのところにあるＳＴＢ３００によって、ＴＳ３またはそれよりも前に受信されることが望ましいが、このｂｌｋ４は、ＴＳ４まで再生されない。先読みスケジューリング行列を生成するプロセスのステップは、本実施形態での先読みスケジューリング行列が、先読み時間に基づいて早期送信シーケンスをスケジュールするという点を除き、図４に沿って上述したプロセスのステップと実質的に同じである。データファイルが６つのデータブロックに分割されたと仮定すると、先読みスケジューリング行列に基づいた代表的な送信シーケンスは、２タイムスロットの継続時間に相当する先読み時間を有し、次のように表すことができる。
【００４４】
【表４】
2004501558.tif 000010
【００４５】
１組のデータファイルを送信するための三次元のデリバリ行列は、その１組のデータファイルに含まれる各データファイルのスケジューリング行列に基づいて生成される。三次元のデリバリ行列では、１組のデータファイルのなかの各データファイルのＩＤを含む第３次元が生成される。三次元のデリバリ行列は、各チャネルの有効帯域幅を効率的に利用し、複数のデータストリームを送信するために計算される。代表的な一実施形態では、三次元のデリバリ行列を生成し、１組のデータファイルの効率的な送信をスケジュールするために、当該分野において周知である畳み込み方法が使用される。例えば、畳み込み方法は、以下の方針を含むことができる。すなわち、（１）任意のタイムスロット（ＴＳ）の継続時間中に送信されるデータブロックの総数は、可能な限り少数に抑えられることが望ましい、（２）方針（１）に関して複数の部分解があり得る場合は、任意の参照タイムスロットの継続時間中に送信されるデータブロックと、（参照タイムスロットの）前のタイムスロットの継続時間中に送信されるデータブロックと、（参照タイムスロットの）次のタイムスロットの継続時間中に送信されるデータブロックと、を加算することによって得られるデータブロックの和が最小である解決法が好ましい。例えば、２つの短いデータファイルすなわちＭおよびＮを送信する代表的なシステムが想定され、各データファイルが６つのデータブロックにそれぞれ分割される場合は、スケジューリング行列に基づいた送信シーケンスは、次のとおりである。
【００４６】
【表５】
2004501558.tif 000011
【００４７】
上述したような代表的な畳み込み方法が適用される場合は、デリバリ行列の組み合わせとして以下の６タイプが可能である。
【００４８】
【表６】
2004501558.tif 000012
【００４９】
【表７】
2004501558.tif 000013
【００５０】
【表８】
2004501558.tif 000014
【００５１】
【表９】
2004501558.tif 000015
【００５２】
【表１０】
2004501558.tif 000016
【００５３】
【表１１】
2004501558.tif 000017
【００５４】
方針（１）を適用すると、オプション２，４，６が、任意のタイムスロットの最中に送信されるデータブロックの最大数が最も小さい（すなわち６データブロックである）。方針（２）を適用すると、代表的な本実施形態において最適なデリバリ行列は、オプション４である。なぜなら、オプション４では、任意の参照タイムスロットのデータブロックと、隣接するタイムスロットのデータブロックとの和が最小（すなわち１６データブロック）であるからである。したがって、本実施形態にとって最適なものとしては、データファイルＮの送信シーケンスは、３タイムスロットによってシフトされることが望ましい。代表的な一実施形態では、三次元のデリバリ行列がチャンネルサーバ１０４ごとに生成される。
【００５５】
各データファイルのデータブロックがデリバリ行列にしたがって送信されるときは、多数の加入クライアントがいつでもデータファイルにアクセスすることができるので、各加入クライアントは、データファイルのなかの適切なデータブロックを適宜に利用することが可能である。上述した実施例において、１タイムスロットの継続時間が５秒間に等しいと仮定すると、ＤＯＤシステム１００は、データファイルＭ，Ｎのデータブロックを、最適なデリバリ行列にしたがって以下の方法で送信する（すなわちデータファイルＮの配信シーケンスを３タイムスロットによってシフトさせる）。
【００５６】
【表１２】
2004501558.tif 000018
【００５７】
クライアントＡが、時刻００：００：００において映画Ｍを選択する場合は、クライアントＡにおけるＳＴＢ３００は、データブロックの受信、格納、再生、および拒否を次のように行う。
【００５８】
【表１３】
2004501558.tif 000019
【００５９】
クライアントＢが、時刻００：００：１０において映画Ｍを選択する場合は、クライアントＢにおけるＳＴＢ３００は、データブロックの受信、格納、再生、および拒否を次のように行う。
【００６０】
【表１４】
2004501558.tif 000020
【００６１】
クライアントＣが、時刻００：００：１５において映画Ｍを選択する場合は、クライアントＣにおけるＳＴＢ３００は、データブロックの受信、格納、再生、および拒否を次のように行う。
【００６２】
【表１５】
2004501558.tif 000021
【００６３】
クライアントＤが、時刻００：００：３０において映画Ｍを選択する場合は、クライアントＤにおけるＳＴＢ３００は、データブロックの受信、格納、再生、および拒否を次のように行う。
【００６４】
【表１６】
2004501558.tif 000022
【００６５】
上述した実施例で示したように、サービスプロバイダによって提供される任意のデータファイルの選択および再生開始は、クライアントの組み合わせがどのようであっても、常に独立して行うことができる。
【００６６】
一般動作
サービスプロバイダは、放送に先立って一定数のデータファイル（例えばビデオファイル）をチャネルサーバ１０４に送信するようにスケジュールすることができる。中央制御サーバ１０２は、三次元のデリバリ行列（ＩＤ、タイムスロット、およびデータブロック送信順序）を計算してチャネルサーバ１０４に送信する。放送中に、チャネルサーバ１０４は、適切なデータブロックを適切な順序で送信するように三次元デリバリ行列を指導する。各データファイルは、複数のデータブロックに分割されるので、多数の加入クライアントのそれぞれが、いつでも連続的に且つ順番にデータファイルを見始めることができる。データファイルの１データブロックのサイズは、選択された１タイムスロットの継続時間と、データファイルのデータストリームのビットレートとに依存する。例えば、ビットレートが一定のＭＰＥＧデータストリームでは、各データブロックは、ブロックサイズ（メガバイト）＝ビットレート（メガバイト毎秒）×ＴＳ（秒）／８…式（１）で表される固定サイズを有する。
【００６７】
代表的な一実施形態では、データブロックのサイズは、チャネルサーバ１０４のローカルメモリ２０８のなかのメモリクラスタサイズの数倍のサイズであって、データブロックのサイズを超える最小のサイズになるように調整される。例えば、上述した式（１）にしたがって計算されたデータブロックの長さが７２０キロバイトであり、ローカルメモリ２０８のクラスタサイズが６４キロバイトである場合は、得られるデータブロックの長さは７６８キロバイトであることが望ましい。本実施形態では、データブロックは、クラスタサイズと同じサイズをそれぞれ有した複数のサブブロックにさらに分割されることが望ましい。本実施例では、データブロックは、６４キロバイトのサブブロックを１２だけ有する。
【００６８】
サブブロックは、さらにデータパケットに分割することができる。各データパケットは、パケットヘッダとパケットデータとを含む。パケットデータの長さは、各チャネルサーバのＣＰＵによるデータの送信先である物理的階層の最大伝送単位（ＭＴＵ）に依存する。好ましい実施形態では、パケットヘッダおよびパケットデータの合計サイズは、ＭＴＵ未満であることが望ましい。しかしながら、最大限の効率を得るためには、パケットデータの長さはできるだけ長いことが望ましい。
【００６９】
代表的な一実施形態では、パケットヘッダのなかのデータは、以下のことを加入クライアントのＳＴＢ３００に対して許可する情報（例えば、プロトコル署名、ヴァージョン、ＩＤ、またはパケットタイプ情報など）を含む。すなわち、ＳＴＢ３００に対して、任意の受信データをデコードして、データパケットが選択データファイルに属するか否かを決定することを許可する情報である。パケットヘッダは、また、ブロック／サブブロック／パケット番号、パケット長さ、サブブロックのなかでの巡回冗長検査（ＣＲＣ）およびオフセット、および／またはエンコード情報などの、他の情報を含むこともできる。
【００７０】
チャネルサーバ１０４によって受信されたデータパケットは、ＱＡＭモジュレータ２０６に送信され、ＱＡＭ変調されたＩＦ出力信号を生成するために別のヘッダを追加される。ＱＡＭモジュレータ２０６のために出力される最大ビットレートは、使用可能な帯域幅に依存する。例えば、６ＭＨｚの帯域幅を有したＱＡＭモジュレータ２０６の場合は、最大ビットレートは５．０５（ビット／シンボル）×６（ＭＨｚ）＝３０．３メガビット／秒である。
【００７１】
ＱＡＭ変調されたＩＦ信号は、特定のチャネルに適したＲＦ信号（例えばＣＡＴＶチャネル８０の場合は５５９．２５０ＭＨｚおよび６ＭＨｚの帯域幅）に変換されるために、アップコンバータ１０６に送信される。例えば、ケーブルネットワークが高い帯域幅（またはビットレート）を有する場合は、各チャネルは、仮想サブチャネルをそれぞれ占有する２つ以上のデータストリームを提供するために使用することができる。例えば、３つのＭＰＥＧ１データストリームが、ＱＡＭ変調の使用によって６ＭＨｚチャネルに適合される。アップコンバータ１０６の出力は、統合された信号を伝送媒体１１０に送信するコンバイナ／アンプ１０８に供給される。
【００７２】
代表的な一実施形態では、「Ｎ」個のデータストリームを伝送するためのシステム帯域幅（ＢＷ）の合計は、ＢＷ＝Ｎ×ｂｗであり、ｂｗは、データストリームごとに必要とされる帯域幅である。例えば、各ＭＰＥＧ−１データストリームは、９メガビット／秒のシステム帯域幅を占めるので、３つのＭＰＥＧ−１データストリームは、３０．３メガビット／秒のシステム帯域幅を有したＤＯＣＳＩＳケーブルチャネルによって、同時に伝送することができる。
【００７３】
一般に、帯域幅は、ＤＯＤサービスに実際にアクセスしている加入クライアントの数に無関係に消費される。したがって、ＤＯＤサービスを使用している加入クライアントがいない場合でも、システムのオン・デマンド能力を保証するためには、やはり帯域幅が消費される。
【００７４】
代表的な一実施形態では、全システム帯域幅（ＢＷ）は、各データファイルのうちいくつかのデータブロックを先取りすることによって減少させることができる。先取りデータブロックは、個々の専用チャネルで連続的に送信される。一実施形態では、１データファイルのための先取りデータブロックは、グループで順次に送信される。残りのデータブロックを送るために必要とされる全システム帯域幅（ＢＷ）は、先取りデータブロックを送信することによって減少される。個別のチャネルで送信される先取りデータブロックとして望ましい数が決定された後は、これらの先取りデータブロックが他のデータブロックとともに再度送信されることがないように、残りのデータブロックを送信するためのスケジュールが調整されることが望ましい。
【００７５】
例えば、データファイルが６つのデータブロックに分割された上述した代表的なスケジューリング行列は、第１のデータブロック「ｂ０」と第２のデータブロック「ｂ１」の両方が先取りデータブロックである場合に、残りのデータブロック（ｂ２〜ｂ５）のために次のように変更されることが望ましい。
【００７６】
【表１７】
2004501558.tif 000023
【００７７】
上述した実施例において、ｂ０が唯一の先取りデータブロックである場合は、データファイルの残りのデータブロック（ｂ１〜ｂ５）を送信するための全帯域幅は、３７．５％だけ減少される（すなわち合計１６のデータブロックのうち６つのデータブロックが除去される）。次に、データブロック「ｂ１」もまた先取りデータブロックである場合は、残りのデータブロック（ｂ２〜ｂ５）を送信するための帯域幅は、さらに追加で１２．５％だけ減少される。したがって、ｂ１を先取りするために追加で減少される帯域幅は、ｂ０を先取りするためのそれほど大きくない。追加で減少される帯域幅は、先取りされるデータが増えるにつれて減退するので、各データファイルの先取りデータブロックとして最適な数は、所望の帯域幅の減少に基づいて決定することができる。代表的な一実施形態では、１データファイルのうちｘからｙまでのデータブロックを先取りすることによって節約される帯域幅が、次の式によって見積もられる。
【００７８】
【式５】
2004501558.tif 000024
【００７９】
また、先取りされるデータブロックの数が増大するにつれ、先取りの遅延時間も増大する。先取り遅延時間は、各データファイルの１データブロックのサイズと、各データファイルから先取りされるデータブロックの数と、送信されるデータファイルの数と、専用チャネルに割り当てられる先取り帯域幅とに基づいて決定される。代表的な一実施形態では、各データファイルの全ての先取りデータブロックが、順番に且つ連続して１タイムスロットごとに１データブロックずつ専用チャネルで送信される。当業者ならば、先取りデータブロックの数が増大するにつれ、先取りの遅延時間も長くなることがわかる。したがって、各データファイルの先取りデータブロックとして最適な数を決定する際は、許容可能な先取り遅延時間を考慮に入れることが望ましい。
【００８０】
例えば、データファイルＭ，Ｎのデータブロックｂ０，ｂ１が専用チャネルで先取りされる場合は、これらの先取りデータブロックは、次の方式で送信することができる。
【００８１】
【表１８】
2004501558.tif 000025
【００８２】
代表的な一実施形態において、所定の先取り帯域幅：ＰＲＦ＿ＢＷ（メガバイト／秒）が割り当てられると仮定すると、先取り遅延時間は、次式：先取り遅延時間＝［データブロックのサイズ（メガバイト）×先取りされるデータブロックの数×（送信されるデータファイルの数＋１）×８］／ＰＲＦ＿ＢＷ（メガバイト／秒）にしたがって計算することができる。
【００８３】
代表的な一実施形態では、送信される全データファイルの先取りデータブロックを一通り送信するために必要とされる時間である先取りサイクル時間（ＰＲＦ＿ＴＩＭＥ）が、次式：先取りサイクル時間＝［データブロックのサイズ（メガバイト）×先取りされるデータブロックの数×（送信されるデータファイルの数＋１）×８］／ＰＲＦ＿ＢＷ（メガバイト／秒）にしたがって計算することができる。
【００８４】
一実施形態では、先取り遅延時間を減少させるために、新しいデータファイルの先取りデータブロックが、古いデータファイル（例えば所定の時間のあいだ連続的に送信されたデータファイル）のなかの先取りデータブロックよりも頻繁に送信される。例えば、Ｍが古いデータファイルであってＮが新しいデータファイルである場合は、先取りデータブロックは、次の方式で送信される。
【００８５】
【表１９】
2004501558.tif 000026
【００８６】
ＳＴＢ３００は、いったんオンに調整されると、ＳＴＢ３００のローカルメモリ３０８に格納された番組ガイドの受信および更新を連続的に行う。代表的な一実施形態では、ＳＴＢ３００は、最新の番組ガイドを含むデータファイル情報をＴＶ画面上に表示する。ビデオファイル情報などのデータファイル情報は、映画のＩＤ、映画のタイトル、（複数言語での）説明、カテゴリ（例えばアクションやキッズなど）、格付け（例えばＲ指定やＰＧ１３指定など）、ケーブル会社の方針（例えば値段や無料試聴期間など）、申し込み期間、映画のポスタ、および映画の予告などを含むことができる。代表的な一実施形態では、データファイル情報は、ファームウェアアップデート、コマーシャル、および／または緊急情報のために予約されたチャネルなどの専用チャネルを介して送信される。別の代表的な一実施形態では、情報は、他のデータストリームとの共有の物理的チャネルによって送信される。代表的な一実施形態では、ＳＴＢ３００は、どのデータファイルも再生していない期間は、専用チャネルに調整され、まだ受信されていない先取りデータブロックを、いつでも受信し更新できる状態にある。
【００８７】
代表的な一実施形態では、プレビューは、データファイルのデータストリームのなかでランダムに選択されたデータブロックから構成される。したがって、同じデータファイルのプレビューを複数回選択する場合でも、ユーザが同じプレビューを見る可能性は小さい。ランダムに構成されたプレビューの利点は、ＤＯＤシステム１００が、所定のプレビュー番組を放送するための帯域幅を余分に必要としないという点にある。代わりに、ＤＯＤシステム１００は、あるデータファイルのプレビューを見ることをユーザが要求した後に、そのデータファイルの通常データストリームのなかのデータブロックをランダムに選択する。好ましい一実施形態では、どのプレビューの一部を構成することもできないデータブロックが存在する。例えば、データファイルによって映画が供給される場合は、映画の後半部分は、ランダムに選択されるプレビューの一部を構成しないことが望ましい。
【００８８】
加入クライアントは、テレビ画面上に表示されたカテゴリによってアレンジされた、使用可能データファイルのリストを見ることができる。クライアントが使用可能データファイルの１つを選択すると、ＳＴＢ３００は、そのデータファイルのデータパケットの受信を開始するために、ハードウェアを制御し、対応する物理的チャネルおよび／または仮想サブチャネルに合わせる。ＳＴＢ３００は、あらゆるデータパケットヘッダを検査し、データパケットのなかのデータをデコードし、受信されたデータパケットを保存することが望ましいか否かを決定する。ＳＴＢ３００が、データパケットの保存を望ましくないと決定した場合は、そのデータパケットは廃棄される。そうでない場合は、データパケットは、後の検索に備えてローカルメモリ３０８のなかに保存されるか、あるいは、デコーダ３１２に送信されるまでのあいだバッファメモリ３０９のなかに一時的に格納される。
【００８９】
ローカルメモリ３０８に対する頻繁な読み出し／書き込みを回避することによって性能効率を向上させるため、代表的な一実施形態でのＳＴＢ３００は、メモリバッファ３０９のなかの予測されるデータブロックをいつでもロックできる「スライディング・ウィンドウ」予測技術を使用する。予測ウィンドウのなかでヒットが生じた場合は、データブロックは、メモリバッファ３０９から出てそのままデコーダ３１２へと伝送される。予測ミスが生じた場合は、データブロックは、メモリバッファ３０９からデコーダ３１２へと伝送される前に、ローカルメモリ３０８からメモリバッファ３０９へと読み込まれる。
【００９０】
代表的な一実施形態では、ＳＴＢ３００は、一時停止、スローモーション再生、巻き戻し、ズーム、およびシングルステップのためのボタンを含んだ、赤外線（ＩＲ）リモコン装置ボタン、ＩＲキーボード、またはプロントパネル押しボタンを介して、加入クライアントのコマンドに応じる。代表的な一実施形態では、加入クライアントが所定期間のあいだ何のアクションも入力しなかった場合は、スケジュールされたコマーシャルが自動的に再生される。スケジュールされたコマーシャルは、加入クライアントがアクションを提供したとき（例えばリモコン装置のボタンを押したとき）に自動的に停止する。別の代表的な一実施形態では、ＳＴＢ３００は、ビデオの再生中にコマーシャルを自動的に挿入することができる。サービスプロバイダ（例えばケーブル会社）は、再生中のビデオにどれくらいの頻度でコマーシャルを割り込ませるかを規定する、価格の設定方針を準備することができる。
【００９１】
代表的な一実施形態では、ＤＯＤシステム１００を使用しているケーブル会社は、コマーシャルの割り込み回数に基づいて価格表を用意することができる。一実施形態では、コマーシャル用のデータブロックは、番組表、緊急ビット、および任意のファームウェアアップデートをも放送する専用チャネルを介して連続的に放送される。ユーザは、そのような価格表から、価格とコマーシャルとの許容バランスを選ぶことができる。代表的な一実施形態では、ＤＯＤシステム１００は、ユーザが選択した価格計画に基づいて所定の時間間隔による自動的なコマーシャルデータブロックの挿入を許容する内部クロックを維持することによって、そのユーザの選択を実現する。
【００９２】
データパケットヘッダのなかに緊急情報ビットが発見された場合は、ＳＴＢ３００は、あらゆるデータ受信動作を一時停止し、データファイル情報の受信用に用意されているチャネルに合わせるようにハードウェアを制御することによって、出力画面上に表示すべきあらゆる緊急情報を取得してデコードする。代表的な一実施形態では、ＳＴＢ３００がアイドルであるときは、ＳＴＢ３００は、データファイル情報の受信用に用意されたチャネルに合わされており、あらゆる緊急情報を遅滞なく受信し表示する用意が常に整っている。
【００９３】
一実施形態では、ＳＴＢ３００がアイドル状態であるとき（例えばユーザがシステムを使用していないとき）は、アラームが発せられ、出力デバイスをオンにして緊急情報を見るようにユーザに警告する。別の一実施形態では、ＳＴＢ３００は、地域ごとに緊急情報を区別することができる。例えば、無関係な地域に関する緊急情報が、再生中のデータファイルに割り込んだり、あるいはアラームをトリガしたりすることはない。反対に、既存のシステムでは、緊急情報を送信するために、ケーブル会社が手動で放送に割り込む必要がある。
【００９４】
上述した実施例は、本発明による特定の代表的な実施形態を示したものであり、当業者ならば、これらをもとにして変更形態および代替形態を考え付くことが可能である。したがって、本発明は、上述した特定の実施形態に限定されるのではなく、添付した特許請求の範囲によって規定されることが望ましい。
【図面の簡単な説明】
【図１Ａ】
代表的なＤＯＤシステムを、本発明の一実施形態にしたがって示した図である。
【図１Ｂ】
代表的なＤＯＤシステムを、本発明の別の一実施形態にしたがって示した図である。
【図２】
代表的なチャネルサーバを、本発明の一実施形態にしたがって示した図である。
【図３】
代表的なセット・トップ・ボックスを、本発明の一実施形態にしたがって示した図である。
【図４】
スケジューリング行列を生成する代表的なプロセスを、本発明の一実施形態にしたがって示した図である。
【符号の説明】
１００…ＤＯＤシステム
１０２…中央制御サーバ
１０３…中央ストレージ
１０４ａ〜１０４ｎ…チャネルサーバ
１０６ａ〜１０６ｎ…アップコンバータ
１０８…コンバイナ／アンプ
１１０…伝送媒体
１１２…スイッチマトリクス
１１４…チャネルモニタモジュール
１１６ａ〜１１６ｂ…バックアップチャネルサーバ
１１８ａ〜１１８ｂ…バックアップコンバータ
１２０…ケーブルテレビシステム
２０２…サーバコントローラ
２０４…ＣＰＵ
２０６…ＱＡＭモジュレータ
２０８…ローカルメモリ
２１０…ネットワークインターフェース
３００…セット・トップ・ボックス（ＳＴＢ）
３０２…ＱＡＭモジュレータ
３０４…ＣＰＵ
３０６…条件付きアクセスモジュール
３０８…ローカルメモリ
３０９…バッファメモリ
３１０…ＳＴＢコントローラ
３１２…デコーダ
３１４…グラフィックオーバーレイモジュール
【図１Ａ】
2004501558.tif 000027
【図１Ｂ】
2004501558.tif 000028
【図２】
2004501558.tif 000029
【図３】
2004501558.tif 000030
【図４】
2004501558.tif 000031
【国際公開パンフレット】
2004501558.tif 000032
2004501558.tif 000033
2004501558.tif 000034
2004501558.tif 000035
2004501558.tif 000036
2004501558.tif 000037
2004501558.tif 000038
2004501558.tif 000039
2004501558.tif 000040
2004501558.tif 000041
2004501558.tif 000042
2004501558.tif 000043
2004501558.tif 000044
2004501558.tif 000045
2004501558.tif 000046
2004501558.tif 000047
2004501558.tif 000048
2004501558.tif 000049
2004501558.tif 000050
2004501558.tif 000051
2004501558.tif 000052
2004501558.tif 000053
2004501558.tif 000054
2004501558.tif 000055
2004501558.tif 000056
2004501558.tif 000057
2004501558.tif 000058
2004501558.tif 000059
2004501558.tif 000060
2004501558.tif 000061
【国際調査報告】
2004501558.tif 000062
2004501558.tif 000063