(57)【要約】【課題】大容量のコンテンツを配信してもリアルタイムの再生を行うことができるコンテンツ配信方法、プログラムおよび情報処理装置を提供する。【解決手段】コンテンツ再生装置５２は、コンテンツデータ１０を複数のブロック１２に分割した場合のブロック１２毎にコンテンツ提供装置５３および５４に対応してブロック１２を２つの領域に分割して割り当て、２つの領域のそれぞれの配信要求を対応するコンテンツ再生装置５３および５４に送信し、配信要求に応じてコンテンツ再生装置５３および５４から配信された２つの領域に基づいてブロック１２を再構成する。コンテンツ再生装置５２は、コンテンツ提供装置５３および５４の転送能力に応じてブロック１２毎に２つの領域を割り当てる。【選択図】        図２
2006126894.tif 000002
【特許請求の範囲】
【請求項１】
クライアント装置が、同一のコンテンツデータを分散してパケット単位に配信する配信要求をネットワークを介して複数のサーバ装置に送信する配信要求ステップと、
前記複数のサーバ装置が、前記配信要求ステップで送信された前記配信要求に応じて前記ネットワークを介して前記コンテンツデータを分散して前記パケット単位に前記クライアント装置に配信する配信ステップと、
前記クライアント装置が、前記配信ステップで前記複数のサーバ装置から分散して配信された前記パケットを組み立てて前記コンテンツデータを再生する再生ステップとを含むコンテンツ配信方法であって、
前記配信要求ステップは、
前記コンテンツデータを複数のブロックに分割した場合の前記ブロック毎に前記複数のサーバ装置に対応して前記ブロックを前記パケット単位に複数の領域に分割して割り当てるブロック領域配分ステップと、
前記ブロック領域配分ステップで分割されたブロック毎に前記複数の領域のそれぞれの配信要求を前記複数のサーバ装置に送信するブロック領域要求ステップとを含み、
前記配信ステップは、
前記配信要求ステップで前記コンテンツデータの配信が要求されたとき、前記コンテンツデータを前記複数のブロックに分割するブロック分割ステップと、
前記ブロック領域要求ステップで送信された前記配信要求に応じて前記ブロック分割ステップで分割された各ブロックの前記領域を配信するブロック領域配信ステップとを含み、
前記再生ステップは、
前記ブロック領域配信ステップで前記複数のサーバ装置から配信された前記複数の領域に基づいて前記ブロックを再構成するブロック再構成ステップを含むことを特徴とするコンテンツ配信方法。
【請求項２】
前記配信要求ステップは、
前記複数のサーバ装置のそれぞれに要求する複数の転送レートを前記ブロック毎に設定するブロック転送レート設定ステップを含み、
前記ブロック領域配分ステップは、前記ブロック転送レート設定ステップで設定された前記複数のサーバ装置の転送レートに基づいて前記複数のサーバ装置の前記領域を割り当てることを特徴とする請求項１記載のコンテンツ配信方法。
【請求項３】
前記ブロック領域配分ステップは、前記ブロック転送レート設定ステップで設定された前記複数のサーバ装置の転送レートに比例して前記複数のサーバ装置の前記領域を割り当てることを特徴とする請求項２記載のコンテンツ配信方法。
【請求項４】
前記ブロック要求ステップは、前記ブロック転送レート設定ステップで設定された転送レートを前記領域とともに対応する前記サーバ装置に送信し、
前記ブロック領域配信ステップは、前記ブロック領域要求ステップで送信された前記転送レートに基づいて前記領域を配信することを特徴とする請求項２記載のコンテンツ配信方法。
【請求項５】
前記ブロック転送レート設定ステップは、前記ブロック領域配信ステップで前記ブロックの前記領域が配信される前に前記複数のサーバ装置のそれぞれと前記クライアント装置との間を経由するルータ数を検出し、検出された前記複数のサーバ装置のルータ数に基づいて前記複数のサーバ装置のそれぞれの転送レートを設定することを特徴とする請求項２記載のコンテンツ配信方法。
【請求項６】
前記配信要求ステップは、前記ブロック領域配信ステップで前記ブロックの前記領域が配信される前に前記クライアント装置と前記複数のサーバ装置との間で通信情報を送受する場合、送受された通信情報の転送レートおよびエラーレートの少なくとも１つの通信品質情報を検出する検出ステップを含み、
前記ブロック転送レート設定ステップは、前記検出ステップで検出された通信品質情報に基づいて前記複数のサーバ装置のそれぞれの転送レートを設定することを特徴とする請求項２記載のコンテンツ配信方法。
【請求項７】
前記配信要求ステップは、前記ブロック領域配信ステップで配信された前記複数のサーバ装置のそれぞれの前記領域の転送レートおよびエラーレートの少なくとも１つの通信品質情報を検出する検出ステップを含み、
前記ブロック転送レート設定ステップは、前記検出ステップで検出された前記複数のデータ配信サーバ装置の通信品質情報に基づいて前記複数のサーバ装置のそれぞれの転送レートを設定することを特徴とする請求項２記載のコンテンツ配信方法。
【請求項８】
前記配信要求ステップは、前記ブロック領域配信ステップで配信された前記複数のサーバ装置のそれぞれの前記領域の転送レートおよびエラーレートの少なくとも１つの通信品質情報を検出する検出ステップを含み、
前記ブロック転送レート設定ステップは、前記検出ステップで検出された前記複数のデータ配信サーバ装置の通信品質情報に基づいて前記複数のサーバ装置の総転送レートを設定することを特徴とする請求項２記載のコンテンツ配信方法。
【請求項９】
前記ブロック転送レート設定ステップは、設定された前記複数のサーバ装置の転送レートを記憶する記憶ステップを含み、
前記記憶ステップで記憶された前回のコンテンツデータ配信時の前記複数のサーバ装置の転送レートに基づいて前記複数のサーバ装置のそれぞれの転送レートを設定することを特徴とする請求項２記載のコンテンツ配信方法。
【請求項１０】
前記配信要求ステップは、
複数のサーバ装置のそれぞれが配信可能なコンテンツデータと前記複数のサーバ装置との対応関係を示すデータベース情報を記憶する記憶手段と、前記クライアント装置からの前記コンテンツデータの検索要求を前記ネットワークを介して受信する受信手段と、前記受信手段により受信された検索要求に応じて前記記憶手段に記憶されたデータベース情報に基づいて前記コンテンツを配信可能な複数のサーバ装置を検索する検索手段と、前記検索手段により検索された検索情報を前記ネットワークを介して前記クライアント装置に配信する検索情報配信手段とを有する検索サービス提供装置に所望の前記コンテンツデータを有する複数のサーバ装置の前記検索情報を配信する配信要求を送信する検索情報要求ステップと、
前記検索情報要求ステップで送信された前記配信要求に応じて前記データベース装置から配信された検索情報を取得する取得ステップと、
前記取得ステップで取得された前記検索情報に基づいて前記コンテンツデータの配信を要求する複数のサーバ装置を選択する選択ステップとを含み、
前記選択ステップで選択された前記複数のサーバ装置に前記コンテンツデータの前記配信要求を送信することを特徴とする請求項１記載のコンテンツ配信方法。
【請求項１１】
前記ブロック分割ステップは、分割された各ブロックにエラー訂正符号を付加し、
前記ブロック領域配分ステップは、前記ブロック分割ステップで前記ブロックに付加されたエラー訂正符号を前記ブロックとともに前記複数のサーバ装置に対応して前記パケット単位に複数の領域に分割して割り当て、
前記ブロック再構成ステップは、前記複数の領域に基づいて前記エラー訂正符号が付加された前記ブロックを再構成し、
前記再生ステップは、前記ブロック再構成ステップで再構成された前記エラー訂正符号に基づいて前記ブロックのエラー訂正処理を行うエラー訂正ステップを含むことを特徴とする請求項１記載のコンテンツ配信方法。
【請求項１２】
前記配信要求ステップは、前記パケットのリトライが発生したとき、前記リトライが発生した前記サーバ装置と異なるサーバ装置に前記リトライ対象の前記パケットの配信を要求することを特徴とする請求項１記載のコンテンツ配信方法。
【請求項１３】
同一のコンテンツデータを分散してパケット単位に配信する配信要求をネットワークを介して複数のサーバ装置に送信する配信要求ステップと、
前記配信要求ステップで送信された前記配信要求に応じて前記複数のサーバ装置から分散して配信された前記パケットを組み立てて前記コンテンツデータを再生する再生ステップとを含む方法をコンピュータに実行させるプログラムであって、
前記配信要求ステップは、
前記コンテンツデータを複数のブロックに分割した場合の前記ブロック毎に前記複数のサーバ装置に対応して前記ブロックを前記パケット単位に複数の領域に分割して割り当てるブロック領域配分ステップと、
前記ブロック領域配分ステップで分割されたブロック毎に前記複数の領域のそれぞれの配信要求を前記複数のサーバ装置に送信するブロック領域要求ステップとを含み、
前記再生ステップは、
前記ブロック領域要求ステップで送信された前記配信要求に応じて前記複数のサーバ装置から配信された前記複数の領域に基づいて前記ブロックを再構成するブロック再構成ステップを含むことを特徴とするコンピュータに実行させるプログラム。
【請求項１４】
同一のコンテンツデータを分散してパケット単位に配信する配信要求をネットワークを介して複数のサーバ装置に送信する配信要求手段と、
前記配信要求手段により送信された前記配信要求に応じて前記複数のサーバ装置から分散して配信された前記パケットを組み立てて前記コンテンツデータを再生する再生手段とを備えた情報処理装置であって、
前記配信要求手段は、
前記コンテンツデータを複数のブロックに分割した場合の前記ブロック毎に前記複数のサーバ装置に対応して前記ブロックを前記パケット単位に複数の領域に分割して割り当てるブロック領域配分手段と、
前記ブロック領域配分手段により分割されたブロック毎に前記複数の領域のそれぞれの配信要求を前記複数のサーバ装置に送信するブロック領域要求手段とを有し、
前記再生手段は、
前記ブロック領域要求手段により送信された前記配信要求に応じて前記複数のサーバ装置から配信された前記複数の領域に基づいて前記ブロックを再構成するブロック再構成手段を有することを特徴とする情報処理装置。
【請求項１５】
コンテンツデータの一部をパケット単位に配信する配信要求をネットワークを介してクライアント装置から受信し、受信された前記配信要求に応じて前記コンテンツデータの一部を前記パケット単位に前記クライアント装置に配信する配信ステップを含む方法をコンピュータに実行させるプログラムであって、
前記配信要求は、前記コンテンツデータを複数のブロックに分割した場合の前記ブロック毎に前記ブロックの一部の領域を指定するブロック領域情報を含み、
前記配信ステップは、
前記配信要求が受信されたとき、前記コンテンツデータを前記複数のブロックに分割するブロック分割ステップと、
前記ブロック領域情報に基づいて前記ブロック分割ステップで分割された前記ブロックの一部を配信するブロック領域配信ステップとを含むことを特徴とするコンピュータに実行させるプログラム。
【請求項１６】
コンテンツデータの一部をパケット単位に配信する配信要求をネットワークを介してクライアント装置から受信し、受信された前記配信要求に応じて前記コンテンツデータの一部を前記パケット単位に前記クライアント装置に配信する配信手段を備えた情報処理装置であって、
前記配信要求は、前記コンテンツデータを複数のブロックに分割した場合の前記ブロック毎に前記ブロックの一部の領域を指定するブロック領域情報を含み、
前記配信手段は、
前記配信要求が受信されたとき、前記コンテンツデータを前記複数のブロックに分割するブロック分割手段と、
前記ブロック領域情報に基づいて前記ブロック分割手段により分割された前記ブロックの一部を配信するブロック領域配信手段とを有することを特徴とする情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のサーバ装置から単一のクライアント装置にコンテンツデータを分散して配信するコンテンツ配信方法、並びに、このコンテンツ配信方法を実現するプログラムおよび情報処理装置に関する。
【背景技術】
【０００２】
従来、インターネットを利用したＶＯＤ（Video on Demand）サービスが提供されている。しかしながら、ビデオコンテンツはその容量が大きいため、サーバ・コンピュータやネットワーク回線に膨大な負荷がかかる。このため、画質を落としてコンテンツの容量を小さくする、多数のミラー・サーバを設ける、サーバ・コンピュータに近い回線やＩＳＰ（Internet Service Provider）との基幹回線を増強する等の対策が行われている。しかしながら、ビデオコンテンツの画質が低いというユーザの不満と、ネットワーク回線の高速化のための設備投資が莫大であるというサービス提供者、ネットワーク管理者の問題を残していた。
【０００３】
ところで、グリッドストレージのような分散ストレージ環境が出現しつつある。グリッドストレージは、多数のストレージをネットワークで結合し、全体で大きな一つのストレージに見えるように作られたいわゆる仮想ストレージである。グリッドストレージは、一般に企業のビジネス環境で利用され、各ストレージはＬＡＮ（Local Area Network）のような閉じた環境に置かれて使用されている。
【０００４】
近年、グリッドストレージの概念をＰ２Ｐ（Ｐeer to Ｐeer）ネットワークのようなオープン環境に応用したビット・トレント（Bit Torrent）が開示されている。従来のＰ２Ｐネットワークでは、ファイル単位でデータ交換が行われるに対し、ビット・トレントでは、ファイルを一定サイズのブロックに分割し、分割されたブロック単位でデータ交換が行われ、複数のブロックからファイルが再構成される。ビット・トレントは、ブロックで管理するグリッドストレージと考えられるが、ビット・トレントでは、所望のファイルを保有する複数のホストコンピュータをインターネットで検索し、検索された複数のホストコンピュータのそれぞれに異なるブロックを同時に要求することで、Ｐ２Ｐネットワーク環境におけるファイル転送の高速化を図っている。単なる１対１のＰ２Ｐネットワークでは、例えばホストコンピュータがＡＤＳＬ接続の場合、ＡＤＳＬ回線は上りの速度が遅いため、転送速度が低下してしまう。そこで、１つのファイルを複数のホストコンピュータから集めるようにすることで、転送速度を向上させている。
【０００５】
このようにサーバ・コンピュータやネットワーク回線の負荷を分散する方法として、例えば、コンテンツデータのパケットをピア・ツー・ピア・ネットワークの複数のピアから単一のピアに配信し、コンテンツ配信処理の負荷を分散するものや（特許文献１参照）、複数のピアが番組制作の基になる素材データをピア・ツー・ピア・ネットワークに公開し、受信側のピアが複数のピアから素材データを取得し、これらの素材データを組み合わせて番組コンテンツを生成するもの（特許文献２参照）が開示されている。
【特許文献１】特開２００４−１２７１６８号公報
【特許文献２】特開２００４−８０３０７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
上記のような分散環境をＶＯＤに利用すれば、サーバ・コンピュータやネットワーク回線の負荷が分散され、ファイル転送が高速に行われるが、ビデオコンテンツを配信する場合には、高画質を維持しようとすると、その容量が数ＧByte(ギガバイト)になるため、分散して配信されたデータを再構成するのに時間がかかり、リアルタイムの再生が困難になるといった問題を残していた。
【０００７】
本発明は、このような事情に鑑みなされたものであり、その目的は、大容量のコンテンツを配信してもリアルタイムの再生を行うことができるコンテンツ配信方法、プログラムおよび情報処理装置を提供するにある。
【課題を解決するための手段】
【０００８】
上記目的を達成するため、本発明のコンテンツ配信方法は、クライアント装置が、同一のコンテンツデータを分散してパケット単位に配信する配信要求をネットワークを介して複数のサーバ装置に送信する配信要求ステップと、前記複数のサーバ装置が、前記配信要求ステップで送信された前記配信要求に応じて前記ネットワークを介して前記コンテンツデータを分散して前記パケット単位に前記クライアント装置に配信する配信ステップと、前記クライアント装置が、前記配信ステップで前記複数のサーバ装置から分散して配信された前記パケットを組み立てて前記コンテンツデータを再生する再生ステップとを含むコンテンツ配信方法であって、前記配信要求ステップは、前記コンテンツデータを複数のブロックに分割した場合の前記ブロック毎に前記複数のサーバ装置に対応して前記ブロックを前記パケット単位に複数の領域に分割して割り当てるブロック領域配分ステップと、前記ブロック領域配分ステップで分割されたブロック毎に前記複数の領域のそれぞれの配信要求を前記複数のサーバ装置に送信するブロック領域要求ステップとを含み、前記配信ステップは、前記配信要求ステップで前記コンテンツデータの配信が要求されたとき、前記コンテンツデータを前記複数のブロックに分割するブロック分割ステップと、前記ブロック領域要求ステップで送信された前記配信要求に応じて前記ブロック分割ステップで分割された各ブロックの前記領域を配信するブロック領域配信ステップとを含み、前記再生ステップは、前記ブロック領域配信ステップで前記複数のサーバ装置から配信された前記複数の領域に基づいて前記ブロックを再構成するブロック再構成ステップを含むことを特徴とする。
【０００９】
また、本発明のコンピュータに実行させるプログラムは、同一のコンテンツデータを分散してパケット単位に配信する配信要求をネットワークを介して複数のサーバ装置に送信する配信要求ステップと、前記配信要求ステップで送信された前記配信要求に応じて前記複数のサーバ装置から分散して配信された前記パケットを組み立てて前記コンテンツデータを再生する再生ステップとを含む方法をコンピュータに実行させるプログラムであって、前記配信要求ステップは、前記コンテンツデータを複数のブロックに分割した場合の前記ブロック毎に前記複数のサーバ装置に対応して前記ブロックを前記パケット単位に複数の領域に分割して割り当てるブロック領域配分ステップと、前記ブロック領域配分ステップで分割されたブロック毎に前記複数の領域のそれぞれの配信要求を前記複数のサーバ装置に送信するブロック領域要求ステップとを含み、前記再生ステップは、前記ブロック領域要求ステップで送信された前記配信要求に応じて前記複数のサーバ装置から配信された前記複数の領域に基づいて前記ブロックを再構成するブロック再構成ステップを含むことを特徴とする。
また、本発明の情報処理装置は、同一のコンテンツデータを分散してパケット単位に配信する配信要求をネットワークを介して複数のサーバ装置に送信する配信要求手段と、前記配信要求手段により送信された前記配信要求に応じて前記複数のサーバ装置から分散して配信された前記パケットを組み立てて前記コンテンツデータを再生する再生手段とを備えた情報処理装置であって、前記配信要求手段は、前記コンテンツデータを複数のブロックに分割した場合の前記ブロック毎に前記複数のサーバ装置に対応して前記ブロックを前記パケット単位に複数の領域に分割して割り当てるブロック領域配分手段と、前記ブロック領域配分手段により分割されたブロック毎に前記複数の領域のそれぞれの配信要求を前記複数のサーバ装置に送信するブロック領域要求手段とを有し、前記再生手段は、前記ブロック領域要求手段により送信された前記配信要求に応じて前記複数のサーバ装置から配信された前記複数の領域に基づいて前記ブロックを再構成するブロック再構成手段を有することを特徴とする。
【００１０】
また、本発明のコンピュータに実行させるプログラムは、コンテンツデータの一部をパケット単位に配信する配信要求をネットワークを介してクライアント装置から受信し、受信された前記配信要求に応じて前記コンテンツデータの一部を前記パケット単位に前記クライアント装置に配信する配信ステップを含む方法をコンピュータに実行させるプログラムであって、前記配信要求は、前記コンテンツデータを複数のブロックに分割した場合の前記ブロック毎に前記ブロックの一部の領域を指定するブロック領域情報を含み、前記配信ステップは、前記配信要求が受信されたとき、前記コンテンツデータを前記複数のブロックに分割するブロック分割ステップと、前記ブロック領域情報に基づいて前記ブロック分割ステップで分割された前記ブロックの一部を配信するブロック領域配信ステップとを含むことを特徴とする。
また、本発明の情報処理装置は、コンテンツデータの一部をパケット単位に配信する配信要求をネットワークを介してクライアント装置から受信し、受信された前記配信要求に応じて前記コンテンツデータの一部を前記パケット単位に前記クライアント装置に配信する配信手段を備えた情報処理装置であって、前記配信要求は、前記コンテンツデータを複数のブロックに分割した場合の前記ブロック毎に前記ブロックの一部の領域を指定するブロック領域情報を含み、前記配信手段は、前記配信要求が受信されたとき、前記コンテンツデータを前記複数のブロックに分割するブロック分割手段と、前記ブロック領域情報に基づいて前記ブロック分割手段により分割された前記ブロックの一部を配信するブロック領域配信手段とを有することを特徴とする。
【発明の効果】
【００１１】
本発明によれば、クライエント装置は、所望のコンテンツデータを複数のブロックに分割した場合の前記ブロック毎に前記複数のサーバ装置に対応して前記ブロックを前記パケット単位に複数の領域に分割して割り当て、前記複数の領域のそれぞれの配信要求を前記複数のサーバ装置に送信し、前記配信要求に応じて前記複数のサーバ装置から配信された前記複数の領域に基づいて前記ブロックを再構成する。一方、サーバ装置は、前記コンテンツデータの配信が要求されたとき、前記コンテンツデータを前記複数のブロックに分割し、各ブロックの配信が要求されたとき、その配信要求に応じてそれぞれのブロックの前記領域をパケット単位に配信する。
このため、複数のサーバ装置のそれぞれにブロック毎に異なる領域を割り当ててコンテンツデータを配信することができるので、複数のサーバ装置の転送能力に応じて領域を配分し、効率良くコンテンツデータを配信することが可能となる。また、ブロックをパケット単位に管理することができるので、パケットが欠落した場合、リトライにより速やかに欠落したパケットを再送させることができ、これにより、ブロックの配信を効率的に行い、コンテンツデータの配信を高速に行うことができる。したがって、高画質なビデオコンテンツのような大容量のコンテンツを配信した場合、リアルタイム再生が可能となる。
【発明を実施するための最良の形態】
【００１２】
コンテンツ配信システムは、ネットワークを介して同一コンテンツデータを分散して複数のサーバ装置からクライアント装置に配信する。クライアント装置は、コンテンツデータを複数のブロックに分割した場合の前記ブロック毎に複数のサーバ装置に対応してブロックをパケット単位に複数の領域に分割して割り当て、ブロック毎に複数の領域のそれぞれの配信要求をそれぞれのサーバ装置に送信し、これらの配信要求に応じて複数のサーバ装置のそれぞれからパケット単位に配信された複数の領域に基づいてブロックを再構成する。一方、複数のサーバ装置は、コンテンツデータの配信が要求されたとき、前記コンテンツデータを前記複数のブロックに分割し、分割された各ブロックのそれぞれの領域をパケット単位に配信する。クライアント装置は、ブロック毎に複数のサーバ装置の転送能力を監視し、転送能力の高いサーバにブロック内の大きな領域を割り当てる。
【実施例１】
【００１３】
以下、本発明の実施例１のコンテンツ配信システムについて図面を参照して説明する。
実施例１のコンテンツ配信システムは、複数のサーバ装置がネットワークを介してクライアント装置に同一のコンテンツデータを分散してパケット単位に配信する。コンテンツデータは、例えば、コンピュータのアプリェーション等のファイルや、音声および画像のストリームデータから構成される。
【００１４】
図１は、実施例１のコンテンツ配信システムで配信されるコンテンツデータの構造を示す図である。
図１に示すように、コンテンツデータ１０は、３０９,７５６Byte単位に複数のブロック１２に分割される。分割された各ブロック１２には、先頭から昇順にブロック番号が割り当てられ、４Byteのブロックヘッダ１４としてブロック１２の前に付される。また、ブロック１２の後ろには、訂正用パリティ１６が付され、３５６,８６４Byteのブロック２０が構成される。ブロック２０は、訂正用パリティ１６が分散されるようにスクランブルされてブロック３０に変換される。ブロック３０は、１,３９４Byteの２５６個のパケット３２に分割される。各パケット３２には、先頭から昇順に０〜２５５のパケット番号が割り当てられる。パケット３２の前には、コンテンツＩＤ、ブロック番号、パケット番号からなる１２Byteのパケットヘッダ３４が付され、パケット４０が構成される。パケット４０がネットワークに送出される。
【００１５】
なお、ブロック１２やパケット４０等のデータ長は、上記の数値に限定されるものではない。また、エラー訂正用のパリティは、一部のパケット４０がエラーや遅延、転送路での破棄などでロスした場合に、リトライをなるべく避けるため、クライアント装置でロスしたパケット４０のデータを算出してエラー訂正処理を行うために使用される。
【００１６】
図２および図３は、実施例１のコンテンツ配信システムの概略構成を示す図である。
図２および図３に示すように、実施例１のコンテンツ配信システムは、ネットワーク５０に接続されたコンテンツ再生装置（クライアント装置）５２、コンテンツ提供装置（サーバ装置）５４および検索サービス提供装置５６を備える。
コンテンツ再生装置５２は、例えばパーソナルコンピュータや携帯情報端末から構成される。コンテンツ提供装置５４および検索サービス提供装置５６は、例えばパーソナルコンピュータから構成される。ネットワーク５０は、例えばインターネットや無線ネットワークから構成される。
なお、図２および図３において、説明を容易にするため、１台のコンテンツ再生装置５２と、２台のコンテンツ提供装置５４と、１台の検索サービス提供装置５６を図示しているが、実際には、コンテンツ再生装置５２は、ネットワーク５０上に無数に存在し、コンテンツ提供装置５４および検索サービス提供装置５６は、ネットワーク５０上に多数存在するものとする。
【００１７】
コンテンツ再生装置５２は、図２に示すように、所望のコンテンツデータ１０を分散してパケット単位に配信する配信要求データを２台のコンテンツ提供装置５４に送信し、送信された配信要求データに応じて２台のコンテンツ提供装置５４から分散して配信されたパケット４０を組み立てコンテンツデータ１０を再生する。
【００１８】
具体的には、コンテンツ再生装置５２は、コンテンツデータ１０が分散して配信されるようにブロック３０毎にコンテンツデータ１０の配信要求（ブロック領域要求データの送信）を行う。コンテンツ再生装置５２は、コンテンツデータ１０の配信中にコンテンツ提供装置５４および５６の転送能力、例えば転送レートやエラーレートを監視し、監視された転送能力に応じて２台のコンテンツ提供装置５４に要求するそれぞれのブロック３０のパケット３２（パケット４０）の数を設定する。コンテンツ再生装置５２は、設定されたパケット数に基づいて２台のコンテンツ提供装置５４に対応してブロック３０を分割してそれぞれに要求するブロック３０の領域を割り当てる。また、コンテンツ再生装置５２は、設定されたパケット数に基づいて２台のコンテンツ提供装置５４に要求するそれぞれのブロック３０の転送レートを設定する。コンテンツ再生装置５２は、設定された２台のコンテンツ提供装置５４のブロック３０のそれぞれの領域および転送レートにコンテンツＩＤ、ブロック番号を付加してブロック領域要求データをそれぞれ送信する。
【００１９】
例えば、コンテンツ再生装置５２は、コンテンツＩＤがＸ、ブロック番号がｙのパケット番号０〜１９１のパケット４０を転送レート３ｎで配信するブロック領域要求データを一方のコンテンツ提供装置５４に送信し、コンテンツＩＤがＸ、ブロック番号がｙのパケット番号１９２〜２５６のパケット４０を転送レートｎで配信するブロック領域要求データを他方のコンテンツ提供装置５４に送信する。
【００２０】
また、コンテンツ再生装置５２は、ブロック領域要求データに応じて２つのコンテンツ提供装置５４のそれぞれから送信された２つの領域に基づいてブロック１２を再構成し、コンテンツデータ１０を再生する。
【００２１】
コンテンツ提供装置５４は、図３に示すように、コンテンツ再生装置５２からの配信要求データに基づいてコンテンツデータ１０の一部をパケット４０に分解し、コンテンツ再生装置５２に配信する。
【００２２】
具体的には、コンテンツ提供装置５４は、コンテンツ再生装置５２からのコンテンツデータ１０の配信要求を受信したとき、コンテンツデータ１０を複数のブロック１２に分割する。また、コンテンツ提供装置５４は、コンテンツ再生装置５２からのブロック領域要求データを受信したとき、分割されたブロック１２にブロックヘッダ２０および訂正用パリティ１６を付加してブロック２０を構成し、ブロック２０にスクランブル処理を行いブロック３０に変換し、ブロック３０を２５６個のパケット３２に分解する。コンテンツ提供装置５４は、ブロック領域要求データのパケット番号で指定された領域のパケット３２にパケットヘッダ３４を付加してパケット４０を構成し、ブロック領域要求データの転送レートまたはこの転送レートに最も近い転送レートでパケット４０をコンテンツ再生装置５２に配信する。
【００２３】
例えば、一方のコンテンツ提供装置５４は、コンテンツＩＤがＸ、ブロック番号がｙのパケット番号０〜１９１のパケット４０を転送レート３ｎで配信するブロック領域要求データに基づいて対応するパケット４０をコンテンツ再生装置５２に配信し、他方のコンテンツ提供装置５４は、コンテンツＩＤがＸ、ブロック番号がｙのパケット番号１９２〜２５６のパケット４０を転送レートｎで配信するブロック領域要求データに基づいて対応するパケット４０をコンテンツ再生装置５２に配信する。
【００２４】
検索サービス提供装置５６は、多数のコンテンツ提供装置５４がそれぞれ配信可能なコンテンツデータを登録し、登録されたコンテンツデータを保有するコンテンツ提供装置５４を検索する検索データベース８５（図６）を記憶する。検索サービス提供装置５６は、所望のコンテンツデータを保有するコンテンツ提供装置５４を検索する検索要求をコンテンツ再生装置５２から受信したとき、検索データベース８５に基づいて所望のコンテンツデータを保有するコンテンツ提供装置５４を検索し、ヒットしたコンテンツ提供装置５４のリスト情報を作成し、コンテンツ再生装置５２に配信する。
【００２５】
コンテンツ再生装置５２は、検索サービス提供装置５８から配信されたリスト情報に基づいてコンテンツデータ１０の配信を要求するコンテンツ提供装置５４を選択し、配信要求を送信する。
【００２６】
図４は、図２および図３に示されるコンテンツ再生装置５２の構成を示す図である。
図４に示すように、コンテンツ再生装置５２は、例えばパーソナルコンピュータから構成され、バスを６０を介して相互に接続されたＣＰＵ６１、ＲＡＭ６２、ＨＤＤ（Hard Disk Drive）６３およびネットワークＩ／Ｆ６４を備える。
ネットワークＩ／Ｆ６４は、例えば、インターネットに接続されている。ＨＤＤ６４には、コンテンツデータ１０の配信を利用するコンテンツ再生プログラム６４がインストールされている。コンテンツ再生装置５２は、コンテンツ再生プログラム６４を起動してコンテンツデータ１０の配信を受ける。
【００２７】
ＣＰＵ６１によりコンテンツ再生プログラム６４が起動されると、ＲＡＭ６２にブロック用バッファ６５、デスクランブル・エラー訂正部６６、再生用バッファ６７およびデコーダ６８が構成される。
ブロック用バッファ６５は、ネットワークＩ／Ｆ６４を介して受信されたパケット４０を蓄積し、ブロック３０を再構成する。デスクランブル・エラー訂正部６６は、ブロック用バッファ６５で再構成されたブロック３０にスクランブル処理と逆の処理を行い、ブロック２０に変換し、ブロック２０の訂正用パリティ１６に基づいてブロック１２のエラー訂正処理を行う。再生用バッファ６７は、デスクランブル・エラー訂正部６６でエラー訂正処理が行われたブロック１２を蓄積する。デコーダ６８は、例えばＭＰＥＧデータのように圧縮されたコンテンツデータ１０を復号するものであり、コンテンツデータ１０の再生タイミングに合わせて再生用バッファ６７に蓄積されたブロック１２のデータを復号する。
【００２８】
図５は、図２および図３に示されるコンテンツ提供装置５４の構成を示す図である。
図５に示すように、コンテンツ提供装置５４は、例えばパーソナルコンピュータから構成され、バスを７０を介して相互に接続されたＣＰＵ７１、ＲＡＭ７２、ＨＤＤ（Hard Disk Drive）７３およびネットワークＩ／Ｆ７４を備える。
ネットワークＩ／Ｆ７４は、インターネットに接続されている。ＨＤＤ７４には、多数のコンテンツデータ１０からなるコンテンツデータ部７５が記憶されるとともに、コンテンツデータ部７５のコンテンツデータ１０を配信するためのコンテンツ提供プログラム７６がインストールされている。コンテンツ提供装置５４および５６は、コンテンツ提供プログラム７６を起動してコンテンツデータ部７５の多数のコンテンツデータ１０を配信する。
【００２９】
ＣＰＵ７１によりコンテンツ提供プログラム７６が起動されると、ＲＡＭ７２にブロック分割バッファ７７、スクランブル・エラー訂正部７８およびブロック用バッファ７９が構成される。
ブロック分割バッファ７７は、ＨＤＤ７４のコンテンツデータ部７５から読み出された配信すべきコンテンツデータ１０を複数のブロック１０に分割する。スクランブル・エラー訂正部７８は、ブロック分割バッファ７７で分割されたブロック１２にブロックヘッダ１２および訂正用パリティ１６を付加してブロック２０を構成し、スクランブル処理を行いブロック３０に変換する。ブロック用バッファ７９は、ブロック用バッファ７９は、スクランブル・エラー訂正部７８でスクランブル処理が行われたブロック３０を２５６個のパケット３２に分割し、分割されたパケット３２にパケットヘッダ３４を付加してパケット４０を構成する。パケット４０は、コンテンツ再生装置５２のブロック領域要求に応じて設定された転送レートに合わせてブロック用バッファ７９から読み出され、ネットワークＩ／Ｆ７４を介してインターネットに送出される。
【００３０】
図６は、図２および図３に示される検索サービス提供装置５６の構成を示す図である。
図６に示すように、検索サービス提供装置５６は、例えばパーソナルコンピュータから構成され、バスを８０を介して相互に接続されたＣＰＵ８１、ＲＡＭ８２、ＨＤＤ（Hard Disk Drive）８３およびネットワークＩ／Ｆ８４を備える。
ネットワークＩ／Ｆ８４は、インターネットに接続されている。ＨＤＤ８４には、検索データベース８５が記憶されている。検索データベース８５は、コンテンツデータ１０とコンテンツ提供装置５４とを関連付けたデータ部と検索処理を実行するためのプログラムとからなる。
【００３１】
ＣＰＵ８１により検索データベース８５が起動されると、ＲＡＭ８２に検索対象バッファ８６が構成される。検索対象バッファ８６には、検索処理でヒットしたコンテンツ提供装置の関連情報（例えばコンテンツ提供装置５４のＩＤ、コンテンツ提供装置の転送レート等）が蓄積され、リスト情報が作成される。検索対象バッファ８６に作成されたリスト情報は、ネットワークＩ／Ｆ８４を介してインターネットに送出される。
【００３２】
実施例１のコンテンツ配信システムでは、複数のコンテンツ提供装置５４のそれぞれにパケット番号で指定されるブロック３０の異なる領域が割り当てられ、複数のコンテンツ提供装置５４のそれぞれの転送レートでパケット４０が配信される。コンテンツ再生装置１２では、ブロック３０毎に複数のコンテンツ提供装置５４の転送能力が監視され、監視された転送能力に基づいてブロック３０の転送レートおよび領域が変更される。
【００３３】
図７は、転送レートの変更が必要な状況の一例を示す図である。
図７に示すように、一方のコンテンツ提供装置５４が転送レート３ｎでブロック１２のパケット番号０〜１９１の領域のパケット４０を配信し、１／３のパケット４０のロスが発生し、他方のコンテンツ提供装置５４が転送レートｎでブロック１２のパケット番号１９２〜２５５の領域のパケット４０を配信し、全てのパケット４０が到達したものとする。この場合、一方のコンテンツ提供装置５４が過負荷と判定し、一方のコンテンツ提供装置５４の転送レートを下げて領域を小さくするとともに、他方のコンテンツ提供装置５４の転送レートを上げて領域を大きくすれば、一方のコンテンツ提供装置５４のパケット４０がロスを減らし、双方のコンテンツ提供装置５４によりパケット４０を効率良く配信することができる。
【００３４】
図８は、実施例１のコンテンツ配信システムの動作を示すフローチャートである。
この例では、映画のような音声および画像を含むストリームデータからなるコンテンツデータ１０を配信する。コンテンツデータ１０は、その容量が大きいため、コンテンツデータ１０の先頭から転送を開始し、コンテンツデータ１０の転送中に既に転送が終了したブロック３０をリアルタイムに再生する。以下、１つのブロック３０を転送する動作を説明する。
【００３５】
まず、コンテンツ再生装置５２から検索サービス提供装置５６に所望のコンテンツデータ１０を保有するコンテンツ提供装置５４を検索する検索要求が送信され、この検索要求に応じて検索サービス提供装置５６からコンテンツ再生装置５２に配信され、コンテンツ再生装置５２によりリスト情報が取得される（ステップＳ１）。次に、コンテンツ再生装置５２では、リスト情報に基づいて複数のコンテンツ提供装置５４の中からコンテンツデータ１０を要求する複数のコンテンツ提供装置５４の候補が選択される（ステップＳ２）。
【００３６】
次に、コンテンツ再生装置５２では、選択された複数のコンテンツ提供装置５４の候補のリスト情報の転送レート基づいて要求する転送レートが設定される（ステップＳ３）。次に、コンテンツ再生装置５２では、実際に配信を要求するコンテンツ提供装置５４の全体の転送レートが設定され、ステップＳ３で設定された転送レートが大きいコンテンツ提供装置５４の候補から優先的に実際に要求する転送レートが割り当てられる（ステップＳ４）。次に、ステップＳ４で優先的に実際に要求する転送レートが割り当てられたコンテンツ提供装置５４にブロック３０の領域がパケット番号により割り当てられる（ステップＳ５）。次に、コンテンツ再生装置５２から複数のコンテンツ提供装置５４にそれぞれのブロック領域要求データ（コンテンツＩＤ、ブロック番号、領域、転送レート等）が送信される（ステップＳ６）。
【００３７】
次に、複数のコンテンツ提供装置５４からコンテンツ再生装置５２にそれぞれのブロック領域要求データに応じたブロック３０の領域のパケット４０がそれぞれの転送レートで配信される。コンテンツ再生装置５２では、ばらばらに配信されたパケット４０がＲＡＭ６２のブロック用バッファ６５に蓄積されて組み立てられ、ブロック３０が再構成され、デスクランブル・エラー訂正部６６によりデスクランブル処理およびエラー訂正処理が行われ、ブロックデータ１２の抽出が繰り返し試みられる（ステップＳ７）。抽出に成功すると、ブロックデータ１２は再生用バッファ６７にバッファリングされる。同時に、未着のパケット４０の到着時間が監視される。
【００３８】
次に、コンテンツ再生装置５２では、ステップＳ８で、ブロック３０の未着のパケット４０がタイムアウトした場合には、当該パケット４０のリトライ処理が行われ（ステップＳ９）、ステップＳ６に戻る。一方、ステップＳ７で、ブロック３０の全てのパケット４０が転送されてブロック３０が再構成された場合またはエラー訂正処理により未着のパケット４０のリカバリーが可能でブロック３０が再構成された場合には、再生用バッファ６７にバッファリングされたブロック２０のブロックデータ１２がデコーダ６８により再生タイミングに合わせて復号され再生され（ステップＳ１０）、次のブロック３０が有る場合には、ステップＳ２に戻り、次のブロック３０が無い場合には、処理を終了する。コンテンツ再生装置５２では、コンテンツ再生を開始しようとする際、コンテンツデータ１０の再生レートと再生用バッファ６７にデータが蓄積されるレートとが比較され、レート変動に耐え得る十分なデータが蓄積されたとき、コンテンツデータ１０の再生が開始される。
【００３９】
図９は、図８に示されるステップＳ２の一例を示すフローチャートである。
ステップＳ２では、まず、リスト情報に基づいて適切でないコンテンツ提供装置５４が除外され（ステップＳ１１）、除外されない残りの複数のコンテンツ提供装置５４の中から転送レートが高い順にコンテンツデータを要求する候補のコンテンツ提供装置５４が選択される（ステップＳ１２）。
【００４０】
ブロック３０のパケット数は２５６のため、配信要求が可能なコンテンツ提供装置５４は２５６台に制限される。実際には、１台のコンテンツ提供装置５４にある程度のパケット数を割り当てないと、転送要求のやり取りなどのオーバーヘッドがあるので、効率が低下する。このため、１台のコンテンツ提供装置５４に対し最低１６個のパケット４０を割り当てるとすると、２５６／１６＝１６台のコンテンツ提供装置５４に転送要求を送信することが可能となる。例えば、リスト情報に１０００台のコンテンツ提供装置５４があったとすると、その中から予備の候補を含め、２０台程度のコンテンツ提供装置５４の候補が選択される。
【００４１】
ステップＳ１１では、例えば、コンテンツ提供装置５４が前のブロック３０の転送時に１０Mbpsの転送レートでエラーの無い転送と１００％のロスとを繰り返していた場合、回線状況が不安定と判断して候補から除外する。
ステップＳ１２では、例えば、コンテンツデータ１０の配信中には、前のブロック３０の転送実績の良い、すなわち高い転送レートで安定して配信が行われたコンテンツ提供装置５４が優先して選択される。また、ブロック番号０の最初のブロックのときには、転送実績が無いので、ブロック３０の配信前にＮＡＴ越えなどの通信情報のやり取りがある場合には、その通信品質情報、例えばパケット４０の反応時間やエラーレート、転送路のルーター数から候補が選択される。選択するための情報がない場合には、検索順等の適当な方法により候補が選択される。
【００４２】
コンテンツ再生装置５２は、例えばコンテンツ提供装置５４の前回のコンテンツデータ１０の配信時の最終ブロックの転送レートやエラーレートをＨＤＤ６３にコンテンツ再生プログラム６４の一部として記憶しておくように構成することができる。ステップＳ１２では、例えば、ブロック番号０の最初のブロック３０の候補を選択するときには、ＨＤＤ６３に記憶された前回の転送レートやエラーレートに基づいて候補を選択し、前回の転送レートやエラーレートが記憶されていない場合には、リスト情報の転送レートに基づいて候補を選択することができる。
【００４３】
図１０は、図８に示されるステップＳ３の一例を示すフローチャートである。
ステップＳでは、まず、ステップＳ１２で優先して選択された最初の候補のコンテンツ提供装置５４が指定され（ステップＳ３１）、転送実績がない場合には（ステップＳ３２、ＮＯ）、適当な初期値、例えばリスト情報の半分程度の転送レートが転送レートとして設定される（ステップＳ３３）。
【００４４】
一方、転送実績がある場合には（ステップＳ３２、ＹＥＳ）、前のブロック３０の配信時にエラーが発生したかどうかが検出され（ステップＳ３４）、エラーが発生した場合には、他のコンテンツ提供装置５４にもエラーが発生したかどうかが検出され（ステップＳ３５）、エラーが発生しない場合には、前のブロック３０より低い転送レートが設定される（ステップＳ３６）。ステップＳ３５で、他のコンテンツ提供装置５４にもエラーが発生した場合には、前のブロック３０と同じ転送レートが設定される（ステップＳ３７）。
【００４５】
ステップＳ３４で、前のブロック３０の配信時にエラーが発生しない場合には、コンテンツ提供装置５４の前のブロック３０の転送レートがコンテンツ提供装置５４の最高の転送レート（例えば、リスト情報の転送レート）に設定されているかどうかが検出され（ステップＳ３８）、前のブロック３０の転送レートがすでに最高の転送レートに設定されている場合には、ステップＳ３７に進む。一方、ステップＳ３８で、前のブロック３０の転送レートが最高の転送レートに設定されていない場合には、前のブロック３０より高い転送レートが設定される（ステップＳ３９）。
【００４６】
次に、次の候補のコンテンツ提供装置５４がある場合には（ステップＳ４０、ＹＥＳ）、次の候補のコンテンツ提供装置５４が指定され（ステップＳ４１）、ステップＳ３２に戻る。一方、次の候補のコンテンツ提供装置５４がない場合には（ステップＳ４０、ＮＯ）、処理を終了し、図８のステップＳ４に進む。
【００４７】
例えば、１台目のコンテンツ提供装置５４には、前のブロック３０で転送レート３Mbpsが割り当てられ、その配信時にエラー（パケットロスやデータエラー）の発生がない場合、能力にまだ余裕がある可能性があるので、転送レートが例えば４Mbpsに上げられる。２台目のコンテンツ提供装置５４は、前のブロック３０で転送レート３Mbpsが割り当てられたが、１０％%のパケット４０がエラーになった場合には、転送レートが例えば２Mbpsに下げられる。ただし、他のコンテンツ提供装置５４にも同様に１０％程度のエラーが発生した場合は、ステップＳ４で対策が取られるので、ステップＳ３では、そのまま前の３Mbpsが割り当てられる。
【００４８】
図１１は、図８に示されるステップＳ４の一例を示すフローチャートである。
ステップＳ４では、まず、ステップＳ３で候補に選択されたコンテンツ提供装置５４を転送レートが高い順に並べ替えたリストが作成される（ステップＳ５１）。次に、コンテンツ再生装置５２の転送実績が検出され（ステップＳ５２）、転送実績がない場合には、コンテンツデータの再生レートに基づいて全体の転送レート（実際に配信要求するコンテンツ提供装置５４の全体の転送レート）が設定される（ステップＳ５３）。
【００４９】
一方、ステップＳ５２で、コンテンツ再生装置５２の転送実績が検出された場合には、前のブロック３０の配信でエラーが発生したかどうかが検出される（ステップＳ５４）。ステップＳ５４で、エラーが発生した場合には、他の多くの候補のコンテンツ提供装置５４にもエラーが発生したかどうかが検出され（ステップＳ５５）、多くの候補のコンテンツ提供装置５４にもエラーが発生した場合には、全体の転送レートが前のブロック３０よりも低く設定される。
【００５０】
一方、ステップＳ５５で、多くの候補のコンテンツ提供装置５４にはエラーが発生しない場合、および、ステップＳ５４で、前のブロック３０の配信でエラーが発生しない場合には、全体の転送レートが既に最高の転送レートに設定されているかどうかが検出される（ステップＳ５７）。ステップＳ５７で、全体の転送レートが最高の転送レートに設定されている場合には、全体の転送レートが前のブロック３０と同じ転送レートに設定され（ステップＳ５８）、全体の転送レートが最高の転送レートに設定されていない場合には、全体の転送レートが前のブロック３０より高い転送レートに設定される（ステップＳ５９）。
【００５１】
次に、ステップＳ５１で作成されたリストの優先度の高い順に、まず１番目の候補のコンテンツ提供装置５４にポインタが合わせられ（ステップＳ６１）、このコンテンツ提供装置５４が実際に配信を要求するコンテンツ提供装置５４として登録される（ステップＳ６２）。
【００５２】
次に、ポインタで指定され登録されたコンテンツ提供装置５４の転送レートとステップＳ５３、Ｓ５６、Ｓ５８またはＳ５９で設定された全体の転送レートとが比較され（ステップＳ６２）、全体の転送レートが登録されたコンテンツ提供装置５４の転送レートより大きい場合には、全体転送レートから登録されたコンテンツ提供装置５４の転送レートが減算され（ステップＳ６３）、次の候補のコンテンツ提供装置５４にポインタが合わせられ（ステップＳ６４）、ステップＳ６１に戻る。
一方、ステップＳ６２で、全体の転送レートが登録されたコンテンツ提供装置５４の転送レートより小さい場合には、登録されたコンテンツ提供装置５４の転送レートを全体転送レートに設定し（ステップＳ６３）、処理を終了してステップＳ５に進む。
【００５３】
例えば、３台のコンテンツ提供装置５４の転送レートが４Mbps、１０Mbps、２Mbpsである場合、優先順位は１０Mbps、４Mbps、２Mbpsになる。そして、コンテンツデータ１０の再生レートが３Mbpsの場合、オーバーヘッドやリトライを考慮して例えば８Mbps以上の全体転送レートが確保される。ただし、コンテンツ再生装置５２の回線の最大実効レートが１５Mbpsである場合には、１５Mbps以上の転送を要求すると、パケット４０のロスが発生するので、優先順位の高い方から１５Mbpsになるまで候補が選択される。上記の場合、転送レートが１０Mbpsおよび４Mbpsのコンテンツ提供装置５４が実際に配信を要求するコンテンツ提供装置５４として選択され、２Mbpsのコンテンツ提供装置５４は１Mbpsとして選択される。ただし、前回のブロック３０の転送時にほぼ全てのコンテンツ提供装置５４でエラーが発生した場合には、コンテンツ再生装置５２側の回線の実効レートが下がっていると判断され、合計転送レートが落とされる。例えば、合計転送レートを１０Mbpsに落とした場合、１０Mbpsのコンテンツ再生装置５２だけが選択される。
【００５４】
図１２は、図８に示されるステップＳ５の一例を示すフローチャートである。
ステップＳ５では、ステップＳ４で選択された優先順位が高い順に、まず、一番目のコンテンツ提供装置５４にポインタが合わせられ（ステップＳ７１）、ポインタで指定されるコンテンツ提供装置５４の転送レートが全体転送レートに占める割合に応じたパケット数が割り当てられ、ブロック３０の先頭から順にパケット番号が割り当てられる（ステップＳ７２）。そして、次のコンテンツ提供装置５４がある場合には（ステップＳ７３、ＹＥＳ）、次のコンテンツ提供装置５４にポインタが合わせられ（ステップＳ７４）、ステップＳ７２に戻る。一方、次のコンテンツ提供装置５４がない場合には（ステップＳ７３、ＮＯ）、処理を終了し、ステップＳ６に進む。
【００５５】
例えば、図２および図３のように、２台のコンテンツ提供装置５４にブロック３０のパケット数を３：１に割り当てた場合には、一方のコンテンツ提供装置５４には、パケット番号０〜１９１の領域が割り当てられ、他方のコンテンツ提供装置５４には、パケット番号１９２〜２５５の領域が割り当てられる。
【００５６】
図１３は、図８に示されるステップＳ６の一例を示すフローチャートである。
ステップＳ６では、まず、ブロック３０の領域が割り当てた優先順位が高い順に、まず、一番目のコンテンツ提供装置８１にポインタが合わせられ（ステップＳ８１）、ポインタで指定されるコンテンツ提供装置８１にブロック領域要求が送信される（ステップＳ８２）。そして、次のコンテンツ提供装置５４がある場合には（ステップＳ８３、ＹＥＳ）、次のコンテンツ提供装置５４にポインタが合わせられ（ステップＳ８４）、ステップＳ８２に戻る。一方、次のコンテンツ提供装置５４がない場合には（ステップＳ８３、ＮＯ）、処理を終了し、ステップＳ７に進む。
なお、コンテンツ提供装置８１では、ブロック領域要求で指定された転送レートになるように各パケット４０間の配信間隔が調整される。
【００５７】
図１４は、図８に示されるステップＳ７の一例を示すフローチャートである。
ステップＳ７では、コンテンツ再生装置５２では、ばらばらに配信されたパケット４０がＲＡＭ６２のブロック用バッファ６５に蓄積される（ステップＳ９１）。次に、ブロック３０の全てのパケット４０が蓄積されたかどうか検出される（ステップＳ９２）。ステップＳ９２で、全てのパケット４０が蓄積された場合には、エラー訂正が行われ（ステップＳ９３）、全てのパケット４０がそろったかどうかが検出され（ステップＳ９４）、全てのパケット４０がそろった場合には、処理を終了し、ステップＳ１０に進む。一方、ステップＳ９４で、一部のパケット４０がそろわない場合には、ステップＳ９のリトライ処理に進む。
【００５８】
一方、ステップＳ９２で、ブロック３０の一部のパケット４０が未着の場合にも、適宜エラー訂正が行われ（ステップＳ９５）、全てのパケット４０がそろったかどうかが検出され（ステップＳ９６）、全てのパケット４０がそろった場合には、処理を終了し、ステップＳ１０に進む。一方、ステップＳ９６で、一部のパケット４０がそろわない場合には、タイムアウトかどうか判定され（ステップＳ９７）、タイムアウトでない場合には、ステップＳ９１に戻る。一方、ステップＳ９７で、タイムアウトの場合には、ステップＳ９のリトライ処理に進む。このように、未着のパケット４０がある場合でも、エラー訂正によりブロック３０が再構成することができる。
【００５９】
図１５は、図８に示されるステップＳ９の一例を示すフローチャートである。
ステップＳ９では、まず、未着またはエラーのパケット４０がリトライ対象のパケット４０として登録される（ステップＳ１０１）。次に、優先順位が一番高いコンテンツ提供装置５４にポインタが合わせられる（ステップＳ１０２）。次に、ステップＳ７２で割り当てられたパケット数を超えないようにステップＳ１０１で登録されたリトライ対象のパケット４０がポインタにより指定されたコンテンツ提供装置５４に割り当てられ、パケット番号により領域が設定されてブロック領域要求が再送される（ステップＳ１０３）。そして、再送されない残りのリトライ対象のパケット４０があるかないかが検出され（ステップＳ１０４）、残りのリトライ対象のパケット４０がある場合には、次に優先順位が高いコンテンツ提供装置５４にポインタが合わせられ（ステップＳ１０３）、ステップＳ１０３に戻る。一方、ステップＳ１０４で、残りのリトライ対象のパケット４０がない場合には、リトライ処理を終了する。
【００６０】
このようにリトライ処理では、リトライ対象のパケット４０が発生した場合、リトライ対象のパケット４０を配信したコンテンツ提供装置５４に関係なく、配信の安定した優先順位が高いコンテンツ提供装置５４に再送を要求するので、再送されるパケット４０の転送エラーを低減することができる。したがって、パケット４０を効率良く配信し、ブロック３０の再構成処理を高速に行うことができる。
【００６１】
このように実施例１によれば、複数のコンテンツ提供装置５４にそれぞれの転送の能力に応じてブロック３０の領域を割り当ててコンテンツデータ１０を配信するので、コンテンツ提供装置５４やネットワーク回線の負荷を効率良く分散させることができる。また、コンテンツデータ１０は、時系列に複数のブロック３０に分割されるので、映画のようなストリームデータを時系列に確実に配信することができる。ブロック３０は、ブロック１２に訂正用パリティ１６が付加されて構成されるので、パケット４０の転送エラーの影響を低減することができる。さらに、コンテンツ再生装置５２は、ブロック３０毎に全体転送レートや各コンテンツ提供装置５４の転送レートを設定して帯域制御を行うので、コンテンツ再生装置５２側と各コンテンツ提供装置５４側のネットワーク回線の容量を適度（いっぱい過ぎず、スカスカでもない状態）な状態に保ち、分散されたネットワークの負荷を最小限にすることができる。したがって、例えば高画質なビデオコンテンツのような大容量のコンテンツデータ１０をリアルタイムで再生することが可能となる。
【図面の簡単な説明】
【００６２】
【図１】実施例１のコンテンツ配信システムで配信されるコンテンツデータの構造を示す図である。
【図２】実施例１のコンテンツ配信システムの概略構成を示す図である。
【図３】実施例１のコンテンツ配信システムの概略構成を示す図である。
【図４】図２および図３に示されるコンテンツ再生装置５２の構成を示す図である。
【図５】図２および図３に示されるコンテンツ提供装置５４および５６の構成を示す図である。
【図６】図２および図３に示される検索サービス提供装置５８の構成を示す図である。
【図７】転送レートの変更が必要な状況の一例を示す図である。
【図８】実施例１のコンテンツ配信システムの動作を示すフローチャートである。
【図９】図８に示されるステップＳ２の一例を示すフローチャートである。
【図１０】図８に示されるステップＳ３の一例を示すフローチャートである。
【図１１】図８に示されるステップＳ４の一例を示すフローチャートである。
【図１２】図８に示されるステップＳ５の一例を示すフローチャートである。
【図１３】図８に示されるステップＳ６の一例を示すフローチャートである。
【図１４】図８に示されるステップＳ７の一例を示すフローチャートである。
【図１５】図８に示されるステップＳ９の一例を示すフローチャートである。
【符号の説明】
【００６３】
５０……ネットワーク、５２，５４……コンテンツ提供装置、５６……コンテンツ再生装置、５８……検索サービス提供装置、６１……ＣＰＵ、６２……ＲＡＭ、６３……ＨＤＤ、６４……ネットワークＩ／Ｆ、６４……コンテンツ再生プログラム、６５……ブロック用バッファ、６６……デスクランブル・エラー訂正部、６７……再生用バッファ、６８……デコーダ。
【図１】
2006126894.tif 000003
【図２】
2006126894.tif 000004
【図３】
2006126894.tif 000005
【図４】
2006126894.tif 000006
【図５】
2006126894.tif 000007
【図６】
2006126894.tif 000008
【図７】
2006126894.tif 000009
【図８】
2006126894.tif 000010
【図９】
2006126894.tif 000011
【図１０】
2006126894.tif 000012
【図１１】
2006126894.tif 000013
【図１２】
2006126894.tif 000014
【図１３】
2006126894.tif 000015
【図１４】
2006126894.tif 000016
【図１５】
2006126894.tif 000017