【手続補正書】
【提出日】平成20年10月30日(2008.10.30)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
ピアツーピア（Ｐ２Ｐ）ネットワークでクライアントドリブンのマルチメディアストリーミングを提供するコンピュータ実行可能命令を記録するコンピュータ読み取り可能な記録媒体において、
前記コンピュータ実行可能命令は、
符号化されたメディアファイルを１又は複数のデータパケットを有するメディアヘッダとｎ個のデータパケットを備えるメディアボディに分離すること、
各データパケットを少なくとも１つのデータユニットに分離すること、
各データユニットをｋ個のオリジナルデータブロックに分離すること、
各データユニットの前記ｋ個のオリジナルデータブロックを消去符号化し、サービングピアのクラスタ内の複数の任意のサービングピアの各々に対して１からｋの消去コード化データブロックを生成し、これらのサービングピア上に、得られた消去コード化データブロックを格納すること、
消去コード化データブロックを取り出す前に利用可能なサービングピアの前記クラスタ内の前記サービングピアのリストを取り出すクライアントコンピュータを使用すること、
サービングピアの前記リスト内の各サービングピアの可用性ベクトルを取り出すことであって、前記可用性ベクトルが、少なくとも、消去コーディングキースペースの識別子と、前記対応するサービングピアの各データユニットの消去コード化データブロックの数を含むこと、
各データユニットに対して、クライアントコンピュータを使用して、前記クラスタ内の任意のサービングピアから計ｋ'個（ｋ'はｋ以上）の消去コード化データブロックを取り出すこと、
前記クライアントコンピュータを使用し、前記ｋ'個の取り出された消去コード化データブロックから各データユニットを再構築すること、
前記クライアントコンピュータを使用し、前記サービングピアの１つから前記メディアヘッダを取り出すこと、
前記クライアントコンピュータを使用し、前記再構築されたデータユニットから前記メディアボディの前記データパケットを再構築すること、
を含むことを特徴とするコンピュータ読み取り可能な記録媒体。
【請求項２】
最大距離分離可能（ＭＤＳ）消去コードを用いて、ｋ'をｋに等しくすることを特徴とする請求項１記載のコンピュータ読み取り可能な記録媒体。
【請求項３】
前記データユニットを消去コード化することは、各データユニットに対して、前記１からｋの消去コード化データブロックを生成するＭＤＳ消去コードであるリードソロモン消去コードを用いることを含むことを特徴とする請求項２記載のコンピュータ読み取り可能な記録媒体。
【請求項４】
前記クライアントコンピュータを用いて前記ｋ個の取り出された消去コード化データブロックから各データユニットを再構築することは、ｋ個の取り出された消去コード化データブロックの各セットにリードソロモン消去デコード動作を実行し、各データユニットを再構築することを含むことを特徴とする請求項３記載のコンピュータ読み取り可能な記録媒体。
【請求項５】
利用可能なサービングピアの前記クラスタ内の各サービングピアに、固定の消去コーディングキースペースを割り当てることを特徴とする請求項１記載のコンピュータ読み取り可能な記録媒体。
【請求項６】
利用可能なサービングピアの前記クラスタ内の各サービングピアに割り当てられる前記固定の消去コーディングキースペースは、サーバコンピュータによって決定されることを特徴とする請求項５記載のコンピュータ読み取り可能な記録媒体。
【請求項７】
利用可能なサービングピアの前記クラスタ内の各サービングピアに割り当てられる前記固定の消去コーディングキースペースは、各サービングピアにランダムに自己の消去コード化キーのセットを生成させることによって決定されることを特徴とする請求項５記載のコンピュータ読み取り可能な記録媒体。
【請求項８】
消去コード化データブロックを取り出す前に、前記クライアントコンピュータは、前記サービングピアの１又は複数の前記繰り返されたキーを無効にし、前記同一のキーの消去コード化データブロックのリクエストが前記同一の消去コード化キーを共有する複数の利用可能なサービングピアに行われないようにすることを特徴とする請求項５記載のコンピュータ読み取り可能な記録媒体。
【請求項９】
各消去コード化データブロックを取り出すためのクライアントリクエストは、対応する各データユニットのＩＤと、前記対応するデータユニットの開始消去コード化データブロックインデックスと、前記対応するデータユニットのために取り出される消去コード化データブロックの数を含むことを特徴とする請求項１記載のコンピュータ記録媒体。
【請求項１０】
前記再構築されたデータパケットのリアルタイムクライアントベースのデコーディングを提供し、１又は複数の前記サービングピアから前記クライアントへのストリーミングメディア伝送を提供することを含むことを特徴とする請求項１記載のコンピュータ読み取り可能な記録媒体。
【請求項１１】
前記再構築されたデータパケットのバッファされたクライアントベースのデコーディングを提供し、１又は複数の前記サービングピアから前記クライアントへのストリーミングメディア伝送を提供することを更に含み、前記バッファを使用して、ネットワークパケットロス及びジッタに対応するために、前記クライアントに十分な時間を提供することを特徴とする請求項１記載のコンピュータ読み取り可能な記録媒体。
【請求項１２】
前記サービングピアの前記リストを取り出すことは、前記サービングピアの一つから前記リストを取り出すこと、サーバコンピュータから前記リストを取り出すこと、及び、分散ハッシュテーブル（ＤＨＴ）参照を実行して前記サービングピアを識別することのいずれかを含むことを特徴とする請求項１記載のコンピュータ読み取り可能な記録媒体。
【請求項１３】
前記サービングピアの前記リストは、前記クライアントへの前記ストリーミングメディア伝送の間に周期的に更新されることを特徴とする請求項１記載のコンピュータ読み取り可能な記録媒体。
【請求項１４】
クライアント伝送リクエストとサービングピア伝送を含む、前記クライアントと各サービングピア間の通信は、ＴＣＰ通信プロトコルを用いて実行されることを特徴とする請求項１記載のコンピュータ読み取り可能な記録媒体。
【請求項１５】
前記クライアントと各サービングピアとの間の通信は、自動再送リクエスト（ＡＲＱ）プロトコルを使用し、欠落し又は遅延したパケットを再送することを特徴とする請求項１記載のコンピュータ読み取り可能な記録媒体。
【請求項１６】
前記符号化されたメディアファイルは、埋め込みコード化されていることを特徴とする請求項１記載のコンピュータ読み取り可能な記録媒体。
【請求項１７】
各サービングピアのサービング帯域幅を決定することを更に含み、生成され、各サービングピアに格納される消去コード化データブロックの数は、前記対応するサービング帯域幅と比例し、最大のｋ個のブロックにしたがって、前記メディアビットレートと反比例し、各サービングピアは、各サービングピアがサービング可能なコード化データブロックよりも多くのコード化データブロックを保持することを必要としないことを特徴とする請求項１記載のコンピュータ読み取り可能な記録媒体。
【請求項１８】
各サービングピアから取り出される消去コード化データブロックの数は、前記サービングピアの前記可用性ベクトルに応じて前記クライアントコンピュータによって決定され、前記サービングピアによって保持される消去コード化データブロックの数を含み、各サービングピアは、帯域幅をサービングし、各サービングピアは、各サービングピアが保持する消去コード化データユニットより多くの消去コード化データユニットを提供することを要求されないことを特徴とする請求項１７記載のコンピュータ読み取り可能な記録媒体。
【請求項１９】
前記各データパケットは、埋め込みコード化されており、各データユニットは、対応するビットレートを有することを特徴とする請求項１記載のコンピュータ読み取り可能な記録媒体。
【請求項２０】
各サービングピアのサービング帯域幅を決定することを更に含み、生成され、各サービングピアに格納される消去コード化データブロックの数は、前記対応するサービング帯域幅と比例し、最大のｋ個のブロックにしたがって、前記メディアビットレートと反比例し、各サービングピアは、各サービングピアがサービング可能なコード化データブロックよりも多くのコード化データブロックを保持することを必要としないことを特徴とする請求項１９記載のコンピュータ読み取り可能な記録媒体。
【請求項２１】
コンピューティングデバイスを使用して、ピアツーピア（Ｐ２Ｐ）ネットワーク内の１又は複数のクライアントにメディアをストリーミングする方法において、
符号化されたメディアファイルのデータパケットから生成された消去コード化データブロックのサブセットを複数の利用可能なサービングピアの各々に任意に分配すること、
各サービングピア上で、消去コーディングキースペースの識別子を少なくとも含み、前記対応するサービングピアによって保持される消去コード化データブロックの正確なサブセットを定義する可用性ベクトルを決定すること、
クライアントリクエストにしたがって、前記利用可能なサービングピアのリストをクライアントコンピュータに提供すること、
前記クライアントコンピュータ上で、リストアップされた各サービングピアの前記可用性ベクトルをダウンロードし、さらに１又は複数の前記サービングピアから前記符号化されたメディアファイルのメディアヘッダをダウンロードするために提供される利用可能なサービングピアの前記リストを使用すること、
前記クライアントコンピュータ上で、前記可用性ベクトルのクライアントコンピュータ分析と、利用可能なサービングピアの前記リストに基づいて、各データパケットの特定数の消去コード化データブロックの伝送を１又は複数の特定のサービングピアに要求すること、
前記データブロック伝送リクエストに応じて受信された各パケットをデコードしレンダリングし、前記クライアントコンピュータ上でリアルタイムストリーミングメディア再生を提供すること、
を含むことを特徴とする方法。
【請求項２２】
前記可用性ベクトルは、前記消去コーディングキースペースの識別子と、保持される各データパケットの消去コード化ブロックの数を少なくとも含むことを特徴とする請求項２１記載の方法。
【請求項２３】
前記符号化されたメディアファイルの消去コード化ブロックのサブセットを分配することは、
前記符号化されたメディアファイルのメディアボディをｎ個のデータパケットに分離すること、
各データパケットを１又は複数のデータユニットに分離すること、
各データユニットをｋ個のオリジナルデータブロックに分離すること、
各データユニットの前記ｋ個のオリジナルデータブロックを消去符号化し、各データユニットに対して１からｋ個の消去コード化データブロックを生成すること
を含むことを特徴とする請求項２１記載の方法。
【請求項２４】
消去コード化データブロックのサブセットを前記利用可能なサービングピアに任意に分配することは、各データユニットの１からｋの間の前記消去コード化データブロックを前記利用可能なサービングピアの各々に任意に格納することを含むことを特徴とする請求項２３記載の方法。
【請求項２５】
クライアントコンピュータを用いて、前記データブロック伝送リクエストに応じて受信された各パケットをデコーディングすることは、
前記取り出された消去コード化データブロックから各データユニットを再構築すること、
前記再構築されたデータユニットから前記メディアボディの前記データパケットを再構築すること、
前記再構築されたデータユニットを集め、前記符号化されたメディアファイルの復号化バージョンを提供すること、
を含むことを特徴とする請求項２１記載の方法。
【請求項２６】
前記ｋ個のオリジナルデータブロックを消去コード化することは、リードソロモン消去コードを用いて、各データユニットに対して前記１からｋ個の消去コード化データブロックを生成することを含むことを特徴とする請求項２３記載の方法。
【請求項２７】
各利用可能なサービングピアは、固定された消去コーディングキースペースに割り当てられることを特徴とする請求項２１記載の方法。
【請求項２８】
各利用可能なサービングピアに割り当てられた前記固定された消去コーディングキースペースは、サーバコンピュータによって決定されることを特徴とする請求項２７記載の方法。
【請求項２９】
各サービングピアは、自己の固定された消去コーディングキースペースをランダムに生成することを特徴とする請求項２７記載の方法。
【請求項３０】
前記クライアントコンピュータは、前記サービングピア内の１又は複数の繰り返されたキーを無効にし、前記同一キーの消去コード化データブロックのリクエストが複数の利用可能なサービングピアに行われないようにすることを特徴とする請求項２７記載の方法。
【請求項３１】
前記クライアントコンピュータ上の各パケットの前記デコーディング及びレンダリングは、少なくとも部分的にバッファされることを特徴とする請求項２１記載の方法。
【請求項３２】
前記クライアントコンピュータをサービングするために利用可能な各サービングピアのサービング帯域幅を決定することを更に含むことを特徴とする請求項２１記載の方法。
【請求項３３】
各サービングピアへ消去コード化データブロックのサブセットを任意に分配することは、複数の消去コード化データブロックを各サービングピアの前記サービング帯域幅に比例する各サービングピアに分配することを更に含むことを特徴とする請求項３２記載の方法。
【請求項３４】
特定のサービングピアから伝送されるようにリクエストされる消去コード化データブロックの前記特定数は、特定のサービングピアの前記サービング帯域幅に比例することを特徴とする請求項３２記載の方法。
【請求項３５】
１又は複数の非協働ピアから１又は複数のクライアントへの受信側ドリブンのメディアストリームの調整を提供するシステムにおいて、
符号化されたメディアファイルを１又は複数のデータパケットを備えるメディアヘッダとｎ個のデータパケットを備えるメディアボディに分離し、１又は複数の利用可能なサービングピアに前記メディアヘッダを格納するモジュールと、
各データパケットを１又は複数のデータユニットに分離するモジュールと、
各データユニットをｋ個のオリジナルデータブロックに分離するモジュールと、
各利用可能なサービングピアに対して、各データパケットの前記ｋ個のオリジナルデータブロックを消去符号化し、各データユニットに対して１からｋ個の消去コード化データブロックを生成し、前記１からｋ個の消去コード化データブロックを前記対応するサービングピアの各々に格納するモジュールと、
各サービングピア上で、消去コーディングキースペースの識別子及び前記対応するサービングピアによって保持される各データパケットの消去コード化データブロックの数を少なくとも定義する可用性ベクトルを決定するモジュールと、
クライアントリクエストに応じて前記利用可能なサービングピアのリストをクライアントコンピュータに提供するモジュールと、
前記クライアントコンピュータ上で、前記サービングピアの１つから前記メディアヘッダを取り出すモジュールと、
前記クライアントコンピュータ上で、各リストアップされたサービングピアの前記可用性ベクトルをダウンロードするモジュールと、
前記クライアントコンピュータ上で、前記サービングピアの１つから前記メディアヘッダをダウンロードするモジュールと、
前記クライアントコンピュータ上で、１又は複数の前記利用可能なサービングピアのセットから各データユニットの計ｋ'個（ｋ'はｋ以上）の消去コード化データブロックのダウンロードをリクエストする前記可用性ベクトルを用いるモジュールと、
前記クライアントコンピュータを使用し、前記ｋ'個のダウンロードされた消去コード化データブロックから各データユニットを再構築するモジュールと、
前記クライアントコンピュータを使用し、前記再構築されたデータユニットから前記メディアボディの前記データパケットを再構築するモジュールと、
を備えることを特徴とするシステム。
【請求項３６】
前記再構築されたデータパケットのリアルタイムクライアントベースのデコーディングを提供し、１又は複数の前記サービングピアから前記クライアントにストリーミングメディア伝送を提供するモジュールを更に備えることを特徴とする請求項３５記載のシステム。
【請求項３７】
ネットワークパケット欠落およびジッタに自動的に対応するため十分な時間を有する前記クライアントを提供するために前記再構築されたデータパケットのバッファされたクライアントベースのデコーディングを提供するモジュールを更に備えることを特徴とする請求項３５記載のシステム。
【請求項３８】
前記ｍ個のデータユニットを消去コード化することは、リードソロモン消去コードを用いて、各データユニットに対して前記ｋ個の消去コード化データブロックを生成することを含むこと特徴とする請求項３５記載のシステム。
【請求項３９】
前記クライアントコンピュータを用いて、前記ｋ個の取り出された消去コード化データブロックから各データユニットを再構築することは、ｋ個の取り出された消去コード化データブロックの各セットにリードソロモン消去デコーディング動作を実行し、各データユニットを再構築することを含むこと特徴とする請求項３６記載のシステム。
【請求項４０】
各利用可能なサービングピアは、固定された消去コーディングキースペースを割り当てられていることを特徴とする請求項３５記載のシステム。
【請求項４１】
各利用可能なサービングピアに割り当てられた前記固定されたコーディングキースペースは、サーバコンピュータによって自動的に決定されることを特徴とする請求項４０記載のシステム。
【請求項４２】
各利用可能なサービングピアに割り当てられる前記固定されたコーディングキースペースは、各サービングピアに自己の消去コード化キーをランダムに生成させることによって決定されることを特徴とする請求項４０記載のシステム。
【請求項４３】
前記クライアントコンピュータは、前記消去コーディングキースペースに繰り返されるキーを有する前記利用可能なサービングピアの１又は複数のキーを無効にすることを特徴とする請求項４０記載のシステム。
【請求項４４】
前記消去コード化データブロックの、前記クライアントによりリクエストされたダウンロードは、各対応するデータユニットのＩＤと、前記対応するデータユニットの開始ブロックインデックスと、前記対応するデータユニットのために取り出される消去コード化データブロックの数を含むことを特徴とする請求項３５記載のシステム。
【請求項４５】
各々の前記対応するサービングピア上の消去コード化データブロックの数である１からｋの数は、各サービングピアのサービング帯域幅に比例することを特徴とする請求項３５記載のシステム。
【請求項４６】
ｋ'個の消去コード化データブロックのｋ'個のリクエストされたダウンロードは、各サービングピアのサービング帯域幅に比例することを特徴とする請求項３５記載のシステム。