(57)【要約】【課題】【解決手段】データブロックに分割されたデータファイル用のアイドルタイム減少スケジューリング行列のための方法およびシステム。スケジューリング行列が生成され（工程５２０）、データブロックの元のシーケンスを維持したまま、行列の後の方に現れるデータブロックでアイドルタイムが埋められる。次に、この工程が繰り返されるか（工程５５０）、または、新たなアイドルタイム減少スケジューリング行列が生成される。タイム減少スケジューリング行列から、プリロードストリームを構成できる。次に、これらのデータブロックを受信できるよう特別に設計されたセット・トップ・ボックスについて説明されている。好ましい実施形態では、セット・トップ・ボックスは、絶えず放送されている最適化されたプリロードを格納することで、帯域幅の節約を向上させることが可能である。【選択図】図９
2004536491.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータによって実行される汎用放送方法であって、
クライアントに非特異な方式で、複数のクライアントにオン・デマンドデータを放送するのに適したデータ送信シーケンスを規定する配信行列を準備する工程を備え、
前記オン・デマンドデータファイルの送信は、前記データ送信シーケンスの第１のサブセットを含む第１のストリームと、前記データ送信シーケンスの第２のサブセットを含む第２のストリームと、を含む、方法。
【請求項２】
請求項１に記載のコンピュータによって実行される方法であって、
前記第１のサブセットおよび前記第２のサブセットは、共通のデータブロックを含まない、方法。
【請求項３】
請求項２に記載のコンピュータによって実行される方法であって、
前記第１のサブセットは、最適化された１セットの複数のデータブロックを含み、
前記第２のサブセットは、前記データ送信シーケンスの残りであり、
前記最適化された１セットの複数のデータブロックは、データブロックの配信頻度に依存する、方法。
【請求項４】
請求項１に記載のコンピュータによって実施される方法であって、
前記第１のストリームは、さらに、プリフェッチストリーム識別子を含む、方法。
【請求項５】
請求項４に記載のコンピュータによって実行される方法であって、
前記プリフェッチストリーム識別子は、汎用セット・トップ・ボックスに信号を伝達し、前記第１のストリームを、前記汎用セット・トップ・ボックスの電子記憶装置にプリロードさせる、方法。
【請求項６】
請求項４に記載のコンピュータによって実行される方法であって、
前記汎用セット・トップ・ボックスは、前記汎用セット・トップ・ボックスがアイドル状態である間に、前記第１のストリームをロードする、方法。
【請求項７】
請求項１に記載のコンピュータによって実行される方法であって、
前記第１のサブセットは、番組の開始に必要な最小量の複数のデータブロックを含み、
前記最小量は、利用可能な帯域幅に依存する、方法。
【請求項８】
請求項１に記載のコンピュータによって実行される方法であって、
前記第１のサブセットおよび前記第２のサブセットに割り当てられる前記送信シーケンスの比は、利用可能な送信帯域幅の量に基づいて最適に設定される、方法。
【請求項９】
請求項１に記載のコンピュータによって実行される方法であって、
前記データ・オン・デマンドデータファイルの送信に必要な送信帯域幅の量は、前記クライアントの数に非依存である、方法。
【請求項１０】
請求項９に記載のコンピュータによって実行される方法であって、
前記配信行列を生成する工程は、
第１のデータファイルの送信に適した第１のスケジューリング行列を準備する工程を備え、
前記第１のデータファイルは、第１の複数のデータブロックによって表され、
前記第１のスケジューリング行列は、前記第１のスケジューリング行列に従った前記第１のデータファイルの送信を受信する任意のクライアントが、１タイムスロット以内で前記第１のデータファイルへアクセスを開始できるように、前記第１の複数のデータブロックを複数のタイムスロット内で順次送信するための第１のシーケンスを提供する、方法。
【請求項１１】
請求項１０に記載のコンピュータによって実行される方法であって、
前記第１のスケジューリング行列は、一定帯域幅のスケジューリング行列である、方法。
【請求項１２】
請求項１０に記載のコンピュータによって実行される方法であって、
前記第１のスケジューリング行列は、可変帯域幅のスケジューリング行列である、方法。
【請求項１３】
請求項１１に記載のコンピュータによって実行される方法であって、
前記第１の複数のデータブロックからの一定量のデータは、割り当てられた帯域幅の中での送信のためにスケジューリングされる、方法。
【請求項１４】
請求項１３に記載のコンピュータによって実行される方法であって、
割り当てられた帯域幅の中での送信の制御は、下位のハードウェアデバイスによって実行される、方法。
【請求項１５】
請求項１に記載のコンピュータによって実行される方法であって、
前記第１のストリームは、プリフェッチストリームであり、
前記プリフェッチストリームは、１セットの複数のプリフェッチ受信シナリオ中に汎用セット・トップ・ボックスによってアクセスされる、方法。
【請求項１６】
請求項１５に記載のコンピュータによって実行される方法であって、
前記１セットの複数のプリフェッチ受信シナリオは、ユーザによる前記セット・トップ・ボックスへのプリロードコマンドの実行を含む、方法。
【請求項１７】
請求項１５に記載のコンピュータによって実行される方法であって、
前記１セットの複数のプリフェッチ受信シナリオは、ユーザによって予約された番組を含む、方法。
【請求項１８】
クライアントに非特異なフォーマットでのオン・デマンドデータの配信に適した一定帯域幅アイドルタイム減少スケジューリング行列を生成するためのコンピュータによって実行される方法であって、
第１のデータファイルの送信に適したスケジューリング行列を生成する工程であって、前記第１のデータファイルは、第１の複数のデータブロックによって表され、前記第１のスケジューリング行列は、前記第１のスケジューリング行列に従った前記第１のデータファイルの送信を受信する任意のクライアントが、１タイムスロット以内で前記第１のデータファイルへアクセスを開始できるように、前記第１の複数のデータブロックを複数のタイムスロット内で順次送信するための第１のシーケンスを提供する、前記工程と、
所望の一定の送信帯域幅を決定する工程であって、前記一定の帯域幅は、前記第１のスケジューリング行列の順序に従って、前記複数のデータブロックを順次流すために用いられる、前記工程と、
前記一定の帯域幅に基づいて、複数のストリーミングデータブロックを別個の複数のストリームに分割するための正確な割り当てを決定する工程と、
セット・トップ・ボックスが表示装置に送信を行っていない場合に、前記別個の複数のストリームのうちの少なくとも１つをセット・トップ・ボックスにロードする工程と、
を備える、方法。
【請求項１９】
汎用セット・トップ・ボックスであって、
ａ．アイドルモードに切り換える機能と、
ｂ．前記アイドルモードの間に、ある時点でプリロード送信ストリームにアクセスする機能と、
ｃ．前記プリロード送信ストリーム内の１セットの複数のデータブロックをコンピュータ読み取り可能な媒体に格納する機能と、
ｄ．前記アイドルモードからアクティブモードに切り換える際に、前記複数のデータブロックの一部をリトリーブし、ユーザによって指示されると、前記格納されたプリロード送信ストリームから第１の番組の第１の部分を表示する機能と、
ｅ．自動的に正確なデータストリームにチューニングすることによって、前記番組の前記第１の部分と前記第１の番組の残り部分との間の放送で中断を生じさせない機能と、
を実行し、
前記リトリーブ工程は、放送データにさらなるアクセスをせずに、前記ユーザに直ちに番組にアクセスすることを可能にする、汎用セット・トップ・ボックス。
【請求項２０】
請求項１９に記載のセット・トップ・ボックスであって、
前記アイドルモードの間に、前記プリフェッチストリームを定期的に更新する追加の機能を実行可能である、セット・トップ・ボックス。
【請求項２１】
請求項２０に記載のセット・トップ・ボックスであって、
前記定期的な更新工程は、ユーザの命令に依存する、セット・トップ・ボックス。
【請求項２２】
請求項２０に記載のセット・トップ・ボックスであって、
前記定期的な更新工程は、ビデオ・オン・デマンド選好に基づく、セット・トップ・ボックス。
【請求項２３】
請求項２０に記載のセット・トップ・ボックスであって、
前記定期的な更新工程は、ユーザの履歴に基づく、セット・トップ・ボックス。
【請求項２４】
請求項１９に記載のセット・トップ・ボックスであって、
前記アイドルモードへの切換工程は、１セットの複数のアイドルモードシナリオの下で実行される、セット・トップ・ボックス。
【請求項２５】
請求項２４に記載のセット・トップ・ボックスであって、
前記アイドルモードシナリオは、ユーザに活動させないことを含む、セット・トップ・ボックス。
【請求項２６】
セット・トップ・ボックスに放送データをプリロードするためのコンピュータによって実行される方法であって、
前記ＳＴＢをアイドルモードに切り換える工程と、
前記ＳＴＢを予めプログラムするためのデータを選択するために、自動的に前記ＳＴＢを前記第１のチャネルにチューニングする工程であって、前記第１のチャネルはプリフェッチデータストリームを含む、前記工程と、
前記ユーザが前記ＳＴＢをアクティブモードに切り換えた際に、前記第１の複数のデータブロックを受信しながら処理する工程であって、
前記受信した複数のデータブロックをデコードする工程と、
前記受信した複数のデータブロックを解凍する工程と、
前記受信した複数のデータブロックを必要に応じて再アセンブルする工程と、
前記受信した複数のデータブロックを前記ＳＴＢ内に存在するローカルメモリに格納する工程と、のうちの少なくとも１つを備える、前記処理工程と、
前記第１のデータファイルを前記汎用ＳＴＢの前記ユーザによって選択される出力装置に提供する工程と、
を備える、方法。
【請求項２７】
請求項２６に記載のコンピュータによって実行される方法であって、
前記出力装置は、テレビである、方法。
【請求項２８】
請求項２６に記載のコンピュータによって実行される方法であって、
前記出力装置は、ディスプレイモニタである、方法。
【請求項２９】
請求項２６に記載のコンピュータによって実行される方法であって、
前記出力装置は、ビデオカセットレコーダ（ＶＣＲ）である、方法。
【請求項３０】
請求項２６に記載のコンピュータによって実行される方法であって、
前記出力装置は、コンピュータシステムである、方法。
【請求項３１】
請求項１８に記載のコンピュータによって実行される方法であって、
前記正確な割り当ては、利用可能な帯域幅に基づく、方法。
【請求項３２】
データ配信行列であって、
複数のデータブロックに分割されたデータファイルを備え、
前記複数のデータブロックが配列される順序は、
ａ）前記データファイルを前記複数のデータブロックに分割する工程と、
ｂ）第１の変数をゼロに設定する工程と、
ｃ）参照配列をクリアする工程と、
ｄ）前記第１の変数を前記複数のデータブロックの総数と比較する工程と、
ｅ）前記第１の変数が前記複数のデータブロックの総数未満である場合に、第２の変数をゼロに設定する工程と、
ｆ）前記第２の変数を前記複数のデータブロックの総数と比較する工程と、
ｇ）前記第２の変数が前記複数のデータブロックの総数未満である場合に、スケジューリング行列の列に格納された１以上の格納済みデータブロックを前記参照配列に書き込む工程であって、前記列は、ｉが前記第２の変数であり、ｊが前記第１の変数であり、ｘが前記複数のデータブロックである場合に、［（ｉ＋ｊ）ｍｏｄ（ｘ）］によって決定される、前記工程と、
ｈ）前記参照配列が少なくとも１つの前記格納済みデータブロックを既に有する場合には、第２のコピーを書き込まない工程と、
ｉ）前記参照配列が前記第２の変数に対応するブロックを含むか否かを調べる工程と、
ｊ）前記参照配列が前記第２の変数に対応する前記データブロックを含まない場合に、前記データブロックを、前記参照配列と、前記スケジューリング行列の［（ｉ＋ｊ）ｍｏｄ（ｘ），ｊ］に等しい前記行列内の位置と、に追加し、前記第２の変数を１だけ増大させる工程と、
ｋ）前記参照配列が前記第２の変数に対応する前記データブロックを含む場合に、前記第２の変数を１だけ増大させる工程と、
ｌ）前記第２の変数が前記データブロックの総数に等しくなるまで、工程ｇ）から工程ｋ）を繰り返す工程と、
ｍ）前記第１の変数を１だけ増大させる工程と、
ｎ）前記第１の変数が前記データブロックの総数に等しくなるまで、工程ｃ）から工程ｍ）を繰り返す工程と、
ｏ）前記スケジューリング行列を複数のストリームに再構成する工程と、
によって決定され、
前記順序は、前記データファイルに割り当てられた帯域幅を有する媒体を介して反復信号で送信され、前記帯域幅は、前記反復信号によってすべて利用される、データ配信行列。
【請求項３３】
請求項３２に記載のデータ配信行列であって、
前記スケジューリング行列を複数のストリームに再構成する前記工程は、
前記データファイルに割り当てられる前記帯域幅のサイズを決定する工程と、
第１の配信ストリームの最適なサイズを決定する工程と、
を備え、
前記第１の配信ストリームは、前記データファイルの最初のシーケンスを含む、データ配信行列。
【請求項３４】
請求項３３に記載のデータ配信行列であって、
前記ファイルに割り当てられる前記帯域幅のサイズを決定する工程は、前記帯域幅を最小限にする、データ配信行列。
【請求項３５】
請求項３３に記載のデータ配信行列であって、
前記ファイルに割り当てられる前記帯域幅のサイズを決定する工程は、前記帯域幅を最大限にする、データ配信行列。
【請求項３６】
請求項３２に記載のデータ配信行列であって、
データ配信行列から得られた前記複数のデータ配信ストリームは、複数の異なるデータファイルを含む、データ配信行列。
【請求項３７】
コンピュータによって実行される汎用データ放送方法であって、
汎用データ放送システムにおいて、
クライアントに非特異な方式で複数のクライアントにオン・デマンドデータを放送するのに適したデータ送信シーケンスを規定する配信行列を準備する工程であって、前記オン・デマンドデータの送信は、前記データ送信シーケンスの第１のサブセットを含む第１のストリームと、前記データ送信シーケンスの第２のサブセットを含む第２のストリームと、を含み、前記第１のストリームはプリロード送信データである、前記工程と、
第１のチャネルを介しての前記プリロード送信データの送信に適した第１のチャネルサーバを準備する工程と、
データ放送に先行して、電子番組ガイドを送信するための第２のチャネルサーバを準備する工程であって、前記電子番組ガイド（ＥＰＧ）は、少なくとも前記第２のストリームを含む第３のチャネルに関する情報を含む、前記工程と、
前記第１のチャネルおよび前記第２のチャネルからのデータを送信する工程と、
を実行する工程と、
汎用ＳＴＢにおいて、
前記汎用ＳＴＢがパッシブモードである間に、前記第１のチャネルで前記第１のストリームのデジタルデータを受信する工程と、
前記汎用ＳＴＢが前記パッシブモードである間に、前記第１のストリームの前記デジタルデータをコンピュータ読み取り可能な媒体に格納する工程と、
前記ＥＰＧのデジタルデータを受信する工程と、
前記汎用ＳＴＢのユーザに前記ＥＰＧデータを提供する工程と、
前記汎用ＳＴＢの前記ユーザからデータ処理命令を受信する工程と、
前記汎用ＳＴＢの前記ユーザからの前記命令を実行する工程と、
を実行する工程と、
を備える、方法。
【請求項３８】
請求項３７に記載のコンピュータによって実行される方法であって、
前記配信行列を生成する工程は、
第１のデータファイルの送信に適した第１のスケジューリング行列を準備する工程であって、前記第１のデータファイルは、第１の複数のデータブロックによって表され、前記第１のスケジューリング行列は、前記第１のスケジューリング行列に従った前記第１のデータファイルの送信を受信する任意のクライアントが、設定された数のタイムスロット以内で前記第１のデータファイルへアクセスを開始できるように、前記第１の複数のデータブロックを複数のタイムスロット内で順次送信するための第１のシーケンスを提供する、前記工程を備え、
前記設定された数は、前記プリロードストリーム内のブロックの数に基づいており、
前記第１のデータファイルは、前記プリロードストリームに含まれるデータブロックと共通のデータブロックを含まない、方法。
【請求項３９】
請求項３８に記載の方法であって、さらに、
データ放送に先行して、データ・オン・デマンド情報を送信するための第３のチャネルサーバを準備する工程であって、前記配信行列を前記第３のチャネルサーバのメモリにリトリーブする工程と、前記配信行列によって配信のためにスケジューリングされた前記第２のストリーム内に含まれるデータブロックを前記第３のチャネルサーバの前記メモリにリトリーブする工程と、を含む、前記工程と、
前記第３のチャネルからのデータを送信する工程と、
を備える、方法。
【請求項４０】
請求項３９に記載のコンピュータによって実行される方法であって、
前記第１のスケジューリング行列は、一定帯域幅のスケジューリング行列である、方法。
【請求項４１】
請求項４０に記載のコンピュータによって実行される方法であって、
一定数の前記第１の複数のデータブロックは、各タイムスロット内での送信のためにスケジューリングされる、方法。
【請求項４２】
請求項４０に記載のコンピュータによって実行される方法であって、
前記第１のスケジューリング行列は、可変帯域幅のスケジューリング行列である、方法。
【請求項４３】
伝送媒体を介して、クライアントに非特異な方式で複数のクライアントに放送するのに適したＤＯＤサービスを提供するためのデータ・オン・デマンド（ＤＯＤ）放送サーバの方法であって、
複数の第１のデータブロックおよび複数のさらなるデータブロックを含む第１のデータストリームを準備する工程であって、前記第１のデータブロックおよび前記さらなるデータブロックは選択されたＤＯＤサービスを含む、前記工程と、
前記複数の第１のデータブロックを前記第１のデータストリームから除去する工程と、
前記複数の第１のデータブロックの少なくとも１つを第２のデータストリームに配置する工程と、
前記第２のデータストリームを前記伝送媒体を介して送信する工程と、
前記第１および第２のデータストリームを受信するユーザが、前記選択されたＤＯＤサービスにアクセスするために、前記第１および第２のデータストリームの少なくとも一部を結合できるように、前記第１のデータストリームを前記伝送媒体を介して送信する工程と、
を備える、方法。
【請求項４４】
請求項４３に記載のデータ・オン・デマンド（ＤＯＤ）放送サーバの方法であって、
前記第１および第２のデータストリームは、セット・トップ・ボックスによって受信されるよう構成されている、方法。
【請求項４５】
請求項４３に記載のデータ・オン・デマンド（ＤＯＤ）放送サーバの方法であって、
前記複数のさらなるデータブロックは、複数の第２のデータブロックと複数の第３のデータブロックとを含む、方法。
【請求項４６】
請求項４５に記載のＤＯＤ放送サーバの方法であって、さらに、
前記複数の第２のデータブロックを前記第１のデータストリームから除去する工程と、
前記複数の第２のデータブロックの少なくとも１つを前記第２のデータストリームに配置する工程と、
を備え、
前記第１および第２のデータストリームを受信するユーザは、前記選択されたＤＯＤサービスにアクセスするために、前記第１，第２，第３のデータブロックの少なくとも一部を結合可能である、方法。
【請求項４７】
請求項４５に記載のＤＯＤ放送サーバの方法であって、
前記選択されたＤＯＤサービスにアクセスする工程は、前記ＤＯＤサービスの少なくとも一部の映像を表示させる工程を含む、方法。
【請求項４８】
ＤＯＤレシーバを介して、クライアントに非特異なＤＯＤ放送サーバから送信されるＤＯＤサービスにアクセスするためのデータ・オン・デマンド（ＤＯＤ）放送の受信方法であって、
伝送媒体を介して、選択されたＤＯＤサービスの一部を含む第１のデータストリームを受信する工程と、
前記伝送媒体を介して、前記選択されたＤＯＤサービスの一部を含む第２のデータストリームを受信する工程と、
前記選択されたＤＯＤサービスにアクセスするために、前記第１および第２のデータストリームを結合する工程と、
を備える、方法。
【請求項４９】
請求項４８に記載のＤＯＤ放送の受信方法であって、さらに、
前記第２のデータストリームの少なくとも一部を記憶域にプリロードする工程と、
前記ＤＯＤサービスの少なくとも一部を再生するために、前記プリロードされたデータストリームの少なくとも一部と、前記第１のデータストリームの少なくとも一部と、を結合する工程と、
を備える、方法。
【請求項５０】
請求項４８に記載のＤＯＤ放送の受信方法であって、さらに、
電子番組ガイド（ＥＰＧ）を受信する工程を備え、
前記ＥＰＧは、前記ＤＯＤレシーバがアクセスすべきＤＯＤサービスを選択することを可能にする、方法。
【請求項５１】
伝送媒体を介して、クライアントに非特異な方式で複数のクライアントに放送するのに適したＤＯＤサービスを提供するためのデータ・オン・デマンド（ＤＯＤ）放送サーバの方法であって、
選択されたＤＯＤサービスを含んだデータを含む複数のデータブロックからなるアイドルタイム減少線形シーケンスを準備する工程と、
前記複数のデータブロックからなる前記アイドルタイム減少シーケンスから最も頻繁に出現するデータブロックを除去する工程と、
プリフェッチデータストリームが前記選択されたＤＯＤサービスに対応する複数のプリフェッチデータブロックを含むように、前記除去された最も頻繁に出現するデータブロックを前記プリフェッチデータストリームに配置する工程と、
前記伝送媒体を介して前記プリフェッチデータストリームを送信する工程と、
受信装置が、残りのアイドルタイム減少シーケンスの複数のデータブロックと、前記複数のプリフェッチデータブロックと、を結合して、前記選択されたＤＯＤサービスを生成できるように、前記伝送媒体を介して、前記複数のデータブロックからなる前記残りのアイドルタイム減少シーケンスを送信し、この結果、前記ＤＯＤサービスを送信するために必要な帯域幅が低減される工程と、
を備える、方法。
【請求項５２】
請求項５１に記載のＤＯＤ放送サーバの方法であって、
前記プリフェッチデータストリームは、電子番組ガイド（ＥＰＧ）を含み、
前記ＥＰＧは、前記ＤＯＤ放送サーバからどのようなサービスが利用可能であるかを示す情報を含む、方法。
【請求項５３】
請求項５２に記載のＤＯＤ放送サーバの方法であって、
前記ＥＰＧは、ユーザが前記選択されたＤＯＤサービスを観察のために選択することを可能にする、方法。
【請求項５４】
請求項５１に記載のＤＯＤ放送サーバの方法であって、さらに、
前記複数のデータブロックからなる前記アイドルタイム減少シーケンスから複数のさらなるデータブロックを除去する工程と、
前記プリフェッチデータストリームが前記選択されたＤＯＤサービスに対応する前記最も頻繁に出現するデータブロックと前記複数のさらなるデータブロックとを含むように、前記複数のさらなるデータブロックの少なくとも１つを前記プリフェッチデータストリームに配置する工程と、
受信装置が、前記残りのアイドルタイム減少シーケンスの複数のデータブロックと、前記複数のプリフェッチデータブロックと、を結合して、前記選択されたＤＯＤサービスを生成できるように、前記伝送媒体を介して、前記複数のデータブロックからなる前記残りのアイドルタイム減少シーケンスを送信し、この結果、前記ＤＯＤサービスを送信するために必要な帯域幅がさらに低減される工程と、
を備える、方法。
【請求項５５】
請求項５４に記載のＤＯＤ放送サーバの方法であって、
前記複数のさらなるデータブロックは、複数の２番目に頻繁に出現するデータブロックを含み、この結果、前記ＤＯＤサービスを送信するために必要な帯域幅がさらに低減される、方法。
【請求項５６】
請求項５５に記載のＤＯＤ放送サーバの方法であって、
前記複数のさらなるデータブロックは、複数の３番目に頻繁に出現するデータブロックを含み、この結果、前記ＤＯＤサービスを送信するために必要な帯域幅がさらに低減される、方法。
【請求項５７】
請求項５６に記載のＤＯＤ放送サーバの方法であって、
前記複数のさらなるデータブロックは、複数の４番目に頻繁に出現するデータブロックを含み、この結果、前記ＤＯＤサービスを送信するために必要な帯域幅がさらに低減される、方法。
【請求項５８】
請求項５７に記載のＤＯＤ放送サーバの方法であって、
前記複数のさらなるデータブロックは、複数の５番目に頻繁に出現するデータブロックを含み、この結果、前記ＤＯＤサービスを送信するために必要な帯域幅がさらに低減される、方法。
【請求項５９】
請求項５４に記載のＤＯＤ放送サーバの方法であって、さらに、
電子番組ガイド（ＥＰＧ）を送信する工程を備え、
前記ＥＰＧは、前記ＤＯＤ放送サーバよって送信され、ユーザによって選択可能な複数のＤＯＤサービスを示すデータを含む、方法。
【請求項６０】
ＤＯＤレシーバを介して、クライアントに非特異なＤＯＤ放送サーバシステムから送信されるＤＯＤサービスにアクセスするためのデータ・オン・デマンド（ＤＯＤ）放送の受信方法であって、
選択されたＤＯＤサービスに対応する複数のプリフェッチデータブロックを含むプリフェチデータストリームを受信する工程と、
前記複数のプリフェッチデータブロックを記憶域に格納する工程と、
前記選択されたＤＯＤサービスに対応する複数の主要データブロックを含む主要データストリームを受信する工程と、
ユーザが前記選択されたＤＯＤサービスにアクセスできるように、前記複数の主要データブロックと前記複数のプリフェッチデータブロックとを処理する工程と、
を備える、方法。
【請求項６１】
請求項６０に記載のデータ・オン・デマンド（ＤＯＤ）放送の受信方法であって、さらに、
利用可能な複数のＤＯＤサービスを示す情報を含む電子番組ガイド（ＥＰＧ）を受信する工程を備える、方法。
【請求項６２】
請求項６０に記載のデータ・オン・デマンド（ＤＯＤ）放送の受信方法であって、さらに、
前記選択されたＤＯＤサービスを示すユーザ入力を受信する工程と、
前記ユーザ入力に応じて、前記選択されたＤＯＤサービスに対応するチャネルに切り換える工程と、
前記選択されたＤＯＤサービスに対応する前記チャネルから前記主要データストリームを受信する工程と、
を備える、方法。
【請求項６３】
請求項６２に記載のデータ・オン・デマンド（ＤＯＤ）放送の受信方法であって、さらに
電子番組ガイド（ＥＰＧ）を受信する工程を備える、方法。
【請求項６４】
請求項６３に記載のデータ・オン・デマンド（ＤＯＤ）放送の受信方法であって、
前記電子ガイドは、前記ＤＯＤ放送サーバから利用可能な複数のＤＯＤサービスを示す情報をユーザに提供する、方法。
【請求項６５】
請求項６４に記載のデータ・オン・デマンド（ＤＯＤ）放送の受信方法であって、
前記ユーザは、選択されたＤＯＤサービスに対応する前記ＥＰＧから受信された情報を選択することによって、前記選択されたＤＯＤサービスを観察可能である、方法。
【請求項６６】
請求項６０に記載のデータ・オン・デマンド（ＤＯＤ）放送の受信方法であって、さらに、
ビデオ表示装置によって前記ＤＯＤサービスを表示する工程を備える、方法。
【請求項６７】
ＶＯＤおよびデジタル放送などの複数のデジタルサービスを受信して処理することが可能な汎用セット・トップ・ボックス（ＳＴＢ）であって、前記複数のデジタルサービスの少なくとも１つは、複数の独立したデータストリームとして送信される、前記汎用ＳＴＢは、
データバスと、
デジタル放送の通信媒体に結合するのに適し、主要データストリームとプリフェッチデータストリームとを含むデジタルデータを受信するように動作可能である第１の通信装置と、
前記データバスに双方向的に結合されたメモリと、
前記データバスに双方向的に結合されたデジタルデータデコーダと、
前記データバスに双方向的に結合された中央処理装置（ＣＰＵ）と、
を備え、
前記ＣＰＵは、前記メモリと前記デジタルデコーダと前記デモジュレータとを制御するＳＴＢ制御プロセスを実行し、
前記ＳＴＢ制御プロセスは、前記第１の通信装置で受信されたデジタルデータを処理可能であり、
前記ＣＰＵは、さらに、前記主要データストリームと前記プリフェッチデータストリームとを処理可能である、汎用ＳＴＢ。
【請求項６８】
請求項６７に記載の汎用ＳＴＢであって、
前記プリフェッチデータストリームは、前記メモリに格納される、汎用ＳＴＢ。
【請求項６９】
請求項６７に記載の汎用ＳＴＢであって、
前記データバスは、前記第１の通信装置で受信された前記デジタルデータのリアルタイム処理を実行するよう要求される際に、リアルタイムでデータ通信を実行するのに適した高速データバスである、汎用ＳＴＢ。
【請求項７０】
請求項６７に記載の汎用ＳＴＢであって、
前記データバスは、ＵＳＢデータバスである、汎用ＳＴＢ。
【請求項７１】
請求項６７に記載の汎用ＳＴＢであって、
前記データバスは、ファイヤワイヤデータバスである、汎用ＳＴＢ。
【請求項７２】
請求項６７に記載の汎用ＳＴＢであって、
前記メモリは、大容量記憶装置である、汎用ＳＴＢ。
【請求項７３】
請求項７２に記載の汎用ＳＴＢであって、
前記大容量記憶装置は、ハードディスクである、汎用ＳＴＢ。
【請求項７４】
請求項６７に記載の汎用ＳＴＢであって、
前記メモリは、高速バッファメモリを含む、汎用ＳＴＢ。
【請求項７５】
請求項７４に記載の汎用ＳＴＢであって、
前記高速バッファメモリは、ランダムアクセスメモリ（ＲＡＭ）である、汎用ＳＴＢ。
【請求項７６】
請求項６７に記載の汎用ＳＴＢであって、
前記デジタルデータデコーダは、映像と音声とをデコード可能である、汎用ＳＴＢ。
【請求項７７】
請求項６７に記載の汎用ＳＴＢであって、
前記デジタルデータデコーダは、ＭＰＥＧデコーダである、汎用ＳＴＢ。
【請求項７８】
請求項６７に記載の汎用ＳＴＢであって、
前記デジタルデータデコーダは、再生、停止、一時停止、コマ送り、巻き戻し、早送りを含む種々のデジタルデータコマンドをサポートする、汎用ＳＴＢ。
【請求項７９】
請求項６７に記載の汎用ＳＴＢであって、前
記第１の通信装置は、デモジュレータを備える、汎用ＳＴＢ。
【請求項８０】
請求項６７に記載の汎用ＳＴＢであって、
前記デモジュレータは、ＱＡＭデモジュレータである、汎用ＳＴＢ。
【請求項８１】
請求項６７に記載の汎用ＳＴＢであって、
前記第１の通信装置は、ケーブルモデムである、汎用ＳＴＢ。
【請求項８２】
請求項６７に記載の汎用ＳＴＢであって、
前記ＣＰＵは、前記データバスに結合されたユーザインタフェースから受信されるコマンドを解釈するのに適したユーザインタフェースドライバを実装する、汎用ＳＴＢ。
【請求項８３】
請求項８２に記載の汎用ＳＴＢであって、
前記ユーザインタフェースは、リモートコントロール装置を含む、汎用ＳＴＢ。
【請求項８４】
請求項８２に記載の汎用ＳＴＢであって、
前記ユーザインタフェースは、キーボードを含む、汎用ＳＴＢ。
【請求項８５】
請求項８２に記載の汎用ＳＴＢであって、
前記ユーザインタフェースは、コンピュータシステムを含む、汎用ＳＴＢ。
【請求項８６】
請求項６７に記載の汎用ＳＴＢであって、
前記ＳＴＢ制御プロセスは、複数のチャネルで受信されるデータの特徴を、電子番組ガイドで提供される情報を通して決定可能である、汎用ＳＴＢ。
【請求項８７】
請求項８６に記載の汎用ＳＴＢであって、
前記ＳＴＢ制御プロセスは、前記複数のチャネルのうちの２以上のチャネルに同時にチューニング可能であると共に、前記複数のチャネルのうちの２以上のチャネルからのデータを同時に処理可能である、汎用ＳＴＢ。
【請求項８８】
請求項８７に記載の汎用ＳＴＢであって、
前記ＳＴＢ制御プロセスは、前記汎用ＳＴＢのユーザにＥＰＧデータを提供可能である、汎用ＳＴＢ。
【請求項８９】
請求項８８に記載の汎用ＳＴＢであって、
前記ＳＴＢ制御プロセスは、前記汎用ＳＴＢの前記ユーザから命令を受信して実行可能である、汎用ＳＴＢ。
【請求項９０】
請求項８９に記載の汎用ＳＴＢであって、
前記ＳＴＢ制御プロセスは、前記ＳＴＢを第１のチャネルにチューニングすることにより、前記ユーザによって要求されたデータを選択し、前記選択されたデータの特徴を決定し、前記選択されたデータをデコードし、前記選択されたデータを解凍し、前記デコードされたデータを再アセンブルし、前記選択されたデータを前記メモリに格納し、前記選択されたデータを適切に処理される方式で出力装置に提供するように、動作可能である、汎用ＳＴＢ。
【発明の詳細な説明】
【技術分野】
【０００１】
ビデオ・オン・デマンド（ＶＯＤ）システムは、データ・オン・デマンド（ＤＯＤ）システムの一種である。ＶＯＤシステムでは、ビデオデータファイルは、サーバまたは複数サーバのネットワークによって、１以上のクライアントにオン・デマンドで提供される。これらのシステムは、当業者にとって周知である。
【背景技術】
【０００２】
従来のＶＯＤアーキテクチャでは、サーバまたは複数サーバのネットワークは、標準的な階層クライアント・サーバモデルでクライアントと通信する。例えば、クライアントは、データファイル（例えば、ビデオデータファイル）の要求をサーバに送信する。クライアントの要求に応じて、サーバは、要求されたファイルをクライアントに送信する。標準的なクライアント・サーバモデルでは、クライアントからのデータファイル要求は、１または複数のサーバによって満たされることが可能である。クライアントは、受信されたデータファイルのすべてを、後の使用のために不揮発性メモリにローカル格納する機能を有してもよい。標準的なクライアント・サーバモデルは、双方向通信のインフラストラクチャを必要とする。既存のケーブルは単方向の通信しか提供できないため、現時点で双方向通信を行うには、新しいインフラストラクチャを構築する必要がある。双方向通信インフラストラクチャの例として、光ファイバ・同軸ハイブリットケーブル（ＨＦＣ）や、すべてのファイバインフラストラクチャが挙げられる。既存のケーブルを交換すると、非常にコストが掛かるため、その結果として提供されるサービスの価格は、大部分のユーザにとって手の届かないものになるだろう。
【０００３】
また、標準的なクライアント・サーバモデルは、サービスプロバイダ（例えば、ケーブル会社）が多数のクライアントにＶＯＤサービスを提供しようとする場合に、多くの制約を受ける。標準的なクライアント・サーバモデルの制約の１つは、サービスプロバイダが、ネットワーク内の各クライアントからの要求すべてを連続的に受け入れて実現するためのメカニズムを実装する必要があり、そのため、サービスを受けることのできるクライアントの数が、このようなメカニズムの能力に依存するという点である。あるメカニズムは、大型で高速なディスクアレイを有する超並列コンピュータをローカルサーバとして用いる。しかしながら、既存のローカルサーバのうちで最速のものでも、一度に約１，０００から２，０００のクライアントにビデオデータストリームを配信できるにすぎない。したがって、より多くのクライアントにサービスを提供するためには、ローカルサーバの数を増やさなければならない。ローカルサーバの数が増えると、ローカルサーバの制御を維持するために、より多くの上位サーバが必要となる。
【０００４】
従来のシステムにおける別の制約は、受信セット・トップ・ボックス（ＳＴＢ）が、サービスを再生するためには選択されたＶＯＤサービスの少なくとも一部をダウンロードしなければならない点である。選択されたＶＯＤの再生に十分なデータをダウンロードするのに必要な遅延は、ダウンロード速度が非常に大きかったとしても、相当の大きさになることがある。
【０００５】
標準的なクライアント・サーバモデルの別の制約は、各クライアントが専用の帯域幅を必要とする点である。したがって、必要となる全帯域幅は、加入クライアントの数に正比例する。帯域幅の制約に対処するために、これまでローカルサーバ内のキャッシュメモリが使用されてきたが、キャッシュメモリ自体にも限界があるため、キャッシュメモリを用いても問題は解決されない。
【０００６】
クライアントがより低価格でビデオ・オン・デマンドを利用できるようにするために、既存のサービスプロバイダは、ローカルサーバ当たりのクライアントの割合をローカルサーバの能力を超えて増大させている。通例は、１，０００のクライアントにサービスを提供できるローカルサーバが、実際には、１０，０００のクライアントに対するサービスを請け負っている。この技術は、加入クライアントの大部分が同時にビデオを注文しないのであれば、機能し得る。しかしながら、大部分のクライアントが同時に（すなわち、夜間や週末に）ビデオの視聴を所望することで、ローカルサーバがオーバロードされる可能性があるため、この技術の構成には欠陥がある。
【０００７】
したがって、既存のインフラストラクチャを置き換えることなく、実質的に任意の伝送媒体上で多数のクライアントに、著しい遅延なしにオン・デマンドサービスを提供することができるシステムを提供することが望まれている。
【発明の開示】
【課題を解決するための手段】
【０００８】
本発明は、既存のＤＯＤシステム上でアクセス時間を低減しつつデータ・オン・デマンド（ＤＯＤ）サービスを提供するためのシステムおよび方法を開示するものである。本発明は、さらに、減少した帯域幅を通じてＤＯＤサービスを提供するためのシステムおよび方法を開示する。
【０００９】
サーバ側における代表的な実施形態では、データ・オン・デマンドサービスを提供するためにクライアントにデータを送信する方法は、選択されたＤＯＤサービスを含んだデータを含むデータブロックのアイドルタイム減少線形シーケンスを準備する工程と、データブロックの前記アイドルタイム減少シーケンスから最も頻繁に出現するデータブロックを除去する工程と、プリフェッチデータストリームが前記選択されたＤＯＤサービスに対応するプリフェッチデータブロックを含むように、前記除去された最も頻繁に出現するデータブロックを前記プリフェッチデータストリームに配置する工程と、前記伝送媒体を介して前記プリフェッチデータストリームを送信する工程と、受信装置が、残りのアイドルタイム減少シーケンスのデータブロックと、前記プリフェッチデータブロックとを結合して、前記選択されたＤＯＤサービスを生成できるように、前記伝送媒体を介して、前記残りのデータブロックのアイドルタイム減少シーケンスを送信し、この結果、前記ＤＯＤサービスを送信するために必要な帯域幅が低減される工程と、を備える。ＤＯＤ放送サーバの方法は、さらに、データブロックの前記アイドルタイム減少シーケンスから複数のさらなるデータブロックを除去する工程と、前記プリフェッチデータストリームが前記選択されたＤＯＤサービスに対応する前記最も頻繁に出現するデータブロックと前記さらなるデータブロックとを含むように、前記複数のさらなるデータブロックの少なくとも１つを前記プリフェッチデータストリームに配置する工程と、受信装置が、残りのアイドルタイム減少シーケンスのデータブロックと、前記プリフェッチデータブロックと、を結合して、前記選択されたＤＯＤサービスを生成できるように、前記伝送媒体を介して、前記残りのデータブロックのアイドルタイム減少シーケンスを送信し、この結果、前記ＤＯＤサービスを送信するために必要な帯域幅がさらに低減される工程と、を備えてもよい。
【００１０】
クライアント側における代表的な実施形態では、データ・オン・デマンドサービスを提供するためにサーバから受信されたデータを処理する方法は、選択されたＤＯＤサービスに対応するプリフェッチデータブロックを含むプリフェチデータストリームを受信する工程と、前記プリフェッチデータブロックを記憶域に格納する工程と、前記選択されたＤＯＤサービスに対応する主要データブロックを含む主要データストリームを受信する工程と、ユーザが前記選択されたＤＯＤサービスにアクセスできるように、前記主要データブロックと前記プリフェッチデータブロックとを処理する工程と、を備える。この方法は、さらに、前記選択されたＤＯＤサービスを示すユーザ入力を受信する工程と、前記ユーザ入力に応じて、前記選択されたＤＯＤサービスに対応するチャネルに切り換える工程と、前記選択されたＤＯＤサービスに対応する前記チャネルから前記主要データストリームを受信する工程と、を備えてもよい。一実施形態では、サーバから受信したデータを処理するための方法は、クライアント側のセット・トップ・ボックスによって実行される。
【００１１】
データ・オン・デマンドシステムは、第１のセットのチャネルサーバと、第１のセットのチャネルサーバを制御するための中央制御サーバと、第１のセットのチャネルサーバに接続された第１のセットのアップコンバータと、第１のセットのアップコンバータに接続されたコンバイナ／アンプリファイアと、伝送媒体を介してデータを送信するよう適合されたコンバイナ／アンプリファイアと、を備える。代表的な実施形態において、データ・オン・デマンドシステムは、さらに、システムを監視するためのチャネル監視モジュールと、スイッチ行列と、第２のセットのチャネルサーバと、第２のセットのアップコンバータと、を備える。チャネル監視モジュールは、システム障害が起きた際に中央制御サーバに報告するよう構成されている。中央制御サーバは、チャネル監視モジュールからの報告に応答して、第１のセットのチャネルサーバの中で不具合を生じたチャネルサーバを第２のセットのチャネルサーバ内のチャネルサーバで置き換え、第１のセットのアップコンバータの中で不具合を生じたアップコンバータを第２のセットのアップコンバータで置き換えるよう、スイッチ行列に命令する。
【００１２】
本発明の別の実施形態は、ＶＯＤおよびデジタル放送などの複数のデジタルサービスを受信して扱うことができる汎用ＳＴＢを開示している。この実施形態は、受信データの高度な処理が可能である非常に柔軟なアーキテクチャを有する汎用ＳＴＢを開示している。このアーキテクチャは、データバスと、デジタル放送の通信媒体への接続に適した第１の通信装置と、一般に、データバスに双方向的に接続された永続および一時メモリを含むメモリと、データバスに双方向的に接続されたデジタルデータデコーダと、データバスに双方向的に接続された中央処理装置（ＣＰＵ）と、を備える。本発明のこの実施形態のＣＰＵは、メモリと、デジタルデコーダと、デモジュレータとを制御するためのＳＴＢ制御プロセスを実行する。ＳＴＢ制御プロセスは、第１の通信装置で受信されるデータのようなデジタルデータを処理するよう動作可能である。ＳＴＢ制御プロセスは、データブロックの並列ストリーミングだけでなく、アイドルタイム減少スケジューリング行列から引き出されるデータも受信可能であることが好ましい。
【００１３】
別の実施形態では、複合型のＳＴＢアーキテクチャにより、データブロックの最適化されたプリロードデータストリームを、アイドルＳＴＢに放送およびロードすることが可能となる。特定のデータブロックをＳＴＢにプリロードすることにより、肝心の時に帯域幅を節約することが可能となる。プリロードデータストリーム（すなわち、「プリフェッチ」）は、ＶＯＤ選好に基づいて一日の様々な時間に様々なデータシーケンスを先行配信するよう、プログラムされることが可能である。
【発明を実施するための最良の形態】
【００１４】
図１Ａは、本発明の一実施形態に従って、代表的なＤＯＤシステム１００を示している。この実施形態では、ＤＯＤシステム１００は、ビデオファイルなどのデータファイルをオン・デマンドで提供する。但し、ＤＯＤシステム１００は、ビデオファイルをオン・デマンドで提供することに限定されず、例えばゲームファイルなど、他のデータファイルをオン・デマンドで提供することもできる。ＤＯＤシステム１００は、中央制御サーバ１０２と、中央ストレージ１０３と、複数のチャネルサーバ１０４ａ〜１０４ｎと、複数のアップコンバータ１０６ａ〜１０６ｎと、コンバイナ／アンプリファイア１０８とを含む。中央制御サーバ１０２は、チャネルサーバ１０４を制御する。中央ストレージ１０３は、デジタルフォーマットでデータファイルを格納する。代表的な実施形態では、中央ストレージ１０３に格納されたデータファイルは、ネットワークに接続された中央制御サーバ１０２などの任意の許可コンピュータによって、標準的なネットワークインタフェース（例えば、イーサネット接続）を介してアクセス可能である。各チャネルサーバ１０４は、１つのチャネルに割り当てられ、１つのアップコンバータ１０６に接続されている。チャネルサーバ１０４は、中央制御サーバ１０２からの命令に従って、中央ストレージ１０３から読み出されたデータファイルを提供する。各チャネルサーバ１０４の出力は、対応するアップコンバータ１０６に適した周波数を有すると共に直交振幅変調（ＱＡＭ）によって変調された中間周波（ＩＦ）信号である。ＱＡＭ変調ＩＦ信号は、採用された規格によって決まる。米国で現在採用されている規格は、data-over-cable-systems-interface-specification（ＤＯＣＳＩＳ）規格であり、約４３．７５ＭＨｚのＩＦ周波数を必要とする。アップコンバータ１０６は、チャネルサーバ１０４から受信されたＩＦ信号を高周波信号（ＲＦ信号）に変換する。ＲＦ信号は、周波数および帯域幅を含んでおり、所望のチャネルおよび採用規格によって決まる。例えば、ケーブルテレビチャネル８０について、米国における現行の規格では、ＲＦ信号は、約５５９．２５ＭＨｚの周波数と約６ＭＨｚの帯域幅とを有する。アップコンバータ１０６の出力は、コンバイナ／アンプリファイア１０８に送られる。コンバイナ／アンプリファイア１０８は、受信されたＲＦ信号を増幅、調節、および結合し、次いで、伝送媒体１１０へと出力する。
【００１５】
代表的な実施形態では、中央制御サーバ１０２は、サービスプロバイダがドラッグ・アンド・ドロップ動作によってデータ配信をスケジューリングできるように、グラフィックユーザインタフェース（図示せず）を備える。さらに、中央制御サーバ１０２は、チャネルサーバ１０４を認証および制御して、配信行列に従って開始または停止させる。代表的な実施形態では、中央制御サーバ１０２は、チャネルを自動的に選択し、選択されたチャネルでデータファイルを送信するための配信行列を計算する。中央制御サーバ１０２は、データファイル情報（例えば、継続時間、カテゴリ、レーティング、および／または、簡単な説明）のオフラインでの追加、削除、および更新を提供する。さらに、中央制御サーバ１０２は、中央ストレージ１０３に格納されているデータファイルおよびデータベースを更新することによって中央ストレージ１０３を制御する。
【００１６】
代表的な実施形態では、既存のケーブルテレビシステム１２０は、クライアントに非ＤＯＤサービスを提供するために、コンバイナ／アンプリファイア１０８に信号を供給し続けてもよい。したがって、本発明に従ったＤＯＤシステム１００は、現在のケーブルテレビサービスを妨げることはない。
【００１７】
図１Ｂは、本発明に従って、ＤＯＤシステム１００の別の代表的な実施形態を示している。図１Ａに示した要素に加えて、ＤＯＤシステム１００は、スイッチ行列１１２と、チャネル監視モジュール１１４と、１セットのバックアップ・チャネルサーバ１１６ａ〜１１６ｂと、１セットのバックアップ・アップコンバータ１１８ａ〜１１８ｂとを含む。一実施形態では、スイッチ行列１１２は、アップコンバータ１０６とコンバイナ／アンプリファイア１０８との間に物理的に設けられる。スイッチ行列１１２は、中央制御サーバ１０２によって制御される。チャネル監視モジュール１１４は、ＤＯＤシステム１００の正常性を監視するために、潜在的なクライアントをシミュレートするよう構成された複数のセット・トップ・ボックスを備える。監視の結果は、チャネル監視モジュール１１４によって中央制御サーバ１０２に伝達される。チャネル障害（すなわち、チャネルサーバ障害、アップコンバータ障害、または通信回線障害）が生じた場合は、中央制御サーバ１０２は、スイッチ行列１１２を通して、機能不全の構成要素を外すと共に、正常なバックアップ構成要素１１６および／または１１８を用いて、サービスを再開する。
【００１８】
代表的な実施形態では、ＤＯＤシステム１００から放送されているデータファイルは、motion pictures expert group（ＭＰＥＧ）ファイル内に含まれている。各ＭＰＥＧファイルは、時間軸に沿ってデータファイルの特定部分に対してマップするデータブロックおよびサブブロックに動的に分割される。これらのデータブロックおよびサブブロックは、中央制御サーバ１０２によって提供される三次元の配信行列に従って、所定の期間中に送信される。フィードバックチャネルは、ＤＯＤシステム１００がＤＯＤサービスを提供する際には必要ない。しかしながら、フィードバックチャネルが利用可能であれば、フィードバックチャネルは、請求やインターネットサービスの提供など、他の目的のために用いることができる。
【００１９】
図２は、本発明の一実施形態に従った典型的なチャネルサーバ１０４を示している。チャネルサーバ１０４は、サーバコントローラ２０２と、ＣＰＵ２０４と、ＱＡＭモジュレータ２０６と、ローカルメモリ２０８と、ネットワークインタフェース２１０とを備える。サーバコントローラ２０２は、ＣＰＵ２０４に命令することによってチャネルサーバ１０４の動作全体を制御し、ＣＰＵ２０４は、データファイルをブロックに（さらに、サブブロックおよびデータパケットに）分割し、中央制御サーバ１０２によって提供された配信行列に従って送信するためにデータブロックを選択し、選択されたデータをエンコードし、エンコードされたデータを圧縮し、次いで、圧縮されたデータをＱＡＭモジュレータ２０６に送る。ＱＡＭモジュレータ２０６は、バス（すなわち、ＰＣＩまたはＣＰＵローカルバス）またはイーサネット接続を介して送信されるデータを受信する。代表的な実施形態では、ＱＡＭモジュレータ２０６は、下流側ＱＡＭモジュレータ、前進型誤り訂正デコーダを備える上流側直交振幅変調／直交位相変位変調方式（ＱＡＭ／ＱＰＳＫ）バーストデモジュレータ、および／または、上流側チューナを備えてもよい。ＱＡＭモジュレータ２０６の出力は、アップコンバータ１０６に直接適用できるＩＦ信号である。
【００２０】
ネットワークインタフェース２１０は、中央制御サーバ１０２からのスケジューリングおよび制御の命令と、中央制御サーバ１０２へのステータスの報告と、中央ストレージ１０３からのデータファイルの受信と、を実行するために、チャネルサーバ１０４を他のチャネルサーバ１０４および中央制御サーバ１０２に接続する。中央ストレージ１０３から読み出された任意のデータファイルは、サーバコントローラ２０２からの命令に従って処理される前に、チャネルサーバ１０４のローカルメモリ２０８に格納することができる。代表的な実施形態では、チャネルサーバ１０４は、ケーブルチャネルの帯域幅（例えば６、６．５、または８ＭＨｚ）と、ＱＡＭ変調（例えばＱＡＭ６４またはＱＡＭ２５６）と、ＤＯＤデータストリームの圧縮規格／ビットレート（すなわち、ＭＰＥＧ−１またはＭＰＥＧ−２）とに応じて、１以上のＤＯＤデータストリームを送信してよい。
【００２１】
図３は、本発明の一実施形態に従って、汎用セット・トップ・ボックス（ＳＴＢ）３００を示している。ＳＴＢ３００は、ＱＡＭデモジュレータ３０２と、ＣＰＵ３０４と、ローカルメモリ３０８と、バッファメモリ３１０と、ビデオおよびオーディオをデコードできるデコーダ３１２と、グラフィクスオーバレイモジュール３１４と、ユーザインタフェース３１８と、通信回線３２０と、図のようにこれらの装置を接続する高速データバス３２２と、を備える。ＣＰＵ３０２は、汎用ＳＴＢ３００の動作全体を制御して、クライアントの要求に応じてデータを選択し、選択されたデータをデコードし、デコードされたデータを解凍し、デコードされたデータを再アセンブルし、デコードされたデータをローカルメモリ３０８またはバッファメモリ３１０に格納し、格納されたデータをデコーダ３１２に送信する。代表的な実施形態では、ローカルメモリ３０８は不揮発性メモリ（例えば、ハードドライブ）を備え、バッファメモリ３１０は揮発性メモリを備える。
【００２２】
一実施形態では、ＱＡＭデモジュレータ３０２は、送信および受信モジュールと、以下に示す要素のうちの少なくとも１つとを備える：プライバシ暗号化／復号化モジュール、前進型誤り訂正デコーダ／エンコーダ、チューナ制御、下流側および上流側プロセッサ、ＣＰＵ、および、メモリインタフェース回路。ＱＡＭデモジュレータ３０２は、変調ＩＦ信号を受信し、信号をサンプリングおよび復調してデータを復元する。
【００２３】
代表的な実施形態では、アクセスが許可されると、デコーダ３１２は、少なくとも１つのデータブロックをデコードして、そのデータブロックを出力画面上で表示可能な画像に変換する。デコーダ３１２は、再生、停止、一時停止、コマ送り、巻き戻し、早送りなど、加入クライアントからの命令をサポートする。デコーダ３１２は、クライアントが利用できるように、デコードされたデータを出力装置３２４に提供する。出力装置３２４は、テレビ、コンピュータ、任意の適切なディスプレイモニタ、ＶＣＲなどの任意の適切な装置でよい。
【００２４】
グラフィクスオーバレイモジュール３１４は、例えば、アルファブレンディングまたはピクチャ・イン・ピクチャ機能によって、表示されたグラフィクスの質を向上させる。代表的な実施形態において、グラフィクスオーバレイモジュール３１４は、サービスプロバイダが、本発明に従ったシステムを用いてゲーム・オン・デマンドサービスを提供する際に、ゲームプレイングモード中にグラフィクスを加速させるために用いることもできる。
【００２５】
ユーザインタフェース３１８は、ユーザによるＳＴＢ３００の制御を実現するものであり、リモートコントロール装置、キーボード、スマートカードなど、任意の適切な装置であってよい。通信回線３２０は、さらなる通信接続を提供する。これは、別のコンピュータに接続されてもよいし、双方向通信を実施するために用いられてもよい。データバス３２２は、本発明に必要とされるリアルタイムでのデータ通信を実行するのに適した市販の「高速」データバスが好ましい。適切な例としては、ＵＳＢ、ファイヤワイヤなどが挙げられる。
【００２６】
代表的な実施形態では、データファイルは、すべてのケーブルテレビ加入者に対して放送されるが、データ・オン・デマンドサービスをデコードして利用することができるのは、互換性のあるＳＴＢ３００を持っているＤＯＤ加入者のみである。代表的な実施形態では、オン・デマンドでデータファイルを取得するための許可は、ユーザインタフェース３１８のスマートカードシステムを介して取得することができる。スマートカードは、サービスプロバイダが設置した各地の小売店や自動販売機において再支払い可能であってよい。別の代表的な実施形態では、加入者は、定額の料金体系で、利用可能なデータファイルすべてに対して無制限にアクセスできる。
【００２７】
好ましい実施形態では、データ・オン・デマンドの双方向の特徴により、クライアントは、利用可能なデータファイルをいつでも選択できる。クライアントが選択ボタンを押してから、選択されたデータファイルが再生を開始するまでの時間は、応答時間と呼ばれる。ＤＯＤサービスを提供するために割り当てられるリソース（例えば、帯域幅、サーバの能力）が大きいほど、応答時間は短くなる。代表的な実施形態では、応答時間は、リソースの割り当ておよび所望のサービス品質に対する評価に基づいて決定することができる。第１のデータブロックを並列ストリームに置く実施形態と組み合わせると、応答時間は、第１のデータブロックを受信および処理するために掛かる時間だけの要素となる。
【００２８】
一実施形態では、各データファイルのデータブロックの数（NUM_OF_BLKS）は、以下のように計算することができる：
【００２９】
【数１】
2004536491.tif 000003
【００３０】
式（１）〜（４）では、Estimated_BLK_Sizeは、推定ブロックサイズ（バイト）であり、DataFile_Sizeは、データファイルサイズ（バイト）であり、ＴＳは、１タイムスロットの継続時間（秒）であり、DataFile_Lengthは、データファイルの継続時間（秒）である。BLK SIZEは、データブロックごとに必要とされるクラスタの数であり、CLUSTER_SIZEは、各チャネルサーバ１０４のローカルメモリ２０８におけるクラスタのサイズである（例えば、６４キロバイト）。BLK_SIZE_BYTESは、ブロックのサイズ（バイト）である。この実施形態では、ブロックの数（NUM_OF_BLKS）は、データファイルのサイズ（バイト）に、データブロックのサイズ（バイト）を加え、そこから１バイトを引き、さらに、データブロックのサイズ（バイト）で割ったものに等しい。式（１）〜（４）は、１つの具体的な実施形態を示している。当業者にとって、データファイルのデータブロック数を計算するために、他の方法を用いてもよいことは明らかである。例えば、データファイルをいくつかのデータブロックに分割するステップは、主に、チャネルサーバ１０４のローカルメモリ２０８の推定ブロックサイズおよびクラスタサイズの関数である。したがって、本発明は、上述の具体的な実施形態に限定されない。
【００３１】
図４は、本発明の一実施形態に従って、データファイルを送信するためのスケジューリング行列を生成する代表的なプロセスを示している。代表的な実施形態では、本発明は、サーバ側においてデータ配信を圧縮およびスケジューリングするために、時分割多重化（ＴＤＭ）および周波数分割多重化（ＦＤＭ）技術を用いる。代表的な実施形態では、スケジューリング行列は、データファイルごとに生成される。一実施形態では、各データファイルがいくつかのデータブロックに分割され、スケジューリング行列がデータブロックの数に基づいて生成される。一般に、スケジューリング行列は、データファイルのデータブロックをサーバからクライアントへと送信するための送信順序を提供することで、任意の時間にデータファイルにアクセスしようとする任意のクライアントが、シーケンスの順序で複数のデータブロックにアクセスできるようにする。
【００３２】
ステップ４０２では、データファイルのデータブロックの数（ｘ）が受信される。第１の変数ｊが、０に設定される（ステップ４０４）。参照配列が、クリアされる（ステップ４０６）。参照配列は、内部管理のためにデータブロックのトラックを維持する。次に、ｊは、ｘと比較される（ステップ４０８）。ｊがｘ未満である場合には、第２の変数ｉが０に設定される（ステップ４１２）。次に、ｉは、ｘと比較される（ステップ４１４）。ｉがｘ未満である場合には、スケジューリング行列の列［（ｉ＋ｊ）  ｍｏｄｕｌｏ  （ｘ）］に格納されたデータブロックが、参照配列に書き込まれる（ステップ４１８）。参照配列がそのようなデータブロックをすでに有している場合には、重複して書き込まない。初めは、スケジューリング行列はまだ何のエントリも有していないので、このステップは省略することができる。次に、参照配列がデータブロックｉを含むか否かが調べられる（ステップ４２０）。初めは、参照配列内のエントリはすべてステップ４０６でクリアされているので、参照行列内には何も存在しない。参照配列がデータブロックｉを含まない場合には、スケジューリング行列の行列位置[（ｉ＋ｊ）  ｍｏｄｕｌｏ  （ｘ），ｊ]および参照配列に、データブロックｉが追加される（ステップ４２２）。データブロックｉがスケジューリング行列および参照配列に追加された後、ｉ＝ｉ＋１になるようにｉが１だけ増分され（ステップ４２４）、プロセスは、ｉ＝ｘになるまでステップ４１４を繰り返す。参照配列がデータブロックｉを含む場合には、ｉ＝ｉ＋１になるようにｉが１だけ増分され（ステップ４２４）、プロセスは、ｉ＝ｘになるまでステップ４１４を繰り返す。ｉ＝ｘである場合には、ｊ＝ｊ＋１になるようにｊが１だけ増分され（ステップ４１６）、プロセスは、ｊ＝ｘになるまでステップ４０６を繰り返す。プロセス全体は、ｊ＝ｘになると終了する（ステップ４１０）。
【００３３】
代表的な実施形態において、データファイルが６つのデータブロック（ｂｌｋ）に分割される（ｘ＝６）場合には、スケジューリング行列および参照配列は、以下のようになる：
【００３４】
【表１】
2004536491.tif 000004
【００３５】
【表２】
2004536491.tif 000005
【００３６】
以下では、６つのデータブロックを有するデータファイル用のスケジューリング行列を生成するための図４に示した代表的なプロセスが段階的に説明されている。
【００３７】
開始
（ステップ４０２）データファイルのデータブロック数（ｘ）を受信する。ただし、データブロック数は６に等しい（ｘ＝６）と仮定する。
（ステップ４０４）ｊ＝０に設定する。
（ステップ４０６）参照配列（ＲＡ）をクリアする。
（ステップ４０８）ｊとｘを比較する。
（ステップ４１２）ｊはｘ未満である（０＜６）ため、ｉ＝０とする。
（ステップ４１４）ｉとｘを比較する。
（ステップ４１８）ｉはｘ未満である（０＜６）。ＳＭ内の列［０］の行列位置を読み出し、ＲＡに書き込む。初めは、ＳＭは空なので、ＲＡには何も書き込まれない。
（ステップ４２０）ＲＡは、データブロックｉすなわちｂｌｋ０を含むか？
（ステップ４２２）ＲＡは、空であるので何も含まない。ｂｌｋ０を、ＳＭ内の位置［０，０］およびＲＡに書き込む。
（ステップ４２４）ｉに１を追加し（ｉ＝１）、位置［１，０］の値を導く。ステップ４１４に戻る。
（ステップ４１４）ｉとｘを比較する。
（ステップ４１８）ｉはｘ未満である（１＜６）。ＳＭ内の列［１］の行列位置を読み出し、ＲＡに書き込む。初めは、ＳＭは空なので、ＲＡには何も書き込まれない。
（ステップ４２０）ＲＡは、データブロックｉすなわちｂｌｋ１を含むか？
（ステップ４２２）ＲＡは、ｂｌｋ１を含まない。ｂｌｋ１を、ＳＭ内の位置［１，０］およびＲＡに書き込む。
（ステップ４２４）ｉに１を追加し（ｉ＝２）、位置［２，０］の値を導く。ステップ４１４に戻る。
（ステップ４１４）ｉとｘを比較する。
（ステップ４１８）ｉはｘ未満である（２＜６）。ＳＭ内の列［２］の行列位置を読み出し、ＲＡに書き込む。初めは、ＳＭは空なので、ＲＡには何も書き込まれない。
（ステップ４２０）ＲＡは、データブロックｉすなわちｂｌｋ２を含むか？
（ステップ４２２）ＲＡは、ｂｌｋ２を含まない。ｂｌｋ２を、ＳＭ内の位置［２，０］およびＲＡに書き込む。
（ステップ４２４）ｉに１を追加し（ｉ＝３）、位置［３，０］の値を導く。ステップ４１４に戻る。
（ステップ４１４）ｉとｘを比較する。
（ステップ４１８）ｉはｘ未満である（３＜６）。ＳＭ内の列［３］の行列位置を読み出し、ＲＡに書き込む。初めは、ＳＭは空なので、ＲＡには何も書き込まれない。
（ステップ４２０）ＲＡは、データブロックｉすなわちｂｌｋ３を含むか？
（ステップ４２２）ＲＡは、ｂｌｋ３を含まない。ｂｌｋ３を、ＳＭ内の位置［３，０］およびＲＡに書き込む。
（ステップ４２４）ｉに１を追加し（ｉ＝４）、位置［４，０］の値を導く。ステップ４１４に戻る。
（ステップ４１４）ｉとｘを比較する。
（ステップ４１８）ｉはｘ未満である（４＜６）。ＳＭ内の列［４］の行列位置を読み出し、ＲＡに書き込む。初めは、ＳＭは空なので、ＲＡには何も書き込まれない。
（ステップ４２０）ＲＡは、データブロックｉすなわちｂｌｋ４を含むか？
（ステップ４２２）ＲＡは、ｂｌｋ４を含まない。ｂｌｋ４を、ＳＭ内の位置［４，０］およびＲＡに書き込む。
（ステップ４２４）ｉに１を追加し（ｉ＝５）、位置［５，０］の値を導く。ステップ４１４に戻る。
（ステップ４１４）ｉとｘを比較する。
（ステップ４１８）ｉはｘ未満である（５＜６）。ＳＭ内の列［５］の行列位置を読み出し、ＲＡに書き込む。初めは、ＳＭは空なので、ＲＡには何も書き込まれない。
（ステップ４２０）ＲＡは、データブロックｉすなわちｂｌｋ５を含むか？
（ステップ４２２）ＲＡは、ｂｌｋ５を含まない。ｂｌｋ５を、ＳＭ内の位置［５，０］およびＲＡに書き込む。
（ステップ４２４）ｉに１を加える（ｉ＝６）。ステップ４１４に戻る。
（ステップ４１４）ｉとｘを比較する。
（ステップ４１６）ｉはｘに等しい（６＝６）。ｊを１だけ増分させる（ｊ＝１）。ステップ４０６に戻る。
---------------------------------------------------
（ステップ４０６）参照配列（ＲＡ）をクリアする。
（ステップ４０８）ｊとｘを比較する。
（ステップ４１２）ｊはｘ未満である（０＜６）ため、ｉ＝０とする。
（ステップ４１４）ｉとｘを比較する。
（ステップ４１８）ｉはｘ未満である（０＜６）。ＳＭ内の列［１］の行列位置を読み出し、ＲＡに書き込む。位置［１，０］はｂｌｋ１を含むので、ＲＡにｂｌｋ１が書き込まれる。その他の位置は、すべて空である。
（ステップ４２０）ＲＡは、データブロックｉすなわちｂｌｋ０を含むか？
（ステップ４２２）ＲＡは、ｂｌｋ０を含まない。ｂｌｋ０を、ＳＭ内の位置［1，1］およびＲＡに書き込む。ＲＡは、現時点でｂｌｋ１およびｂｌｋ０を有する。
（ステップ４２４）ｉに１を追加し（ｉ＝１）、位置［２，１］の値を導く。ステップ４１４に戻る。
（ステップ４１４）ｉとｘを比較する。
（ステップ４１８）ｉはｘ未満である（１＜６）。ＳＭ内の列［４］の行列位置を読み出し、ＲＡに書き込む。位置［２，０］は、ｂｌｋ２を含む。その他の位置は、すべて空である。ＲＡは、現時点でｂｌｋ１、ｂｌｋ０、およびｂｌｋ２を有する。
（ステップ４２０）ＲＡは、データブロックｉすなわちｂｌｋ１を含むか？
（ステップ４２４）ＲＡは、ｂｌｋ１を含む。したがって、位置［２，１］には何も書き込まれない。ｉに１を追加し（ｉ＝２）、位置［３，１］の値を導く。ステップ４１４に戻る。
（ステップ４１４）ｉとｘを比較する。
（ステップ４１８）ｉはｘ未満である（２＜６）。ＳＭ内の列［３］の行列位置を読み出し、ＲＡに書き込む。位置［３，０］は、ｂｌｋ３を含む。その他の位置は、すべて空である。ＲＡは、現時点でｂｌｋ１、ｂｌｋ０、ｂｌｋ２、およびｂｌｋ３を有する。
（ステップ４２０）ＲＡは、データブロックｉすなわちｂｌｋ２を含むか？
（ステップ４２４）ＲＡは、ｂｌｋ２を含む。したがって、位置［３，1］には何も書き込まれない。ｉに１を追加し（ｉ＝３）、位置［４，１］の値を導く。ステップ４１４に戻る。
（ステップ４１４）ｉとｘを比較する。
（ステップ４１８）ｉはｘ未満である（３＜６）。ＳＭ内の列［４］の行列位置を読み出し、ＲＡに書き込む。位置［４，０］は、ｂｌｋ４を含む。その他の位置は、すべて空である。ＲＡは、現時点でｂｌｋ１、ｂｌｋ０、ｂｌｋ２、ｂｌｋ３、およびｂｌｋ４を有する。
（ステップ４２０）ＲＡは、データブロックｉすなわちｂｌｋ３を含むか？
（ステップ４２４）ＲＡは、ｂｌｋ３を含む。したがって、位置［４，１］には何も書き込まれない。ｉに１を追加し（ｉ＝４）、位置［５，１］の値を導く。ステップ４１４に戻る。
（ステップ４１４）ｉとｘを比較する。
（ステップ４１８）ｉはｘ未満である（４＜６）。ＳＭ内の列［５］の行列位置を読み出し、ＲＡに書き込む。位置［５，０］は、ｂｌｋ５を含む。その他の位置は、すべて空である。ＲＡは、現時点でｂｌｋ１、ｂｌｋ０、ｂｌｋ２、ｂｌｋ３、ｂｌｋ４、およびｂｌｋ５を有する。
（ステップ４２０）ＲＡは、データブロックｉすなわちｂｌｋ４を含むか？
（ステップ４２４）ＲＡは、ｂｌｋ４を含む。したがって、位置［５，１］には何も書き込まれない。ｉに１を追加し（ｉ＝５）、位置［０，１］の値を導く。ステップ４１４に戻る。
（ステップ４１４）ｉとｘを比較する。
（ステップ４１８）ｉはｘ未満である（５＜６）。ＳＭ内の列［０］の行列位置を読み出し、ＲＡに書き込む。位置［０，０］は、ｂｌｋ０を含む。その他の位置は、すべて空である。ＲＡは既にｂｌｋ０を含んでいるので、ｂｌｋ０は廃棄される。
（ステップ４２０）ＲＡは、データブロックｉすなわちｂｌｋ５を含むか？
（ステップ４２４）ＲＡは、ｂｌｋ５を含む。したがって、位置［０，１］には何も書き込まれない。ｉに１を加える（ｉ＝６）。ステップ４１４に戻る。
（ステップ４１４）ｉとｘを比較する。
（ステップ４１６）ｉはｘに等しい（６＝６）。ｊを１だけ増分させる（ｊ＝２）。ステップ４０６に戻る。
---------------------------------------------------
（ステップ４０６）参照配列（ＲＡ）をクリアする。
（ステップ４０８）ｊとｘを比較する。
（ステップ４１２）ｊはｘ未満である（２＜６）ため、ｉ＝０とする。
（ステップ４１４）ｉとｘを比較する。
（ステップ４１８）ｉはｘ未満である（０＜６）。ＳＭ内の列［２］の行列位置を読み出し、ＲＡに書き込む。位置［２，０］は、ｂｌｋ２を含む。その他の位置は、すべて空である。ＲＡは、この時点でｂｌｋ２を有する。
（ステップ４２０）ＲＡは、データブロックｉすなわちｂｌｋ０を含むか？
（ステップ４２２）ＲＡは、ｂｌｋ０を含まない。ｂｌｋ０を、ＳＭ内の位置［２，２］およびＲＡに書き込む。ＲＡは、現時点でｂｌｋ２およびｂｌｋ０を有する。
（ステップ４２４）ｉに１を追加し（ｉ＝１）、位置［３，２］の値を導く。ステップ４１４に戻る。
（ステップ４１４）ｉとｘを比較する。
（ステップ４１８）ｉはｘ未満である（１＜６）。ＳＭ内の列［３］の行列位置を読み出し、ＲＡに書き込む。位置［３，０］は、ｂｌｋ３を含む。その他の位置は、すべて空である。ＲＡは、現時点でｂｌｋ２、ｂｌｋ０、およびｂｌｋ３を有する。
（ステップ４２０）ＲＡは、データブロックｉすなわちｂｌｋ１を含むか？
（ステップ４２２）ＲＡは、ｂｌｋ１を含まない。ｂｌｋ１を、ＳＭ内の位置［３，２］およびＲＡに書き込む。ＲＡは、現時点でｂｌｋ２、ｂｌｋ０、ｂｌｋ３、およびｂｌｋ１を有する。
（ステップ４２４）ｉに１を追加し（ｉ＝２）、位置［４，２］の値を導く。ステップ４１４に戻る。
（ステップ４１４）ｉとｘを比較する。
（ステップ４１８）ｉはｘ未満である（２＜６）。ＳＭ内の列［４］の行列位置を読み出し、ＲＡに書き込む。位置［４，０］は、ｂｌｋ４を含む。その他の位置は、すべて空である。ＲＡは、現時点でｂｌｋ２、ｂｌｋ０、ｂｌｋ３、ｂｌｋ１、およびｂｌｋ４を有する。
（ステップ４２０）ＲＡは、データブロックｉすなわちｂｌｋ２を含むか？
（ステップ４２４）ＲＡは、ｂｌｋ２を含む。したがって、位置［４，２］には何も書き込まれない。ｉに１を追加し（ｉ＝３）、位置［５，２］の値を導く。ステップ４１４に戻る。
（ステップ４１４）ｉとｘを比較する。
（ステップ４１８）ｉはｘ未満である（３＜６）。ＳＭ内の列［５］の行列位置を読み出し、ＲＡに書き込む。位置［５，０］は、ｂｌｋ５を含む。その他の位置は、すべて空である。ＲＡは、現時点でｂｌｋ２、ｂｌｋ０、ｂｌｋ３、ｂｌｋ１、ｂｌｋ４、およびｂｌｋ５を有する。
（ステップ４２０）ＲＡは、データブロックｉすなわちｂｌｋ３を含むか？
（ステップ４２４）ＲＡは、ｂｌｋ３を含む。したがって、位置［５，２］には何も書き込まれない。ｉに１を追加し（ｉ＝４）、位置［０，２］の値を導く。ステップ４１４に戻る。
（ステップ４１４）ｉとｘを比較する。
（ステップ４１８）ｉはｘ未満である（４＜６）。ＳＭ内の列［０］の行列位置を読み出し、ＲＡに書き込む。位置［０，０］は、ｂｌｋ０を含む。その他の位置は、すべて空である。ＲＡは既にｂｌｋ０を含んでいるので、ｂｌｋ０は廃棄される。
（ステップ４２０）ＲＡは、データブロックｉすなわちｂｌｋ４を含むか？
（ステップ４２４）ＲＡは、ｂｌｋ４を含む。したがって、位置［０，２］には何も書き込まれない。ｉに１を追加し（ｉ＝５）、位置［１，２］の値を導く。ステップ４１４に戻る。
（ステップ４１４）ｉとｘを比較する。
（ステップ４１８）ｉはｘ未満である（５＜６）。ＳＭ内の列［１］の行列位置を読み出し、ＲＡに書き込む。位置［１，０］はｂｌｋ１を含み、位置［１，１］はｂｌｋ０を含む。ＲＡは、既にｂｌｋ１およびｂｌｋ０を含む。したがって、ｂｌｋ１とｂｌｋ０は廃棄される。その他の位置は、すべて空である。
（ステップ４２０）ＲＡは、データブロックｉすなわちｂｌｋ５を含むか？
（ステップ４２４）ＲＡは、ｂｌｋ５を含む。したがって、位置［１，２］には何も書き込まれない。ｉに１を加える（ｉ＝６）。ステップ４１４に戻る。
（ステップ４１４）ｉとｘを比較する。
（ステップ４１６）ｉはｘに等しい（６＝６）。ｊを１だけ増分させる（ｊ＝３）。ステップ４０６に戻る。
---------------------------------------------------
（ステップ４０６）参照配列（ＲＡ）をクリアする。
（ステップ４０８）ｊとｘを比較する。
（ステップ４１２）ｊはｘ未満である（３＜６）ため、ｉ＝０とする。
（ステップ４１４）ｉとｘを比較する。
（ステップ４１８）ｉはｘ未満である（０＜６）。ＳＭ内の列［３］の行列位置を読み出し、ＲＡに書き込む。位置［３，０］はｂｌｋ３を含み、位置［３，２］はｂｌｋ１を含む。ｂｌｋ３とｂｌｋ１がＲＡに書き込まれる。その他の位置は、すべて空である。
（ステップ４２０）ＲＡは、データブロックｉすなわちｂｌｋ０を含むか？
（ステップ４２２）ＲＡは、ｂｌｋ０を含まない。ｂｌｋ０を、ＳＭ内の位置［３，３］およびＲＡに書き込む。ＲＡは、現時点でｂｌｋ３、ｂｌｋ１、およびｂｌｋ０を有する。
（ステップ４２４）ｉに１を追加し（ｉ＝１）、位置［４，３］の値を導く。ステップ４１４に戻る。
（ステップ４１４）ｉとｘを比較する。
（ステップ４１８）ｉはｘ未満である（１＜６）。ＳＭ内の列［４］の行列位置を読み出し、ＲＡに書き込む。位置［４，０］は、ｂｌｋ４を含む。その他の位置は、すべて空である。ＲＡは、現時点でｂｌｋ３、ｂｌｋ１、ｂｌｋ０、およびｂｌｋ４を有する。
（ステップ４２０）ＲＡは、データブロックｉすなわちｂｌｋ１を含むか？
（ステップ４２４）ＲＡは、ｂｌｋ１を含む。したがって、位置［４，３］には何も書き込まれない。ｉに１を追加し（ｉ＝２）、位置［５，３］の値を導く。ステップ４１４に戻る。
（ステップ４１４）ｉとｘを比較する。
（ステップ４１８）ｉはｘ未満である（２＜６）。ＳＭ内の列［５］の行列位置を読み出し、ＲＡに書き込む。位置［５，０］は、ｂｌｋ５を含む。その他の位置は、すべて空である。ＲＡは、現時点でｂｌｋ３、ｂｌｋ１、ｂｌｋ０、ｂｌｋ４、およびｂｌｋ５を有する。
（ステップ４２０）ＲＡは、データブロックｉすなわちｂｌｋ２を含むか？
（ステップ４２２）ＲＡは、ｂｌｋ２を含まない。ｂｌｋ２を、ＳＭの位置［５，３］およびＲＡに書き込む。ＲＡは、現時点でｂｌｋ３、ｂｌｋ１、ｂｌｋ０、ｂｌｋ４、ｂｌｋ５、およびｂｌｋ２を有する。
（ステップ４２４）ｉに１を追加し（ｉ＝３）、位置［０，３］の値を導く。ステップ４１４に戻る。
（ステップ４１４）ｉとｘを比較する。
（ステップ４１８）ｉはｘ未満である（３＜６）。ＳＭ内の列［０］の行列位置を読み出し、ＲＡに書き込む。位置［０，０］は、ｂｌｋ０を含む。その他の位置は、すべて空である。ＲＡは既にｂｌｋ０を含んでいるので、ｂｌｋ０は廃棄される。
（ステップ４２０）ＲＡは、データブロックｉすなわちｂｌｋ３を含むか？
（ステップ４２４）ＲＡは、ｂｌｋ３を含む。したがって、位置［０，３］には何も書き込まれない。ｉに１を追加し（ｉ＝４）、位置［１，３］の値を導く。ステップ４１４に戻る。
（ステップ４１４）ｉとｘを比較する。
（ステップ４１８）ｉはｘ未満である（４＜６）。ＳＭ内の列［１］の行列位置を読み出し、ＲＡに書き込む。位置［１，０］はｂｌｋ１を含み、位置［１，１］はｂｌｋ０を含む。その他の位置は、すべて空である。ＲＡは、既にｂｌｋ１とｂｌｋ０を含むので、重複して書き込まない。
（ステップ４２０）ＲＡは、データブロックｉすなわちｂｌｋ４を含むか？
（ステップ４２４）ＲＡは、ｂｌｋ４を含む。したがって、位置［１，３］には何も書き込まれない。ｉに１を追加し（ｉ＝５）、位置［２，３］の値を導く。ステップ４１４に戻る。
（ステップ４１４）ｉとｘを比較する。
（ステップ４１８）ｉはｘ未満である（５＜６）。ＳＭ内の列［２］の行列位置を読み出し、ＲＡに書き込む。位置［２，０］はｂｌｋ２を含み、位置［２，２］はｂｌｋ０を含む。その他の位置は、すべて空である。ＲＡは、既にｂｌｋ２とｂｌｋ０を含むので、重複して書き込まない。
（ステップ４２０）ＲＡは、データブロックｉすなわちｂｌｋ５を含むか？
（ステップ４２４）ＲＡは、ｂｌｋ５を含む。したがって、位置［２，３］には何も書き込まれない。ｉに１を加える（ｉ＝６）。ステップ４１４に戻る。
（ステップ４１４）ｉとｘを比較する。
（ステップ４１６）ｉはｘに等しい（６＝６）。ｊを１だけ増分させる（ｊ＝４）。ステップ４０６に戻る。
---------------------------------------------------
（ステップ４０６）参照配列（ＲＡ）をクリアする。
（ステップ４０８）ｊとｘを比較する。
（ステップ４１２）ｊはｘ未満である（４＜６）ため、ｉ＝０とする。
（ステップ４１４）ｉとｘを比較する。
（ステップ４１８）ｉはｘ未満である（０＜６）。ＳＭ内の列［４］の行列位置を読み出し、ＲＡに書き込む。位置［４，０］は、ｂｌｋ４を含む。ｂｌｋ４が、ＲＡに書き込まれる。その他の位置は、すべて空である。
（ステップ４２０）ＲＡは、データブロックｉすなわちｂｌｋ０を含むか？
（ステップ４２２）ＲＡは、ｂｌｋ０を含まない。ｂｌｋ０を、ＳＭ内の位置［４，４］およびＲＡに書き込む。ＲＡは、現時点でｂｌｋ４およびｂｌｋ０を有する。
（ステップ４２４）ｉに１を追加し（ｉ＝１）、位置［５，４］の値を導く。ステップ４１４に戻る。
（ステップ４１４）ｉとｘを比較する。
（ステップ４１８）ｉはｘ未満である（１＜６）。ＳＭ内の列［５］の行列位置を読み出し、ＲＡに書き込む。位置［５，０］はｂｌｋ５を含み、位置［５，３］はｂｌｋ２を含む。その他の位置は、すべて空である。ＲＡは、現時点でｂｌｋ４、ｂｌｋ０、ｂｌｋ５、およびｂｌｋ２を有する。
（ステップ４２０）ＲＡは、データブロックｉすなわちｂｌｋ１を含むか？
（ステップ４２２）ＲＡは、ｂｌｋ１を含まない。ｂｌｋ１を、ＳＭの位置［５，４］およびＲＡに書き込む。ＲＡは、現時点でｂｌｋ４、ｂｌｋ０、ｂｌｋ５、ｂｌｋ２、およびｂｌｋ１を有する。
（ステップ４２４）ｉに１を追加し（ｉ＝２）、位置［０，４］の値を導く。ステップ４１４に戻る。
（ステップ４１４）ｉとｘを比較する。
（ステップ４１８）ｉはｘ未満である（２＜６）。ＳＭ内の列［０］の行列位置を読み出し、ＲＡに書き込む。位置［０，０］は、ｂｌｋ０を含む。その他の位置は、すべて空である。ＲＡは、既にｂｌｋ０を含むので、重複して書き込まない。
（ステップ４２０）ＲＡは、データブロックｉすなわちｂｌｋ２を含むか？
（ステップ４２４）ＲＡは、ｂｌｋ２を含む。ｉに１を追加し（ｉ＝３）、位置［１，４］の値を導く。ステップ４１４に戻る。
（ステップ４１４）ｉとｘを比較する。
（ステップ４１８）ｉはｘ未満である（３＜６）。ＳＭ内の列［１］の行列位置を読み出し、ＲＡに書き込む。位置［１，０］はｂｌｋ１を含み、位置［１，１］はｂｌｋ０を含む。その他の位置は、すべて空である。ＲＡは、既にｂｌｋ１とｂｌｋ０を含むので、重複して書き込まない。
（ステップ４２０）ＲＡは、データブロックｉすなわちｂｌｋ３を含むか？
（ステップ４２２）ＲＡは、ｂｌｋ３を含まない。ｂｌｋ３を、ＳＭの位置［１，４］およびＲＡに書き込む。ＲＡは、現時点でｂｌｋ４、ｂｌｋ０、ｂｌｋ５、ｂｌｋ２、ｂｌｋ１、およびｂｌｋ３を有する。
（ステップ４２４）ｉに１を追加し（ｉ＝４）、位置［２，４］の値を導く。ステップ４１４に戻る。
（ステップ４１４）ｉとｘを比較する。
（ステップ４１８）ｉはｘ未満である（４＜６）。ＳＭ内の列［２］の行列位置を読み出し、ＲＡに書き込む。位置［２，０］はｂｌｋ２を含み、位置［２，２］はｂｌｋ０を含む。その他の位置は、すべて空である。ＲＡは、既にｂｌｋ２とｂｌｋ０を含むので、重複して書き込まない。
（ステップ４２０）ＲＡは、データブロックｉすなわちｂｌｋ４を含むか？
（ステップ４２４）ＲＡは、ｂｌｋ４を含む。したがって、位置［２，４］には何も書き込まれない。ｉに１を追加し（ｉ＝５）、位置［３，４］の値を導く。ステップ４１４に戻る。
（ステップ４１４）ｉとｘを比較する。
（ステップ４１８）ｉはｘ未満である（５＜６）。ＳＭ内の列［３］の行列位置を読み出し、ＲＡに書き込む。位置［３，０］はｂｌｋ３を含み、位置［３，２］はｂｌｋ１を含み、位置［３，３］はｂｌｋ０を含む。その他の位置は、すべて空である。ＲＡは、既にｂｌｋ３、ｂｌｋ１、およびｂｌｋ０を含むので、重複して書き込まない。
（ステップ４２０）ＲＡは、データブロックｉすなわちｂｌｋ５を含むか？
（ステップ４２４）ＲＡは、ｂｌｋ５を含む。したがって、位置［３，４］には何も書き込まれない。ｉに１を加える（ｉ＝６）。ステップ４１４に戻る。
（ステップ４１４）ｉとｘを比較する。
（ステップ４１６）ｉはｘに等しい（６＝６）。ｊを１だけ増分させる（ｊ＝５）。ステップ４０６に戻る。
---------------------------------------------------
（ステップ４０６）参照配列（ＲＡ）をクリアする。
（ステップ４０８）ｊとｘを比較する。
（ステップ４１２）ｊはｘ未満である（５＜６）ため、ｉ＝０とする。
（ステップ４１４）ｉとｘを比較する。
（ステップ４１８）ｉはｘ未満である（０＜６）。ＳＭ内の列［５］の行列位置を読み出し、ＲＡに書き込む。位置［５，０］はｂｌｋ５を含み、位置［５，３］はｂｌｋ２を含み、位置［５，４］はｂｌｋ１を含む。ｂｌｋ５、ｂｌｋ２、およびｂｌｋ１がＲＡに書き込まれる。その他の位置は、すべて空である。
（ステップ４２０）ＲＡは、データブロックｉすなわちｂｌｋ０を含むか？
（ステップ４２２）ＲＡは、ｂｌｋ０を含まない。ｂｌｋ０を、ＳＭ内の位置［５，５］およびＲＡに書き込む。ＲＡは、現時点でｂｌｋ５、ｂｌｋ２、ｂｌｋ１、およびｂｌｋ０を有する。
（ステップ４２４）ｉに１を追加し（ｉ＝１）、位置［０，５］の値を導く。ステップ４１４に戻る。
（ステップ４１４）ｉとｘを比較する。
（ステップ４１８）ｉはｘ未満である（１＜６）。ＳＭ内の列［０］の行列位置を読み出し、ＲＡに書き込む。位置［０，０］はｂｌｋ０を含み、その他の位置はすべて空である。ＲＡは、現時点でｂｌｋ５、ｂｌｋ２、ｂｌｋ１、およびｂｌｋ０を有する。
（ステップ４２０）ＲＡは、データブロックｉすなわちｂｌｋ１を含むか？
（ステップ４２４）ＲＡは、ｂｌｋ１を含む。ｉに１を追加し（ｉ＝２）、位置［１，５］の値を導く。ステップ４１４に戻る。
（ステップ４１４）ｉとｘを比較する。
（ステップ４１８）ｉはｘ未満である（２＜６）。ＳＭ内の列［１］の行列位置を読み出し、ＲＡに書き込む。位置［１，０］はｂｌｋ１を含み、位置［１，１］はｂｌｋ０を含み、位置［１，４］はｂｌｋ３を含む。その他の位置は、すべて空である。ＲＡは、既にｂｌｋ０とｂｌｋ１を含むので、重複して書き込まない。ｂｌｋ３をＲＡに書き込む。ＲＡは、現時点でｂｌｋ５、ｂｌｋ２、ｂｌｋ１、ｂｌｋ０、およびｂｌｋ３を有する。
（ステップ４２０）ＲＡは、データブロックｉすなわちｂｌｋ２を含むか？
（ステップ４２４）ＲＡは、ｂｌｋ２を含む。ｉに１を追加し（ｉ＝３）、位置［２，５］の値を導く。ステップ４１４に戻る。
（ステップ４１４）ｉとｘを比較する。
（ステップ４１８）ｉはｘ未満である（３＜６）。ＳＭ内の列［２］の行列位置を読み出し、ＲＡに書き込む。位置［２，０］はｂｌｋ２を含み、位置［２，２］はｂｌｋ０を含む。その他の位置は、すべて空である。ＲＡは、既にｂｌｋ２とｂｌｋ０を含むので、重複して書き込まない。
（ステップ４２０）ＲＡは、データブロックｉすなわちｂｌｋ３を含むか？
（ステップ４２４）ＲＡは、ｂｌｋ３を含む。ｉに１を追加し（ｉ＝４）、位置［３，５］の値を導く。ステップ４１４に戻る。
（ステップ４１４）ｉとｘを比較する。
（ステップ４１８）ｉはｘ未満である（４＜６）。ＳＭ内の列［３］の行列位置を読み出し、ＲＡに書き込む。位置［３，０］はｂｌｋ３を含み、位置［３，２］はｂｌｋ１を含み、位置［３，３］はｂｌｋ０を含む。その他の位置は、すべて空である。ＲＡは、既にｂｌｋ３、ｂｌｋ１、およびｂｌｋ０を含むので、重複して書き込まない。
（ステップ４２０）ＲＡは、データブロックｉすなわちｂｌｋ４を含むか？
（ステップ４２２）ＲＡは、ｂｌｋ４を含まない。ｂｌｋ４を、ＳＭの位置［３，５］およびＲＡに書き込む。ＲＡは、現時点でｂｌｋ５、ｂｌｋ２、ｂｌｋ１、ｂｌｋ０、ｂｌｋ３、およびｂｌｋ４を有する。
（ステップ４２４）ｉに１を追加し（ｉ＝５）、位置［４，５］の値を導く。ステップ４１４に戻る。
（ステップ４１４）ｉとｘを比較する。
（ステップ４１８）ｉはｘ未満である（５＜６）。ＳＭ内の列［４］の行列位置を読み出し、ＲＡに書き込む。位置［４，０］はｂｌｋ４を含み、位置［４，４］はｂｌｋ０を含む。その他の位置は、すべて空である。ＲＡは、既にｂｌｋ４とｂｌｋ０を含むので、重複して書き込まない。
（ステップ４２０）ＲＡは、データブロックｉすなわちｂｌｋ５を含むか？
（ステップ４２４）ＲＡは、ｂｌｋ５を含む。したがって、位置［３，４］には何も書き込まれない。
（ステップ４２４）ｉに１を加える（ｉ＝６）。ステップ４１４に戻る。
（ステップ４１４）ｉとｘを比較する。
（ステップ４１６）ｉはｘに等しい（６＝６）。ｊを１だけ増分させる（ｊ＝５）。ステップ４０６に戻る。
---------------------------------------------------
（ステップ４０６）参照配列（ＲＡ）をクリアする。
（ステップ４０８）ｊとｘを比較する。
（ステップ４１０）ｊはｘに等しい（６＜６）。終了。
【００３８】
この代表的な実施形態では、上述のスケジューリング行列に基づいて、データファイルの６つのデータブロックが、以下の順番で送信される：
【００３９】
【数２】
2004536491.tif 000006
【００４０】
別の代表的な実施形態では、先読みスケジューリング行列を計算して、予測されるアクセス時間に先立ってデータファイルの所定数のデータブロックを送信するために、先読みプロセスを使用することができる。例えば、タイムスロットの番号が４以上の任意のタイムスロットに対して、所定の先読み時間が１タイムスロットの継続時間である場合には、データファイルのデータブロック４（ｂｌｋ４）は、加入クライアントのＳＴＢ３００によって、ＴＳ３またはそれよりも前に受信することが好ましいが、ｂｌｋ４は、ＴＳ４まで再生されない。先読みスケジューリング行列を生成するためのプロセスのステップは、この実施形態での先読みスケジューリング行列が、先読み時間に基づいて早めの送信シーケンスをスケジューリングするという点を除き、図４に関連して上述したプロセスのステップと実質的に同じである。データファイルが６つのデータブロックに分割されると仮定すると、先読みスケジューリング行列に基づいた代表的な送信シーケンスは、２タイムスロットの継続時間の先読み時間を有し、以下のように表すことができる：
【００４１】
【数３】
2004536491.tif 000007
【００４２】
１セットのデータファイルを送信するための三次元の配信行列は、その１セットのデータファイルの各データファイルに対するスケジューリング行列に基づいて生成される。三次元の配信行列では、１セットのデータファイル内の各データファイルのためのＩＤを含む第３の次元が生成される。三次元の配信行列は、各チャネルの利用可能な帯域幅を効率的に用いて、複数のデータストリームを送信するために算出される。代表的な実施形態では、三次元の配信行列を生成して、１セットのデータファイルの効率的な配信をスケジューリングするために、当該分野において周知である畳み込み法が用いられる。例えば、畳み込み法は、以下の方針を含んでよい：（１）任意のタイムスロット（ＴＳ）の継続時間中に送信されるデータブロックの総数は、可能な限り少数に保たれることが望ましい、（２）複数の部分的な解決法が方針（１）に対して利用可能である場合は、任意の参照タイムスロットの継続時間中に送信されるデータブロックと、（参照タイムスロットの）前のタイムスロットの継続時間中に送信されるデータブロックと、（参照タイムスロットの）次のタイムスロットの継続時間中に送信されるデータブロックと、を加算することによって得られるデータブロックの和が最小である解決法が好ましい。例えば、２つの短いデータファイルすなわちＭおよびＮを送信する代表的なシステムを想定すると、各データファイルが６つのデータブロックにそれぞれ分割される場合には、スケジューリング行列に基づいた送信シーケンスは、以下のようになる：
【００４３】
【数４】
2004536491.tif 000008
【００４４】
上述したような代表的な畳み込み法を適用すると、以下のような配信行列の組み合わせが可能である：
【００４５】
【表３】
2004536491.tif 000009
【００４６】
【表４】
2004536491.tif 000010
【００４７】
【表５】
2004536491.tif 000011
【００４８】
【表６】
2004536491.tif 000012
【００４９】
【表７】
2004536491.tif 000013
【００５０】
【表８】
2004536491.tif 000014
【００５１】
方針（１）を適用すると、オプション２、４、６は、任意のタイムスロット中に送信されるデータブロックの最大数が最も小さい（すなわち、６データブロック）。方針（２）を適用すると、この代表的な実施形態での最適な配信行列は、オプション４である。何故なら、オプション４では、任意の参照タイムスロットのデータブロックと、隣接するタイムスロットのデータブロックとの和が最小（すなわち、１６データブロック）であるからである。したがって、この実施形態では、データファイルＮの送信シーケンスは、３タイムスロットだけシフトされることが最も好ましい。代表的な実施形態では、三次元の配信行列は、チャネルサーバ１０４ごとに生成される。
【００５２】
各データファイルのデータブロックが配信行列に従って送信されると、多数の加入クライアントがいつでもデータファイルにアクセスすることができるので、各加入クライアントは、データファイルの適切なデータブロックを適時に利用することが可能である。上述した実施例において、１タイムスロットの継続時間が５秒間に等しいと仮定すると、ＤＯＤシステム１００は、データファイルＭおよびＮのデータブロックを、最適な配信行列にしたがって（すなわちデータファイルＮの配信シーケンスを３タイムスロット毎にシフトさせる）以下の方法で送信する。
【００５３】
【数５】
2004536491.tif 000015
【００５４】
クライアントＡが、時刻００：００：００において映画Ｍを選択すると、クライアントＡのＳＴＢ３００は、データブロックの受信（receive）、格納（store）、再生（play）、および拒否を以下のように行う：
【００５５】
【数６】
2004536491.tif 000016
【００５６】
クライアントＢが、時刻００：００：１０において映画Ｍを選択すると、クライアントＢのＳＴＢ３００は、データブロックの受信、格納、再生、および拒否を以下のように行う：
【００５７】
【数７】
2004536491.tif 000017
【００５８】
クライアントＣが、時刻００：００：１５において映画Ｎを選択すると、クライアントＣのＳＴＢ３００は、データブロックの受信、格納、再生、および拒否を以下のように行う：
【００５９】
【数８】
2004536491.tif 000018
【００６０】
クライアントＤが、時刻００：００：３０において映画Ｎを選択すると、クライアントＤのＳＴＢ３００は、データブロックの受信、格納、再生、および拒否を以下のように行う：
【００６１】
【数９】
2004536491.tif 000019
【００６２】
上述の例で示したように、任意の組み合わせのクライアントが、サービスプロバイダによって提供される任意のデータファイルの選択および再生開始を、任意の時間に独立して行うことができる。システムは、タイムスロットによって決定されるデータブロックの連続的なストリームを常に受信しているが、ある任意の時間に、受信ＳＴＢは、ある特定のデータブロックのみを必要として、その他の受信データブロックをすでに受信して格納していてもよいため、「受信」という上述の用語は少し紛らわしい。この要求は、上では「受信」と呼ばれているが、「拒否せず」の方が正確である。したがって、「Ｍ４を受信」は、「Ｍ４以外のすべてを拒否」と言うことができ、「受信せず」は、「すべてを拒否」と言う方がよい。
【００６３】
上述の例から明らかになることは、利用可能な帯域幅が、ある特定のタイムスロット中には完全には利用されていないことである。特に、少なくとも一部のタイムスロット中には、送信が行われていない「アイドルタイム」が存在する。このアイドルタイムは、利用可能な帯域幅に関する本質的に無駄な利用法である。それぞれのタイムスロットの間に２つのデータブロックが送信される上述のオプション４を例に取る。換言すると、６つのデータブロックを送信するのに適した帯域幅を有するタイムスロットで、４つのデータブロック送信期間がアイドル状態のままになる。これは、オプション４では劇的ではないが、データファイルが数千データブロックの大きさになると、より極端なものとなる。データを組み合わせるための最適な組み合わせプロトコルを用いても、なお、かなりの部分が、空のブロックスペースとなるだろう。
【００６４】
この空のブロックスペースは、利用されていない帯域幅と同等に見なされ、無駄な帯域幅である。本発明の目的は、できる限り多くのアイドルタイムを減少させることであり、したがって、本発明の一実施形態は、スケジューリング行列（本明細書では、アイドルタイム減少スケジューリング行列と呼ぶ）が決定された後に、別のステップを実行することである。
【００６５】
アイドルタイム減少スケジューリング行列の代表的なモデルは、上述の６つのブロックスケジューリング行列を参照して説明できるが、ここでは、便宜上繰り返して説明する。帯域幅をデータブロックの送信に利用できるアイドルタイムは、明確にするために＜−−＞で示されている。
【００６６】
【数１０】
2004536491.tif 000020
【００６７】
これは、図５に図示されている。スケジューリング行列は、明らかに、ほとんどのタイムスロット内にアイドルタイムの形態で未利用の帯域幅を有している。本発明は、タイムスロット毎に一定の帯域幅を利用することによって、このアイドルタイムを低減することを教示している。一定の帯域幅利用によってアイドル送信タイムの低減を実現する鍵は、データブロックの配信シーケンスは遵守される必要があるものの、データブロックがアクセスされる必要のある時間またはそれよりも前に受信されなければならないことを除けば、データブロックが正確なタイムスロットで配信される必要はないことを理解することである。したがって、一定の帯域幅利用は、スケジューリング行列によって示される配信シーケンスに従って、スケジューリング行列によって割り当てられるタイムスロットに関係なく、各タイムスロットで一定数のデータブロックを送信することにより実現される。
【００６８】
先に詳述した６つのブロックスケジューリング行列では、ＴＳ０、ＴＳ１、ＴＳ２およびＴＳ４にかなりの量のアイドルタイムが存在する。例えば、所望の一定の帯域幅が、タイムスロット当たりの４つのデータブロックの送信に対応すると想定する。したがって、アイドルタイムは、４つのデータブロックが各タイムスロット中に送信されるようスケジューリングされるまで、前方のデータブロックを移動させることにより減少される。そのための手順は、シーケンス内の次のデータブロックを取って、それを空のスペースに移動させることである。故に、この例では、ＴＳ１内の第１のブロックｂｌｋ０がＴＳ０に移動される。さらに、ＴＳ１内の次のブロックｂｌｋ１が繰り上げられる。次いで、ＴＳ０は、まだ、空のデータブロックスペースを有しているので、さらに、ＴＳ１からｂｌｋ３が繰り上げられる。これで、ＴＳ０はスペースがすべて満たされ、以下のようになる：
【００６９】
【数１１】
2004536491.tif 000021
【００７０】
この時点で、ＴＳ１とＴＳ２のほとんどは空なので、ＴＳ３からデータブロックが繰り上げられる。この手順が終わると、行列は以下のようになる：
【００７１】
【数１２】
2004536491.tif 000022
【００７２】
これは、図６にも図示されている。この例のＴＳ４およびＴＳ５のように、空のタイムスロットと不完全なタイムスロットは、元のシーケンスを繰り返して、さらにアイドルタイムを埋めることにより、埋められる。したがって、第１の６つのタイムスロットは以下のようになる：
【００７３】
【数１３】
2004536491.tif 000023
【００７４】
このシーケンス内の次の２つのタイムスロットＴＳ６およびＴＳ７は、ＴＳ２およびＴＳ３と同じデータブロックを有する。したがって、新たな短いスケジューリング行列で、このプロセスによって実際に生成されるものは、４タイムスロットの長さにすぎない。図７は、アイドルタイムを埋めることによって生成される新しい反復行列を示している。
【００７５】
上述の例から、元々の順序が維持される限り、ユーザが、元のスケジューリング行列のオンタイム配信と違って、前もってデータファイルを受信することができることは明らかである。ユーザは、タイムスロットの途中でシステムに入ってもよく、開始ブロックｂｌｋ０が受信されるとすぐにデータの利用を開始できる。
【００７６】
このように、データブロックが連続的なストリームになると、タイムスロットは、ほとんど計算上のフィクションとなるため、ストリームの任意の時点で、ユーザは、システムに入りデータの受信を開始してよい。図８に示すように、この追加のステップは、終了工程である手順４１０の位置で実行される比較的簡単なステップ５１０である。
【００７７】
簡単のため、図４〜１０の説明では、選択された帯域幅が、整数であるデータブロック数に等しい定数に設定された場合を扱った。しかしながら、その一定の帯域幅は、整数であるデータブロック数に等しい必要はない。むしろ、単に、配信シーケンスが、図８で作成されたシーケンスに従えばよい。図８で作成された配信シーケンスによって生成されるデータストリームは、次に、デジタルデータの放送を制御する下位のハードウェアデバイス（例えば、ネットワークカードまたはチャネルサーバ）に提供される。整数のデータブロックを放送するというより、下位のハードウェアデバイスは、ファイルに割り当てられた帯域幅の範囲でできる限り多くのデータを送信する。
【００７８】
当業者にとって明らかなように、配信シーケンスの抽象化レベルでは、データの実際の送信を気にする必要はない。代わりに、配信行列がシーケンスを提供し、下位のハードウェアデバイスが、割り当てられた帯域幅を用いてデータの放送を制御する。したがって、割り当てられた帯域幅のうち、一部分のデータブロックサイズしか含まないものを完全に利用できる。割り当てられた帯域幅が利用されると、下位のデバイスは、帯域幅が再び利用可能となるまで、この特定のデータファイルの放送を中断する。
【００７９】
上述の例では、元のスケジューリング行列で用いられる最大帯域幅が、アイドルタイム減少行列で用いられている。そのため、ユーザが、どの時点でデータの受信を開始しても、最大の待ち時間は変わっていない。しかしながら、当業者にとって明らかなように、帯域幅は、時間のコストまたはベネフィットに適合されてもよい。データ・オン・デマンドサービスでは、最大所要時間が、ファイルの実行時間を超えないことが重要である。超えた場合には、結果として、スケジューリング行列は、元のスケジューリング行列が含むタイムスロットの数よりも多くの総タイムスロット数を有することになる。これが、２時間の映画だった場合には、再生するのに３時間掛かることになり、映画の途中でギャップが生じてしまう。しかしながら、すぐに利用せずにダウンロードできるデータのストリームなど、一部の用途では、この機能を利用可能であり、また、この機能が望ましい場合もある。
【００８０】
一定の完全に最適化された帯域幅を有するデータの単一ストリームは、簡単に結合することが可能である。その結果、複数のストリーム帯域幅が生じる。その帯域幅の全幅は、単一ストリームの合計である。
【００８１】
示されているように、アイドルタイムを減少させることは、データの単一ストリームのためのスケジューリング行列を算出するのに非常に有用である。このように、帯域幅の割り当て量は、データのストリームを送信する際に完全に利用されてもよい。しかしながら、上述のように、本発明の一態様は、三次元の配信行列を生成する工程である。三次元の配信行列を用いて、正確に同じ方法で、アイドルタイム減少配信行列を算出してもよい。しかしながら、アイドルタイム減少配信行列が単一ストリームで用いられ、複数の完全に最適化された単一ストリームが結合されると、これは、ほとんどの状況下で三次元行列システムよりも優れると思われる。
【００８２】
そのため、実施形態は、オン・デマンドデータファイルを送信するためのコンピュータによって実行される方法であって、非特異な方式で複数のクライアントに媒体を介して行う放送に適した反復データ送信シーケンスを規定する配信行列を準備する工程を備える方法である。この配信行列を準備する工程は、さらに、データファイルを、少なくとも第１のブロックを有する複数のデータブロックに分割する工程と、それらデータブロックを反復データ送信シーケンス内に順序付ける工程とを備える。したがって、ユーザは、その反復データ送信シーケンスを受信し、第１のブロックが受信されるとすぐに、中断なしにデータファイルの利用を開始してよい。この反復データ送信シーケンスは、所定の帯域幅を必要とし、さらに、反復データ送信シーケンスの送信においてアイドルタイムは最小限となる。さらに、データ・オン・デマンドファイルの送信に必要な送信帯域幅の量は、クライアントの数に依存しない。
【００８３】
図９は、アイドルタイム減少スケジューリングシーケンスが決定される方法を示すフローチャートである。最初の工程５２０において、元のスケジューリング行列が、データファイルに対して生成される。この元のスケジューリング行列は、本発明に従ってアイドルタイムを減少されていない単純なスケジューリング行列である。明確にするため、「元の」と呼んでいる。元のスケジューリング行列について明らかなことは、構造化された行列自体ではなく、データブロックが引き出される順序である。したがって、元の行列におけるデータブロックの順序は、アイドルタイム減少スケジューリング行列の決定において最も重要なものである。そのため、元の行列は、スケジューリングシーケンスとして扱われる（工程５３０）。上述のように、このスケジューリングシーケンスは、元の行列のアイドルタイムを埋めるために用いることができる。しかしながら、この時点で、まず、データファイルに割り当てられる帯域幅の量を調整することが望ましい（工程５４０）。帯域幅が割り当てられると、データブロックは、すべてのアイドルタイムスロットがなくなるまで、繰り上げられる。理論的には、これをシーケンスとして考えれば、アイドルタイムスロットは取り除かれる（工程５５０）。この工程が終了すると、元のスケジューリング行列に起因するシーケンスが繰り返される。最終的に、新しい反復シーケンスが生成され、これを新しいアイドルタイム減少スケジューリング行列と見なすことができる（工程５６０）。
【００８４】
スケジューリングシーケンスとアイドルタイム減少スケジューリング行列との間の差異が、主に認知的なものであることに注意されたい。一方は線形的なシーケンスとして表すことが可能であり、他方は繰り返しの行列として表すことが可能であるが、最終的な結果として、ユーザは、クライアントに非特異なデータブロックの一定のストリームを受信する。
【００８５】
ＤＯＤデータブロックのスケジューリング行列を放送するために必要な帯域幅をさらに低減するための方法では、頻繁に出現するデータブロックを専用チャネルで放送する。以下に示す行列の例からわかるように、選択されたデータブロックは、ストリーム内の他のデータブロックよりも頻繁に出現している。アイドルタイムを有する元の配信行列は、以下の通りである：
【００８６】
【数１４】
2004536491.tif 000024
【００８７】
図９のプロセスによって生成されたアイドルタイム減少の配信行列は、以下の通りである：
【００８８】
【数１５】
2004536491.tif 000025
【００８９】
データの線形的な反復ストリームとして表現されるアイドルタイム減少行列の例は、以下の通りである：
【００９０】
【数１６】
2004536491.tif 000026
【００９１】
線形的に示した配信行列の例からわかるように、ｂｌｋ０は、ブロック１ないし５よりも頻繁に送信される。異なる配信行列を用いた場合には、異なるデータブロックが、所与のデータブロックのストリーム内で多少頻繁に出現するようになることもある。いずれの配信行列でも、シーケンスの上流で出現するデータブロックの方がより頻繁に出現し、ブロック０は常に最も頻繁に出現する。
【００９２】
ｂｌｋ０は、他のデータブロックよりも頻繁にデータストリームに出現するため、ｂｌｋ０およびその他の頻繁に出現するブロックを別個のデータストリームで送信することにより、より狭い送信帯域幅を実現できる。このストリームは、元のストリームよりもはるかに低減された帯域幅を有することが可能であり、元のストリームに割り当てられた帯域幅も、より頻度の小さいデータブロックのみを送信することにより低減可能である。例えば、上述のストリームが、２つの別々のストリームに分割される場合、２つの反復ストリーム、すなわち、データｂｌｋ０のみを伝送するプリフェッチデータブロックおよび残りのデータブロックを伝送する主要データストリームは、以下の通りである：
【００９３】
【数１７】
2004536491.tif 000027
【００９４】
このように、独立したデータストリームでｂｌｋ０を送信することにより、主要データストリームの送信に必要な帯域幅は、３７．５％だけ低減される。この低減は、主要データストリームにおける１６個の全データブロック中の６個を占めるｂｌｋ０によるものであり、このように、ｂｌｋ０を除去することによって、主要データストリームで送信されるデータブロック数が６だけ効果的に低減される。ｂｌｋ０を含むプリフェッチデータストリームの送信に必要な追加の帯域幅は、比較的小さく、受信ＳＴＢによって実行されるバッファリングの量に依存する。このバッファリングについては、図１２を参照して以下で詳しく説明する。
【００９５】
この送信方法の大きな利点は、選択されたデータ・オン・デマンドサービスにアクセスするために必要な時間を短縮することである。選択されたＤＯＤサービスのｂｌｋ０が受信されるとすぐに、ユーザは、選択されたサービスを利用し始めることができるのだが、プリフェッチストリームがなければ、ユーザは、主要データストリームにｂｌｋ０が出現するまで待たなければならない。ｂｌｋ０は、独立したストリームで連続的に送信されるため、多くの様々なデータブロックを含むストリームから受信される次のｂｌｋ０を待たずに、サービスを利用することができる。もちろん、データ・オン・デマンドシステムを滞りなく利用するには、ｂｌｋ０の完了時までには、ｂｌｋ１を受信して利用の準備ができている必要があるため、主要データストリームは、ｂｌｋ０の完了前にｂｌｋ１を確実に受信するよう、十分な帯域幅を有することが好ましい。
【００９６】
図１０は、本発明の一実施形態に従って、主要データストリームおよびプリフェッチデータストリームで送信するためにＤＯＤデータブロックをスケジューリングするプロセス６００を示す。最初の工程６０２では、アイドルタイム減少スケジュールが、データブロックの送信される順序で配列されたデータブロックの線形的なシーケンスとして表される。工程６０４では、最も頻繁に出現するデータブロックが、シーケンスから除去され、必要な帯域幅が非常に狭い、より短いデータブロックシーケンスが生成される。上述のように、ｂｌｋ０は、常に最も頻繁に出現する。工程６０６では、アイドルタイム減少シーケンスから除去されたデータブロックが、ｂｌｋ０データブロックのみで構成されるプリフェッチデータストリーム内に配置される。次いで、工程６０８では、短縮されたデータブロックシーケンスが、主要データストリーム内に配置される。次いで、工程６１０では、主要データストリームおよびプリフェッチデータストリームが、２つの別個の反復データストリームとして別個の帯域幅で、伝送媒体１１０（図１Ｂ）を介して受信セット・トップ・ボックスに送信される。
【００９７】
図１１は、一実施形態に従って、主要データストリームおよびプリフェッチデータストリームで送信するためにＤＯＤデータブロックをスケジューリングするプロセス６５０を示している。このプロセスでは、ＤＯＤ配信行列からの複数のＤＯＤデータブロックが、プリフェッチデータストリームで送信されることにより、送信に必要な総帯域幅が最小化されている。最初の工程６５２では、アイドルタイム減少スケジュールが、データブロックの送信される順序で配列されたデータブロックの線形的なシーケンスとして表される。工程６５４では、最も頻繁に出現するデータブロックが、シーケンスから除去され、必要な帯域幅が非常に狭い、より短い主要データブロックシーケンスが生成される。工程６５６では、アイドルタイム減少シーケンスから除去されたデータブロックが、プリフェッチデータストリーム内に配置される。
【００９８】
工程６５８では、データブロックを含むより短い主要ストリームの送信に必要な帯域幅が、所定の閾値よりも低く低減されたか否かの判断がなされる。この工程は、当業者に周知の多くの複雑なサブプロセスを必要としてもよい。主要データストリームに必要な帯域幅が閾値よりも低い場合には、プロセスは、工程６６０に進む。工程６６０では、主要データストリームおよびプリフェッチデータストリームが、２つの別個の反復データストリームとして別個の帯域幅で、伝送媒体１１０（図１Ｂ）を介して受信セット・トップ・ボックスに送信される。
【００９９】
必要な帯域幅が閾値を超える場合には、プロセスは工程６５４に戻り、残りのデータブロックの中で最大の頻度で出現するデータブロックが除去される。次に、工程６５６では、除去されたデータブロックがプリフェッチデータストリームに追加される。プロセスは、必要な送信帯域幅が、工程６５８において閾値よりも低いと判断されるまで繰り返され、閾値よりも低いと判断された時点で、プロセスは、工程６６０において終了する。別の実施形態では、例えば、主要およびプリフェッチデータストリーム両方のための複合的な帯域幅の要求を最小化する工程など、閾値の代わりに他の判断基準を用いてもよい。このように、ＤＯＤサービスの送信に必要な帯域幅は、２００１年６月２５日出願（Ｎｏ．０９／８９２，０１７）のＫｈｏｉ  Ｈｏａｎｇの親出願「アイドルタイム減少および一定帯域幅データ・オン・デマンド放送配信行列（DECREASED IDLE TIME AND CONSTANT BANDWIDTH DATA-ON-DEMAND BROADCAST DELIVERY MATRICES）」のアイドルタイム減少および一定帯域幅配信の方法よりも、さらに低減される。
【０１００】
頻繁に出現するデータブロックを主要データストリームから除去する工程は、主要データストリームに含まれるデータブロックの総数を大きく低減する効果、延いては、主要データストリームの送信に必要な帯域幅を低減する効果を有する。以下の表は、選択されたデータストリームを主要データストリームから除去することにより実現される帯域幅節約の例を示す。
【０１０１】
【表９】
2004536491.tif 000028
【０１０２】
上述の方法で送信されたＤＯＤサービスに即座にアクセスするためには、受信ＳＴＢは、プリフェッチデータストリームに含まれるデータの一部または全部をプリロードおよび格納する必要がある。ＳＴＢは、いずれのＤＯＤサービスを表示する場合でも、そのサービスのｂｌｋ０を最初にロードおよび格納しなければならないため、節約される送信帯域幅とアクセス遅延時間との間にはトレードオフが生じる。プリフェッチデータストリームをプリロードしてプリフェッチデータブロックを格納することにより、クライアントＳＴＢは、最小の遅延で、選択されたＤＯＤサービスにアクセスすることができる。そのために、受信ＳＴＢは、プリフェッチデータストリームに含まれるデータを格納するのに十分なメモリを有することが好ましい。
【０１０３】
図１２は、本発明の一実施形態に従って、セット・トップ・ボックスのプリロードプロセス７００を示す。工程７０２において、セット・トップ・ボックスは、アイドルすなわちパッシブモードに設定される。通例、このモードは、すべてのクライアントセット・トップ・ボックスにとってデフォルトのモードである。工程７０４において、セット・トップ・ボックスは、プリフェッチデータストリームを専用チャネルで受信する。代表的な実施形態では、プリフェッチデータストリームは、電子番組ガイドのチャネルで受信される。工程７０６において、セット・トップ・ボックスは、受信したプリフェッチデータブロックが、以前に格納されたプリフェッチデータよりも新しいか否かを判断する。各プリフェッチデータブロック内に含まれる識別子は、データブロックがどれほど新しいのかをセット・トップ・ボックスに示す。受信されたデータブロックの方が新しい場合には、セット・トップ・ボックスは、工程７０８において、内部メモリ３０８（図３）に、その最新のプリフェッチデータブロックを格納する。内部メモリ３０８は、通例、ハードディスクドライブ磁気記憶装置である。通例は、古いデータブロックが、新しいプリフェッチデータブロックで上書きされるが、様々な理由から、古い方のバージョンが保持されることもある。
【０１０４】
工程７１０において、セット・トップ・ボックスは、タイマとユーザコマンドのいずれかにより、アクティブモードに切り換えられる。代表的な実施形態では、セット・トップ・ボックスは、任意のユーザコマンドがセット・トップ・ボックスによって受信されると、自動的にアクティブモードに切り換わる。かかる実施形態では、セット・トップ・ボックスは、ある程度の期間アクティブモードを維持して、その後、パッシブモードに戻る。
【０１０５】
工程７１２において、セット・トップ・ボックスは、選択されたＤＯＤサービスを再生するためのコマンドを受信する。これは、ユーザが、選択されたＤＯＤサービスに対応するコードを入力するか、または、電子番組ガイドサービス内のメニューからＤＯＤサービスを選択することにより実現されてよい。工程７１４において、セット・トップ・ボックスは、工程７０８において格納されたプリフェッチデータブロックから、選択されたＤＯＤサービスの第１のデータブロック（ブロック０）を再生する。工程７１６において、セット・トップ・ボックスは、適切なチャネルにチューニングして、選択されたＤＯＤサービスに対応する主要データストリームを受信し、メモリ３０８（図３）に格納する。代表的な実施形態では、この工程は、ユーザが、選択されたＤＯＤサービスの再生を止めるまで、工程７１４と並行して実行される。
【０１０６】
工程７１８において、選択されたＤＯＤサービスに対応するすべてのプリフェッチデータブロックが再生されると、プロセスは、工程７２０に進む。工程７２０において、ＤＯＤサービスの残りが、工程７１６で以前に受信された主要ストリームデータブロックから再生される。このプロセスは、第１のデータブロック（ｂｌｋ０）、または、ＤＯＤサービスの最初のいくつかのデータブロックを、格納されたプリフェッチデータブロックから再生しつつ、選択されたＤＯＤサービスに対応するデータブロックの主要ストリームをサーバからダウンロードすることを可能とする。かかるシステムは、アクセス時間の遅延を最小化すると共に帯域幅の要求を低減しつつ、ＤＯＤサービスのシームレスな視聴を可能にする。最適に機能するためには、主要データストリームからのデータブロックを、その利用に間に合うようにダウンロードできるよう、十分なプリフェッチデータブロックが、格納および再生されなければならない。そのためには、プリフェッチストリームまたは主要データストリームの帯域幅の増大が必要である。
【０１０７】
プリフェッチデータストリーム内に構成され、最終的にプリフェッチストリームを通してアイドル状態のセット・トップ・ボックスにロードされるデータは、ユーザの嗜好を反映すると共に最大の帯域幅の節約を実現するよう、日、週、または月の間に変更されてよい。例えば、秋の月曜日の夜には、プリフェッチデータストリームで、ある特定のスポーツイベントが優先的に放送され、それに対して、週末の夜には、最新封切りの長編ファミリー映画が、プリフェッチデータストリームで送信される最初のシーケンスを有してもよい。
【０１０８】
セット・トップ・ボックスは、アイドルモード中に、プリロードされたデータブロックシーケンスがＳＴＢにすでに格納されているため、遅延なくいつでも所望の番組を開始することができる。このプリフェッチデータブロックシーケンスは、ユーザによって（例えば、ユーザがまだ観ていない映画を注文する）、または、予想されるＤＯＤユーザの要求に基づいて事前設定されたシーケンス更新によってなされる予めプログラムされた変更を反映するよう、ＳＴＢのアイドルモード中に、絶えず更新されることが可能である。
【０１０９】
上述の例は、本発明の代表的な実施形態のいくつかを例示したものであり、当業者は、これらから、他の実施形態、変更例、変形例を容易に導くことができる。したがって、本発明は、上述した特定の実施形態に限定されず、添付した特許請求の範囲によって規定される。
【図面の簡単な説明】
【０１１０】
【図１Ａ】本発明の一実施形態に従って、代表的なＤＯＤシステムを示す図。
【図１Ｂ】本発明の別の実施形態に従って、代表的なＤＯＤシステムを示す図。
【図２】本発明の一実施形態に従って、代表的なチャネルサーバを示す図。
【図３】本発明の一実施形態に従って、代表的なセット・トップ・ボックスを示す図。
【図４】本発明の一実施形態に従って、スケジューリング行列を生成する代表的なプロセスを示す図である。
【図５】６つのデータブロックファイルのスケジューリング行列の一例を示す図。
【図６】すべてのアイドルタイムスロットが満たされるまで、図５のスケジューリング行列のデータブロックが繰り上げられる様子を示す図。
【図７】新しいアイドルタイム減少スケジューリング行列を示す図。
【図８】アイドルタイム減少の実施形態の追加を示す図。
【図９】アイドルタイム減少の実施形態が実現される様子を示すフローチャート。
【図１０】本発明の一実施形態に従って、主要データストリームおよびプリフェッチデータストリームで送信するためにＤＯＤデータブロックをスケジューリングするプロセスを示すフローチャート。
【図１１】本発明の別の実施形態に従って、主要データストリームおよびプリフェッチデータストリームでの送信のためのＤＯＤデータブロックをスケジューリングするプロセスを示すフローチャート。
【図１２】本発明の一実施形態に従って、セット・トップ・ボックスのプリロードプロセスを示すフローチャート。
【符号の説明】
【０１１１】
１００…ＤＯＤシステム
１０２…中央制御サーバ
１０３…中央ストレージ
１０４ａ〜１０４ｎ…チャネルサーバ
１０６ａ〜１０６ｎ…アップコンバータ
１０８…コンバイナ／アンプリファイア
１１０…伝送媒体
１１２…スイッチ行列
１１４…チャネル監視モジュール
１１６ａ〜１１６ｂ…バックアップ・チャネルサーバ
１１８ａ〜１１８ｂ…バックアップ・アップコンバータ
１２０…ケーブルテレビシステム
２０２…サーバコントローラ
２０４…ＣＰＵ
２０６…ＱＡＭモジュレータ
２０８…ローカルメモリ
２１０…ネットワークインタフェース
３００…汎用セット・トップ・ボックス
３０２…ＱＡＭデモジュレータ
３０４…ＣＰＵ
３０８…ローカルメモリ
３１０…バッファメモリ
３１２…デコーダ
３１４…グラフィクスオーバレイモジュール
３１８…ユーザインタフェース
３２０…通信回線
３２２…高速データバス
３２４…出力装置
【図１Ａ】
2004536491.tif 000029
【図１Ｂ】
2004536491.tif 000030
【図２】
2004536491.tif 000031
【図３】
2004536491.tif 000032
【図４】
2004536491.tif 000033
【図５】
2004536491.tif 000034
【図６】
2004536491.tif 000035
【図７】
2004536491.tif 000036
【図８】
2004536491.tif 000037
【図９】
2004536491.tif 000038
【図１０】
2004536491.tif 000039
【図１１】
2004536491.tif 000040
【図１２】
2004536491.tif 000041
【国際公開パンフレット】
2004536491.tif 000042
2004536491.tif 000043
2004536491.tif 000044
2004536491.tif 000045
2004536491.tif 000046
2004536491.tif 000047
2004536491.tif 000048
2004536491.tif 000049
2004536491.tif 000050
2004536491.tif 000051
2004536491.tif 000052
2004536491.tif 000053
2004536491.tif 000054
2004536491.tif 000055
2004536491.tif 000056
2004536491.tif 000057
2004536491.tif 000058
2004536491.tif 000059
2004536491.tif 000060
2004536491.tif 000061
2004536491.tif 000062
2004536491.tif 000063
2004536491.tif 000064
2004536491.tif 000065
2004536491.tif 000066
2004536491.tif 000067
2004536491.tif 000068
2004536491.tif 000069
2004536491.tif 000070
2004536491.tif 000071
2004536491.tif 000072
2004536491.tif 000073
2004536491.tif 000074
2004536491.tif 000075
2004536491.tif 000076
2004536491.tif 000077
2004536491.tif 000078
2004536491.tif 000079
2004536491.tif 000080
2004536491.tif 000081
2004536491.tif 000082
2004536491.tif 000083
2004536491.tif 000084
2004536491.tif 000085
2004536491.tif 000086
2004536491.tif 000087
2004536491.tif 000088
2004536491.tif 000089
2004536491.tif 000090
2004536491.tif 000091
2004536491.tif 000092
2004536491.tif 000093
2004536491.tif 000094
2004536491.tif 000095
2004536491.tif 000096
2004536491.tif 000097
2004536491.tif 000098
2004536491.tif 000099
2004536491.tif 000100
2004536491.tif 000101
2004536491.tif 000102
2004536491.tif 000103
2004536491.tif 000104
2004536491.tif 000105
【国際調査報告】
2004536491.tif 000106