JP4690387B2 - 好ましくはストリーミング・システムに適用される配布方法 - Google Patents

好ましくはストリーミング・システムに適用される配布方法 Download PDF

Info

Publication number
JP4690387B2
JP4690387B2 JP2007504252A JP2007504252A JP4690387B2 JP 4690387 B2 JP4690387 B2 JP 4690387B2 JP 2007504252 A JP2007504252 A JP 2007504252A JP 2007504252 A JP2007504252 A JP 2007504252A JP 4690387 B2 JP4690387 B2 JP 4690387B2
Authority
JP
Japan
Prior art keywords
data
peers
peer
live streaming
input data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2007504252A
Other languages
English (en)
Other versions
JP2007529832A (ja
Inventor
アルストルプ,ステフェン
ラウヘ,テイス
Original Assignee
コデマテ エー/エス
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by コデマテ エー/エス filed Critical コデマテ エー/エス
Publication of JP2007529832A publication Critical patent/JP2007529832A/ja
Application granted granted Critical
Publication of JP4690387B2 publication Critical patent/JP4690387B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/61Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio
    • H04L65/611Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio for multicast or broadcast
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/1066Session management
    • H04L65/1101Session protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/06Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1087Peer-to-peer [P2P] networks using cross-functional networking aspects
    • H04L67/1091Interfacing with client-server systems or between P2P systems
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0056Systems characterized by the type of code used
    • H04L1/0057Block codes

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Multimedia (AREA)
  • Computing Systems (AREA)
  • Business, Economics & Management (AREA)
  • General Business, Economics & Management (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Information Transfer Between Computers (AREA)
  • Computer And Data Communications (AREA)

Description

本発明は、請求項1によるネットワークに関する。
例えばインターネットを介したビデオおよび/または音声ストリーミングなどに関する問題は、一般の送信システムがかなり複雑な制御およびデータ帯域幅を必要とすることである。
IEEE Transactions on Information Theory paper"A Linear Time Erasure−Resilient Code With Nearly Optimal Recovery"by Alon and Luby,1996 Internet Society RFC−document 3453"The Use of Forward Error Correction(FEC) in Reliable Multicast"by Luby et al,2002 米国特許第6,307,487号 米国特許第6,320,520号 米国特許第6,373,406号 米国特許第6,411,223号 米国特許第6,486,803号 米国特許第6,614,366号
本発明は、少なくとも1つのデータ・ライブ・ストリーミング・ブロードキャスタLSBおよび少なくとも2つのライブ・ストリーミング受信側LSRを含むデータ・ライブ・ストリーミング・システムであって、
前記少なくとも2つのライブ・ストリーミング受信側LSRがピアツーピア・ストリーミング・ネットワークの少なくとも一部分を形成し、
前記少なくとも2つのライブ・ストリーミング受信側LSRがそれぞれ、前記ピアツーピア・ストリーミング・ネットワークの他のライブ・ストリーミング受信側LSRへのピアツーピア・ストリーミングを生成する手段を含み、他のストリーミング受信側LSRへの前記ピアツーピア・ストリーミングが、前記少なくとも1つのライブ・ストリーミング・ブロードキャスタLSBからのデータの損失耐性のあるコード表現(loss resilient code representation)を含む、データ・ライブ・ストリーミング・システムに関する。
一般にコード・セグメントの形の損失耐性のあるコード表現の一般的な手法によれば、これらのコードは、広義には、入力データを、主として任意に選択されたコード・セグメントの数が完全な入力データを再現するのに十分であり得る、損失耐性のあるコードのコード・セグメント数に変調することができるコードを指す。この数は、例えばリードソロモンベースのコードを使用する場合、予め定められた数に固定されてもよく、あるいは、例えばLTベースのコードと関連する何らかの所望の閾値に対応する数としてもよい。一般に、入力データの再現、すなわち復号化にそれ以上のコード・セグメントが当然として適用され得ることが実情であるが、コード・セグメントのこうした使用は一般に不必要とみなされる。
一般に、データ・ライブ・ストリーミング・システムは、流されたデータがある遅延、好ましくは非常に低い遅延と同期されるように、データをいくつかの受信側に流すシステムを指す。同期は、例えば音声および/またはビデオの従来の一斉送信のものと似た性質の、例えばインターネットや例えばイントラネットなどのデータ送信を介した何人かのユーザへの一斉送信を容易にする。
本発明によれば、ピアツーピア・ネットワークは、広義には、全体的なシステム機能に貢献することによってすべてのピアが参加するピアの任意のネットワークとして理解される。したがって、本発明の意味でのピアツーピア・ネットワークは、例えばグリッド技術ベースのネットワーク、個々のピアがどれほどでもシステム機能に貢献するサーバベースのネットワーク、個々のピアがシステム機能に等しく貢献するネットワークなどを含む。
本発明のデータ・ライブ・ストリーミング・システムは、実際には、5,5.000、1.000.000、500.000.000など、任意の数のライブ・ストリーミング受信側LSRとともに使用することができる。より多くの受信側にサービスが提供されるほど、利点が際だつようになるが、システムは、5、10、20人の参加者のテレビ電話会議にも、30.000、300.000、3.000.000人の視聴者がいる生のTV番組の場合にも、同様に使用することができる。
本発明によって使用される符号化アルゴリズムは、消去コードまたは損失耐性のあるコードとも呼ばれる任意の種類の順方向誤り訂正符号に基づいてもよく、またはそのうちの必ずしも固定されていないあるサイズの実質的に任意のサブセットのみが入力を再現できるように必要とされる、入力に基づいていくつかのパケットの生成を可能にする他の任意のタイプのコードに基づいてもよい。こうしたコードには、例えばリードソロモンベースのコード、トルネードベースのコード、LTベースのコード、Raptorコードなどがある。その他の適したコードのタイプは、IEEE Transactions on Information Theory paper“A Linear Time Erasure−Resilient Code With Nearly Optimal Recovery”by Alon and Luby,1996、Internet Society RFC−document 3453“The Use of Forward Error Correction(FEC) in Reliable Multicast”by Luby et al,2002、およびDigital Fountain,Inc.の特許、米国特許第6,307,487号、米国特許第6,320,520号、米国特許第6,373,406号、米国特許第6,411,223号、米国特許第6,486,803号、および米国特許第6,614,366号などの文献に記載されており、参照により本明細書に組み込まれる。
さらに、本発明によれば、ライブ・ストリーミングという用語は広義に理解されることに留意されたい。したがって、これは、基本的に、少なくとも次の2つの状況、例えば、生のTV番組、サッカーの試合やデータ取得装置からデータを流すときなど、情報が流されるのと実質的に同時に情報が利用可能になるが、必ずしも受信側によって同時にモニタに表示されたり、使用されたりするとは限らず、すなわち将来使用するためにその情報を受信側の場所に格納し、および/またはすぐに表示し、したがってストリーミングが情報の作成に実質的に同期されることを得る第1のセットアップ、およびブロードキャスタが、映画、音声ファイル、コンピュータ・プログラムなど、格納されている情報にアクセスでき、情報が受信側によって表示または使用されるのと実質的に一致して流される、すなわちストリーミングが情報の実際の使用に実質的に同期される第2のセットアップに適用され得る。これらのセットアップの間に、またはこれらのセットアップに加えて、ライブ・イベントのタイムシフト・ストリーミングなどさらにいくつかの可能性がある。本発明によるライブ・ストリーミングの用語の範囲内のその他のセットアップは、いくつかの受信側が、ライブ・イベント、映画、データベース・アップデート、コンピュータ・プログラムなど、ストリームの内容とは無関係に、実質的に同期してストリームを受信することを含む。
本発明の一実施形態に従って、前記少なくとも2つのライブ・ストリーミング受信側LSRのそれぞれが、他のストリーミング受信側へのピアツーピア・ストリーミングを生成する前記手段によって入力データIの少なくとも1つの一意の部分的な符号化表現(unique partial encoded representation)UPRを提供する場合、本発明の有利な一実施形態が得られている。
本発明の一実施形態に従って、前記一意の部分的な符号化表現UPRのうちの少なくとも2つがデータの完全な表現を形成する場合、本発明の有利な一実施形態が得られている。
本発明によれば、様々な損失耐性のあるコード化技術を適用することができ、さらに、技術の様々な寸法係数を適用することができる。したがって、入力データの符号化は、一般に、選択された適した最低数のコード・セグメントによって表されるように寸法設定することができる。例えば、ブロードキャスタを元とするデータである入力データを、例えば最低100個のコード・セグメントによって表すことができる。一般に、こうした場合、コード・セグメントの受信側が生成されたコード・セグメントのサブセット、すなわち最低数のサブセットのみを選択し、使用できるように、選択された最低数のコード・セグメントより多くのコード・セグメントが生成されなければならない。このように、コード・セグメントの損失、またはある所望のコードを選択または取得する自由を得ることができる。最低数は、特定の数、または符号化されたコード・セグメントの数に関連する割合の両方を指し得る。したがって、損失耐性のあるコード化技術は、大量のコード・セグメントの生成を容易にするが、生成された損失耐性のあるセグメントの数は、好ましい実施形態では、例えば64個の損失耐性のあるセグメントから完全な表現が確立され得るセットアップにおいて、参加しているピア当たり、例えば8個である。しかし、特定の実施形態の特定の例での損失耐性のあるセグメントの好ましい数は、データ・サイズ、ネットワーク・タイプ、ダウンロード、アップロード、および一般にピアごとに異なる個々のピアの処理能力、好ましいデータ・レートなど、いくつかのパラメータにかなり依存する。
本発明の一実施形態に従って、他のストリーミング受信側へのピアツーピア・ストリーミングを生成する前記手段が、実質的に、入力データIのM個の一意の部分的な符号化表現UPRを提供し、ライブ・ストリーミング・ブロードキャスタLSBから流されたデータがN個の一意の部分的な符号化表現UPRのサブセットによって完全に、または概ね表される場合、本発明の有利な一実施形態が得られている。
本発明の一実施形態に従って、個数Mが実質的にライブ・ストリーミング受信側LSRの数に対応する場合、本発明の有利な一実施形態が得られている。
本発明の一実施形態に従って、少なくとも1つのライブ・ストリーミング・ブロードキャスタLSBから流されたデータが、リードソロモンベースの損失耐性のあるコード・セグメントによって符号化されるN個の一意の部分的な符号化表現UPRのサブセットによって完全に表される場合、本発明の有利な一実施形態が得られている。
本発明の一実施形態に従って、ライブ・ストリーミング・ブロードキャスタLSBから流されたデータが、LTベースの損失耐性のあるコード・セグメントによって符号化されるN個の一意の部分的な符号化表現UPRのサブセットによって概ね表される場合、本発明の有利な一実施形態が得られている。
本発明の一実施形態に従って、前記少なくとも2つのライブ・ストリーミング受信側LSRのうちの少なくとも1つが、データのN個の一意の部分的な符号化表現UPRを復号することによって、前記ライブ・ストリーミング・ブロードキャスタLSBからの符号化データを再生成し、前記N個の一意の部分的な符号化表現UPRのうちの少なくとも1つ、好ましくは少なくとも10個が他のライブ・ストリーミング受信側LSRによって生成される場合、本発明の有利な一実施形態が得られている。
本発明の一実施形態に従って、データの前記損失耐性のあるコード表現がフレームで提供される場合、本発明の有利な一実施形態が得られている。
本発明の一実施形態に従って、前記フレームが、前記ライブ・ストリーミング・ブロードキャスタLSBによって実質的に生成され、連続して送信されるタイム・フレームを含む場合、本発明の有利な一実施形態が得られている。
本発明の一実施形態に従って、前記少なくとも1つのライブ・ストリーミング・ブロードキャスタLSBへのデータのストリーミングが連続するフレームで構築され、実質的に、各フレームが、前記少なくとも2つのライブ・ストリーミング受信側LSRへのデータ表現の初期送信によって開始され、前記少なくとも2つのライブ・ストリーミング受信側LSRが前記データ表現またはその派生物を、損失耐性のあるコード・セグメントとして他のライブ・ストリーミング受信側LSRに流し、受信側が、N個の一意の損失耐性のあるコード・セグメントを集め、前記少なくとも1つのライブ・ストリーミング・ブロードキャスタLSBから送信された前記フレームを、ライブ・ストリーミング信号として再生成する場合、本発明の有利な一実施形態が得られている。
本発明の一実施形態に従って、前記ピアツーピアがグリッドベースのシステムを含む場合、本発明の有利な一実施形態が得られている。
本発明の一実施形態に従って、前記データがビデオおよび/または音声ストリームを含む場合、本発明の有利な一実施形態が得られている。
本発明は、
少なくとも1つの入力データIブロードキャスタIBと、
入力代表データIRDを前記少なくとも1つの入力ブロードキャスタIBから入力データIの複数のM個の一意の部分的な符号化表現UPRに変換する複数のピアPとを含むネットワークであって、
前記M個の一意の部分的な符号化表現の複数のコード・サブセットW1,W2,W3,..が前記入力データIの異なるN個の一意の部分的な符号化表現UPRを含み、各サブセットW1,W2,W3,..が前記入力データIを表し、NがM―1未満である、ネットワークにさらに関する。
本発明によれば、複数のコード・サブセットは、一般に非常に大きい数を含み、ほとんど一般的に、こうしたサブセットは、一般に、使用可能なM個の異なる一意の部分的な符号化表現UPRのいずれの中から選択することができる。
ネットワークがデータの全体的な所望の非中央の符号化/復号化を行うように構成されていないピアをさらに含み得ることに留意されたい。
さらに、N個の一意の部分的な表現とは、正しくは最低数の表現を指し、さらに、そのように望まれる場合、一般に重複した表現がサブセットに含まれてもよいことに留意されたい。
本発明の好ましい実施形態によれば、一意の部分的な符号化表現は、表現が一意のキーによって符号化されるという意味で一意である。
当然、時として現在適用されているコード化の定理にもよるが、生成された部分的な符号化表現の任意のユーザが実際に、必要な符号化情報を、情報の重複がほとんどなく、または好ましくは情報の重複無しで確実に受信するために、一意の部分的な符号化表現の配布を、非常にわずかの中央制御によって、または中央制御無しでさえ行うことができることは、本発明のかなり有利な特徴である。言い換えれば、少なくとも1つのコード・サブセットを集めようとしている考え得るユーザは、実際に、最終的にN個の、または少なくとも1つの主要な任意の部分的な符号化表現を集めることを選択し、次いで適用されたコード化の定理に従って復号することによって、完全な入力が確立され得ることを認識することができる。この特徴は、使用可能なすべての部分的な符号化表現が一意である、すなわち少なくとも一意のキーによって生成されたという事実に基づいている。したがって、入力データのリードソロモンベースの符号化の場合、特定の数、N個の一意の任意の部分的な符号化表現が集められ、これによって完全な入力データの再現を可能にすることができる。異なるピアが重複した符号化表現を生成した場合はそうではない。
しかし、本発明に従ってサブネットワークが個々に動作するように、いくつかのネットワークを結合することができることに留意されたい。このように、サブネットワーク間のこうした部分的な符号化表現の任意の通信を阻止することによって、部分的な符号化表現の一意性を確実にすることができる。サブネットワークは、例えば、インターネットの地理的に決定された部分を含み得る。
本発明によって使用される符号化アルゴリズムは、消去コードまたは損失耐性のあるコードとも呼ばれる任意の種類の順方向誤り訂正符号に基づいてもよく、またはそのうちの必ずしも固定されていないあるサイズの実質的に任意のサブセットのみが入力を再現できるように必要とされる、入力に基づいていくつかのパケットの生成を可能にする他の任意のタイプのコードに基づいてもよい。こうしたコードには、例えばリードソロモンベースのコード、トルネードベースのコード、LTベースのコード、Raptorコードなどがある。その他の適したコードのタイプは、IEEE Transactions on Information Theory paper“A Linear Time Erasure−Resilient Code With Nearly Optimal Recovery”by Alon and Luby,1996、Internet Society RFC−document 3453“The Use of Forward Error Correction(FEC) in Reliable Multicast”by Luby et al,2002、およびDigital Fountain,Inc.の特許、米国特許第6,307,487号、米国特許第6,320,520号、米国特許第6,373,406号、米国特許第6,411,223号、米国特許第6,486,803号、および米国特許第6,614,366号などの文献に記載されており、参照により本明細書に組み込まれる。
本発明の一実施形態に従って、前記入力ピアのそれぞれが入力データIの前記M個の一意の部分的な符号化表現UPRのうちの1つを生成する場合、本発明の有利な一実施形態が得られている。
本発明の一実施形態に従って、前記コード・サブセットW1,W2,W3..のうちの少なくとも1つ、好ましくはすべてが前記入力データIの符号化バージョンを表す場合、本発明の有利な一実施形態が得られている。
本発明によれば、許可されたユーザにより、または少なくとも暗黙的に、まずは、プッシュ技術またはプル技術によってコード・サブセットを集め、次いで最終的にコード・サブセットを復号することによって、好ましくは完全な入力データが復号可能でなければならない。ユーザは、入力データの復号化バージョンまたは表現がいわゆるユーザにとって理解できるような程度に情報を実際に復号するために、例えば、符号化についての、または少なくとも促進された復号化についての十分な情報を有しているピアとすることができる。一般に、適したコード構造は、符号化された入力データを完全に復号化し得ることを容易にする。
本発明の一実施形態に従って、前記コード・サブセットW1,W2,W3..のうちの少なくとも1つがLTベースのコードによって符号化される場合、本発明の有利な一実施形態が得られている。
本発明の一実施形態に従って適用可能ないくつかの符号化技術のうちの1つは、いわゆるLTコードまたはトルネード・コードである。コード・サブセットがこうしたコード化技術によって符号化された一意の部分的な符号化表現を含む場合、こうしたコードの部分的な表現の復号は、一般に、サブセットがコード化された入力データより多くのデータ・コンテンツに対応する符号化されたデータ・パケットを含むことを必要とする。コード・サブセットの必要な使用可能なデータ・パケットの範囲は、少なくともコード・サブセットが一意の部分的な符号化表現である限り、主に、選択され適用されたコード化方法に関連付けられているいわゆる閾値に依存する。
本発明の一実施形態に従って、前記コード・サブセットW1,W2,W3..のうちの少なくとも1つがリードソロモンベースのコードによって符号化される場合、本発明の有利な一実施形態が得られている。
本発明の一実施形態に従って、前記ネットワークが、前記サブセットW1,W2,W3..のうちの少なくとも1つを集め、前記サブセットW1,W2,W3..のうちの少なくとも1つを、符号化データに対応するデータに復号することができる、少なくとも2つの受信側ピアRPを含む場合、本発明の有利な一実施形態が得られている。
本発明によれば、集められたコード・サブセットは、ユーザ、すなわち符号化された入力データを再生成するための受信側ピアRPによって有利に集めることができる。言い換えれば、ブロードキャスタから受信側ピアへの入力データの送信が得られ、入力ブロードキャスタ以外の複数のピアによって実行される部分的なデータ処理によって送信が得られることに留意されたい。
本発明の一実施形態に従って、前記少なくとも2つの受信側ピアRPによって行われる収集が、他のピアのうちの少なくとも1つ、好ましくは複数のピアへの要求に基づいて行われる場合、本発明の有利な一実施形態が得られている。
本発明の一実施形態に従って、前記少なくとも2つの受信側ピアRPによって行われる収集が、他のピアのうちの少なくとも1つ、好ましくは複数のピアによって行われるプッシュ送信に基づいて行われる場合、本発明の有利な一実施形態が得られている。
本発明の一実施形態に従って、前記ピアPのうちの少なくとも1つが受信側ピアRPを形成する場合、本発明の有利な一実施形態が得られている。
本発明の一実施形態に従って、前記入力代表データIRDが少なくとも2つの中間ピアIPによって少なくとも部分的に確立される場合、本発明の有利な一実施形態が得られる。
本発明によれば、少なくとも2つの中間ピアIPだけによって、または入力ブロードキャスタが一部の用途において入力データの前符号化またはある種の準備を有利に行い得るという意味で入力データ・ブロードキャスタとともに、入力代表データが有利に提供され得る。あるいは、符号化のすべてまたは大部分が中間ピアによって配布され、実行され得る。
本発明の一実施形態に従って、前記中間ピアIPが入力代表データIRDを確立するように構成されている中間処理工程をさらに含む場合、本発明の有利な一実施形態が得られている。
したがって、有利には、入力代表データを一意の部分的な符号化表現に変換する前のある1段階またはいくつかの段階で、入力代表データの処理および確立のために、中間ピアが提供されてもよい。こうした処理には、例えば、符号化/復号化、データの乗算、適した経路指定ルーチンによる入力代表データの経路指定などがある。
本発明の一実施形態に従って、前記ピアPのうちの少なくとも1つが中間ピアIPを形成する場合、本発明の有利な一実施形態が得られている。
本発明の好ましい実施形態によれば、いくつかのピアは、有利には、すなわちいわゆる中間ピアとして働き、同時に入力代表データを少なくとも1つの入力ブロードキャスタから入力データIの複数のM個の一意の部分的な符号化表現UPRに変換するピアのうちの1つとしても働く、入力代表データの処理の両方に参加してもよい。言い換えれば、一部のピアは、同時に2つのタイプのピアとして働くことができる。当然、こうした二重の機能は、入力ブロードキャスタからピアへのデータの有効な移送が提供されるように、必要なコード処理の適した並列または直列構造化によって容易にする必要がある。
本発明の一実施形態に従って、ピアPの総数が5個より多く、好ましくは50個より多く、さらに好ましくは200個より多く、中間ピアIPの数がピアの総数の1/5から1/100の間、好ましくはピアの総数の1/25から1/50の間である場合、本発明の有利な一実施形態が得られている。
本発明の一実施形態によれば、中間ピアの数は、所望のデータ配布を行うように、有利に最適化されるべきである。
しかし、本発明によれば、中間ピアの数は、2つからピアの総数までのどれかとすることができることに留意されたい。中間ピアの選択は、例えば、個々のピアのダウンロードおよびアップロードの能力、およびその一部がストリーミング・セッション中に変わる可能性さえある他のパラメータに依存するため、一般に、特定の実施形態の特定の場合にかなり依存する。
本発明の一実施形態に従って、前記入力代表データIRDが前記ブロードキャスタIBから少なくとも2つの中間ピアIP、好ましくは少なくとも4つの中間ピアIPに送信される場合、本発明の有利な一実施形態が得られている。
本発明の一実施形態によれば、データは、入力ブロードキャスタから少なくとも2つの、好ましくは少なくとも4つの中間ピアに送信され得る。このように、入力ブロードキャスタから個々のデータ要求側ピアへのデータの伝送は、入力要求側ピアといくつかのデータ・プロバイダ、すなわち中間ピアおよび任意選択でその他のピアとの間の送信として配布されてもよい。
入力代表データの受信側が実際にデータを必要としていることが確認される限り、データのプッシュもある程度までシステムによって促進することができるという意味で、データ要求側ピアの理解は、必ずしも絶対にデータ・プル機能に低減されるわけではないことに留意されたい。
本発明の一実施形態に従って、前記少なくとも2つの中間ピアIPが前記入力データIのみの部分的な表現を受信する場合、本発明の有利な一実施形態が得られている。
この原理は、基本的に1対1のデータ送信との関連で示されているが、1対多、あるいは多対多の送信でさえ、本発明の範囲内で適用することができる。
本発明の一実施形態によれば、複数のサブセットは、一般に、必要なN個の一意の部分的な符号化表現が、少なくともこれらの部分的な符号化表現の比較的大きいグループ内で、またはそれらのいずれかによって結合されてもよいことを反映している。したがって、すべての部分的な表現が一意であることが好ましいが、潜在的な「ユーザ」がN個の一意の異なる部分的な表現を集めることができることが確認される限り、提供された部分的な表現のある程度の制御またはグループ化で間に合う場合がある。
したがって、例えば部分的な符号化表現のリードソロモンの符号化を適用するときの重要な特徴は、受信側が入力の全説明を取得する場合、入力情報を再生成/復号するだけであることである。他のタイプのコードを適用する場合、一般に、符号化入力データの100%より大きい、何らかの確率の閾値が得られなければならない。
本発明の一実施形態に従って、一意の部分的な符号化表現UPRが異なる複数のピアによって生成される場合、本発明の有利な一実施形態が得られている。
本発明の一実施形態に従って、異なるピアによって部分的な符号化表現UPRを生成することによって一意の部分的な符号化表現UPRの一意性が確実にされる場合、本発明の有利な一実施形態が得られている。
本発明の一実施形態に従って、少なくとも1つのピアPが、プル・プロセスによって、入力代表データIRDを集め、少なくとも1つの一意の部分的な符号化表現に変換する場合、本発明の有利な一実施形態が得られている。
本発明の一実施形態に従って、少なくとも1つのピアPが、プッシュ・プロセスによって、入力代表データIRDを集め、少なくとも1つの一意の部分的な符号化表現に変換する場合、本発明の有利な一実施形態が得られている。
本発明によれば、ピアでのサブセットの収集は、プッシュ・プロセスおよびプル・プロセスによって行うことができる。言い換えれば、ピアは、自分自身の動きで、所望のコード・サブセットを集めることを決めるか、代わりに、使用可能なシステムが必要なコード・サブセットを下流にプッシュすることができる。本発明の好ましい実施形態では、個々のピアがプル・プロセスとしてデータを集める、すなわち、データが必要なときに他のピアに積極的に要求する。
本発明の一実施形態に従って、前記入力データがリアルタイム・ベースで少なくとも1つの入力データ・ブロードキャスタIBから送信される場合、本発明の有利な一実施形態が得られている。
本発明の一実施形態に従って、前記入力データIがフレームでリアルタイム・ベースで少なくとも1つの入力データ・ブロードキャスタIBから送信される場合、本発明の有利な一実施形態が得られている。
本発明の一実施形態に従って、前記ネットワークがビデオ・ストリーミング・ネットワークである場合、本発明の有利な一実施形態が得られている。
本発明の一実施形態に従って、前記ネットワークが要求に応じてビデオ・ストリーミングを行っている場合、本発明の有利な一実施形態が得られている。
本発明の一実施形態に従って、前記ネットワークがライブビデオ・ストリーミングを行っている場合、本発明の有利な一実施形態が得られている。
本発明の一実施形態に従って、前記ネットワークがインターネットによって形成され、前記ピアPがインターネットと通信するコンピュータを含む場合、本発明の有利な一実施形態が得られている。
本発明の一実施形態に従って、前記ピアの少なくとも1つが、他のピアによって生成された入力データIの部分的な符号化表現UPRを収集および/または使用することなく、入力代表データIRDを、入力データIの少なくとも1つの一意の部分的な符号化表現UPRに変換するコンピュータを含む場合、本発明の有利な一実施形態が得られている。
有利には、一部のピアは、単に、他のピアによって生成された部分的な符号化表現UPRを使用することなく、入力データIの部分的な符号化表現UPRの非中央プロデューサとして働くことができるだけである。
本発明の一実施形態に従って、前記ピアの少なくとも1つが、
・ピアが少なくとも1つの部分的な符号化表現UPRを生成し、少なくとも1つのコード・サブセットW1,W2,W3,..を取得するために他のピアによって生成された部分的な符号化表現を集め、少なくとも1つのコード・サブセットW1,W2,W3,..を復号する少なくとも1つのモードと、
・ピアが単に、または主に少なくとも1つの部分的な符号化表現UPRのプロデューサとして働く少なくとも1つのアイドル・モードと
の間の切り替えを行うことができる場合、本発明の有利な一実施形態が得られている。
本発明の一実施形態に従って、ピアが暗黙的または明示的に入力データIで定義される場合、本発明の有利な一実施形態が得られている。
本発明の好ましい一実施形態によれば、ネットワークの一部分を形成する予定のピアは、例えば変換するピアおよび/または中間ピアおよび/または受信側ピアとして、符号化される/流されるデータで定義することができる。この特徴は、あるピアからもう一方のピアへの有利で非常に便利なデータの交換、特に、受信側ピアによる部分的な符号化表現の有利な取り出しを容易にする。
本発明の一実施形態に従って、符号化入力データIがデータを定義するピアに関連付けられる場合、本発明の有利な一実施形態が得られている。
本発明の一実施形態に従って、前記一意の部分的な符号化表現UPRが損失耐性のあるコードを含む場合、本発明の有利な一実施形態が得られている。
本発明の一実施形態に従って、前記入力データがビデオ・ストリーミングを含み、
前記ブロードキャスタIBがビデオ・ストリーミング・ブロードキャスタを含み、
前記複数のピアPのうちの少なくとも2つがビデオ・ストリームの受信側を含む場合、本発明の有利な一実施形態が得られている。
本発明は、さらに、少なくとも1つのデータ・ライブ・ストリーミング・ブロードキャスタLSBおよび少なくとも2つのライブ・ストリーミング受信側LSRを含む、上述した実施形態のいずれかによるライブ・ストリーミング・システムにおけるデータのストリーミングの方法であって、
前記少なくとも2つのライブ・ストリーミング受信側LSRがピアツーピア・ストリーミング・ネットワークの少なくとも一部分を形成し、
前記少なくとも2つのライブ・ストリーミング受信側LSRがそれぞれ、前記ピアツーピア・ストリーミング・ネットワークの他のライブ・ストリーミング受信側LSRへのピアツーピア・ストリーミングを生成する手段を含み、他のストリーミング受信側LSRへの前記ピアツーピア・ストリーミングが、前記少なくとも1つのライブ・ストリーミング・ブロードキャスタLSBからのデータの損失耐性のあるコード表現によって確立される、方法に関する。
本発明は、さらに、
少なくとも1つの入力データ・ブロードキャスタIBと、
入力代表データIRDを前記少なくとも1つの入力ブロードキャスタIBから入力データIの複数のM個の一意の部分的な符号化表現UPRに変換する複数のピアPとを含む、上述した実施形態のいずれかによるネットワークにおいて入力データIを配布する方法であって、
前記M個の一意の部分的な符号化表現の複数のコード・サブセットW1,W2,W3,..が前記入力データIのN個の異なる一意の部分的な符号化表現UPRを含み、各サブセットW1,W2,W3,..が前記入力データIを表し、NがM―1未満である、方法に関する。
本発明は、さらに、上述した実施形態のいずれかによるデータ・ライブ・ストリーミング・システムにおける損失耐性のあるコードの使用に関する。
本発明は、さらに、上述した実施形態のいずれかによるネットワークにおける損失耐性のあるコードの使用に関する。
以下では、図面を参照して本発明を説明する。
図1Aは、入力ブロードキャスタIBおよび複数のピアPを含むネットワークを示す。複数のピアPは、入力代表データIRDを前記少なくとも1つの入力ブロードキャスタIBから入力データの複数のM個の一意の部分的な符号化表現UPRに変換するよう構成されている。
生成された一意の部分的な表現を、理想的には、任意に、前記入力データのN個の異なる一意の部分的な符号化表現UPRをそれぞれ含む、前記M個の一意の部分的な符号化表現の多数のコード・サブセットWl,W2,W3に結合することができる。
この説明では、一意のパケット、一意の表現などについて言及する際、一意性とは一般に、パケットまたは表現によって実際に含まれるデータではなく、パケットまたは表現が符号化されるキーに関係することを強調しておく。同じまたは異なるデータ・ブロックの符号化に使用されたときに、偶然に異なる2つのキーによって2つの等しいパケットが確立される可能性があるので、この区別は重要である。
図1Bは、入力代表データIRDが入力ブロードキャスタからピアPに送信される上述したネットワークの1段階を示している。
図1Cは、ピアPが入力代表データを一意の部分的な符号化表現に変換し、それらをネットワークに提供することを示している。
図1Dは、本発明による中間構造の好ましい構造を示している。
図2は、リードソロモン技術を使用したコンテンツの配布の所望の中間状態を示している。これは、ネットワークNW、およびネットワーク接続NCによってネットワークに接続されたいくつかのピアPを含んでいる。各ピアは、いくつかの送りパケット(feed packet)FPを含んでおり、図2の例では、8個の送りパケットがある。各送りパケットFPは、例えば64個のパケットなど、いくつかの送りパケットに基づいて入力が再確立され得るような方法で、入力から導出されたリードソロモン記号を表す。リードソロモン技術は、理論上無制限の数の一意の送りパケットを促進するため、例えば8個の一意のパケットをそれぞれ含む、任意の数のピアがネットワークに接続されていてもよい。
任意のピアPが、例えば56個など足りない送りパケット数を非常に迅速かつ確実に集めて、入力を再確立できるようにすることができるため、図2に示した状況が望ましい。リードソロモン技術によって、ピアは、64個のパケット、すなわち入力の確立に必要な数を得るために、他のピアのいずれかから任意の56個のパケットを集めることができる。
図3は、図2を参照して上述した所望の状況を達成するために、送りパケットをピアに配布する簡単な方法を示している。これは、入力データI、および入力データIから送りパケットFPを生成するリードソロモン生成器RSGを含む配布ピアDPを含む。配布ピアは、ネットワーク接続NCによってネットワークNWに接続されている。図3は、さらに、ネットワーク接続NCによってネットワークNWに接続されているいくつかのクライアント・ピアCPを含む。
配布ピアDPは、次に、図2の所望の状況が達成されるまで、入力データIから一意の送りパケットFPを生成し、これらの送りパケットをクライアント・ピアCPに送信することができる。ピアの一部またはすべては、いったんパケットを十分集めると、ピアが送りパケットFPから配信されたデータDDを生成できるようにする配信済みデータ変換器DDTをさらに含み得る。配信済みデータDDは、好ましくは入力データIに等しいものとする。
図4は、本発明のデータ配布方法の説明に使用される概念の一部を示している。一般に、いくつかのピアP1..P5,PNは、ネットワークNWによって互いにネットワーク接続CNで接続されている。
本発明によれば、ピアP1..P5,PNは、一般に、中央処理装置(CPU)、記憶手段、メモリ、キーボードやコンピュータのマウスなどの入力手段、コンピュータ・モニタなどを含むデスクトップ・コンピュータなどのパーソナル・コンピュータによって具体化される。しかし、ピアは、ネットワークNWによって他のピアに接続することができる任意の手段によって具体化され得ることを理解されたい。こうした代替の手段には、サーバ、セットトップ・ボックス、個人用デジタル補助装置(PDA)、携帯電話、ラップトップ、ネットワーク対応テレビ、公開情報モニタなどがある。さらに、本発明によれば、上記による1台のコンピュータまたは均等物が複数のピアを含んでいてもよい。この実施形態では、複数のピアを含む1台のコンピュータは、好ましくは複数のネットワーク接続NWも含む。ピアの数は、PNと呼ばれるピア、および小さい点によっても示されており、その数に制限はない。
ネットワークは、好ましくはインターネットであるが、例えばローカル・エリア・ネットワーク(LAN)、広域ネットワーク(WAN)など公の接続に対して閉じているか開放されているかに関わらず、任意の種類のネットワークとすることができる。ネットワークNWは、TCP/IP、IPX/SPXなど任意のネットワーク・プロトコルに基づいていてよく、ケーブル、光導体、無線通信など、またはその組み合わせによって伝わる場合もある。ネットワークNWは、ハブ、スイッチ、ルータ、または他の任意の種類のネットワーク・ユニットを含み得る。ネットワーク接続NCは、例えばUTPケーブル、同軸ケーブル、光導体、無線ネットワーク、ADSL、ケーブルTV接続、ISDN、正規の電話接続など、任意の種類のネットワーク接続、および例えばネットワーク・インターフェイス・カード(NIC)、ハブ、ルータ、スイッチ、無線ルータ、モデム、ADSLモデム、ケーブルモデム、ISDNモデムなどを確立する任意の手段を含み得る。ネットワーク接続を介したピアとネットワークとの間の通信は、TCP/IPプロトコル・スイートの一部であるUnreliable Datagram Protocol(UDP)に基づくことが好ましいが、本発明のいくつかの実施形態において、他の任意のプロトコルまたはプロトコルの組み合わせを使用することができる。
本発明によれば、各ピアP1..P5,PNは、一般的なピアPNに関して、データ部分DPおよび処理部分PPを含むことが好ましい。しかし、データ部分および処理部分は、異なるピアに異なるように使用され得る。
図4にピアP1によって示されているピアは、そのデータ部分DP内に1組の入力データIを含み得る。これらは、本発明の方法によって他のピアに配布されるべきデータである。その処理部分PPでは、ピアP1は、入力データIに基づいてコード・セグメントCSを生成するように構成されているコード・セグメント生成器CSGを含む。
本発明によれば、コード・セグメントは、さらにパケットを確立するために使用され得る前段階のパケットである。他の実施形態では、コード・セグメントは、最終段階のパケット・タイプ、または代替の中間パケット・タイプを示し得ることに留意されたい。
ピアは、代わりに、またはさらに、ピアP2によって示されているように、そのデータ部分DP内に少なくとも1つのコード・セグメントCSを、またその処理部分PP内にシード・パケット生成器SPGを含んでいてもよい。コード・セグメントCSは、ピアP1のコード・セグメント生成器CSGによって生成され、ネットワークNWおよびネットワーク接続NCによってピアP1からピアP2に配信される。シード・パケット生成器SPGは、コード・セグメントCSに基づいて、シード・パケットSPを生成するように構成されている。
さらに、ピアは、代わりに、またはさらに、ピアP3によって示されているように、そのデータ部分DP内に、ピアP2、および同じ機能を備える他のピアからネットワークおよび接続によってピアP3に配信されるいくつかのシード・パケットSPを含んでいてもよい。図4の概念の概要には、8個のシード・パケットが示されている。その処理部分PPでは、ピアP3は、いくつかのシード・パケットSPを送りパケットFPに変換するように構成されている送りパケット変換器FPTを含む。
さらに、ピアは、代わりに、またはさらに、ピアP4によって示されているように、そのデータ部分DP内に、ピアP3、および同じ機能を備える他のピアからネットワークおよび接続によってピアP4に配信されるいくつかの送りパケットFPを含んでいてもよい。図4の概念の概要には、8個の送りパケットが示されている。その処理部分PPでは、ピアP4は、いくつかの送りパケットFPを、好ましくは入力データIに等しい配信済みデータDDに変換するように構成されている配信済みデータ変換器DDTを含む。
最後に、ピアは、代わりに、またはさらに、ピアP5によって示されているように、そのデータ部分DP内に、ピアP4、および同じ機能を備える他のピアからネットワークおよび接続によってピアP5に配信される1組の配信済みデータDDを含んでいてもよい。配信済みデータDDは、好ましくは入力データDDに等しい。その処理部分PPでは、ピアP5は、データが完全に配信されたので、配布プロセスで使用するように構成されている任意の処理手段を必ずしも含んでいるとは限らないが、処理部分は、例えばサブネットワークにおいて、配布プロセスを初めからやり直すために、ピアP1としてコード・セグメント生成器CSGを含んでいてもよい。さらに、ピアP5の処理部分は、ストリーミング・ビデオ・ビューアなど、配信済みデータDDを使用する処理手段を含むことが好ましい。
本発明によれば、上述した工程のうちの1つ、いくつか、またはすべてがピアのそれぞれまたは一部内に含まれていてもよいことに留意されたい。実際に、処理工程の送りパケット変換器FPTおよび配信済みデータ変換器DDT、および対応するデータ部分のシード・パケットSP、送りパケットFP、および配信済みデータDDは、同じピア内に含まれていることが好ましい。したがって、図4の概念図におけるピアP3、P4、およびP5の作業は1つのタイプのピア内で処理されることが好ましいが、このピアがネットワークにおいていくつかのインスタンスを有していることが好ましい。
したがって、本発明による好ましい配布ネットワークは、図4のピアP1に対応する少なくとも1つのピア、図4のピアP2によるいくつかのピア、さらに、それぞれ図4のP3、P4、およびP5の集合によるいくつかのピアを含む。
図5は、本発明の配布方法の好ましい実施形態を示している。
ピアP1は、配布される入力データIを含む。したがって、好ましい実施形態では任意のピアは任意の役割を有し得るが、ピアP1は、この場合、ブロードキャスタとして働くため、配布ピアまたはブロードキャスト・ピアとも呼ばれる。
ピアP1は、コード・セグメント生成器CSGによって、例えば8個など、いくつかのコード・セグメントCSを生成し、それらをいくつかのピアP2に送信する。本発明の好ましい実施形態において、全入力データIに基づいて各コード・セグメントが生成される。しかし、代替実施形態において、コード・セグメントのすべての一部は、入力データIの一部分のみに基づいて生成され得る。
最も簡単な実施形態において、各コード・セグメントCSは、一意かつ必須であり、すべてのコード・セグメントの全サイズは、入力データIのサイズに対応する。したがって、入力データに対する各コード・セグメントのサイズは、例えば、8個の必要なコード・セグメントが生成された場合、入力データの1/8など、必要なコード・セグメントの数の逆数となる。
異なる実装によれば、絶対に必要な数よりも多くの一意のコード・セグメントおよび/または各コード・セグメントのより多くのコピーが有益であり得る。一意のコード・セグメントの考え得る数は、理論上無制限であるが、実際の実装形態では、一般に、232個の考え得る一意のコード・セグメントに対応する32ビットなど、特定の整数表現に依存する。
ブロードキャスタから送信されるすべてのコード・セグメントCSの全サイズは、少なくとも入力データIのサイズである。したがって、ブロードキャスタは、少なくとも入力データIの量に対応する量を送信する必要はあるが、必ずしもそれより多くを送信する必要はない。従来の配布方法によって、ブロードキャスタは、全入力データを、最終的な受信側のそれぞれに送信する必要がある、または受信側がツリー構造で配列される必要がある。
コード・セグメントCSを含むピアP2は、シード・パケット生成器SPGによってシード・パケットSPを生成する。シード・パケットは、ピアP3に送信される。各ピアP3は、いくつかのピアP2からシード・パケットを受信し、1つのピアP3によって受信されたシード・パケットSPは、それらが生成されたキーに関して互いに一致する必要がある。この一致を確実にするために、シード・パケットSPは、ピアP3からの要求に応じて生成されることが好ましく、P3は次いで、同じピアP3に配信されたシード・パケットSPの生成に使用すべきキーを指図することができる。
コード・セグメントがそれぞれ全入力データIに基づいて生成される好ましい実施形態において、シード・パケットSPも全入力データに依存する。上述した代替実施形態において、シード・パケットは、必ずしもすべて全入力データに依存するとは限らない。
各ピアP3は、対応するキーによって生成されたいくつかの一意のシード・パケットSPを受信するはずである。すべてのコード・セグメントCSが一意かつ必須である上述した最も簡単な実施形態において、各ピアP3は、シード・パケット、すなわち各コード・セグメントを元とするシード・パケットを各ピアP2から受信するはずである。例えば、8個の一意の必要なコード・セグメントが存在している場合、各ピアP3は、8個のシード・パケットSPを受信するはずである。
したがって、コード・セグメントに対する各シード・パケットのサイズは、例えば、8個の必要なコード・セグメントが生成された場合、コード・セグメント・サイズの1/8、したがって入力データの1/64など、必要なコード・セグメントの数の逆数となることが好ましい。
必要数以上の一意のコード・セグメントが存在する代替実施形態において、各ピアP3は、必要なコード・セグメントの数に対応する少なくともいくつかのシード・パケットを受信するはずであるが、より信頼性が高く、損失パケットに耐性がある配布方法を得るために、より多くのシード・パケットを受信することが好ましい場合がある。
各コード・セグメントのより多くのコピーが存在する代替実施形態において、ピアP3は、必要数のコード・セグメントに対応する、異なるコード・セグメントを元とする少なくともいくつかのシード・パケットを受信するはずである。ピアP3の送りパケット変換器FPTは、一意のコード・セグメントを元とする、対応する生成キーを備えるいくつかのシード・パケットを必要とする。
図5には、すべてのピアP3がすべてのピアP2からパケットを受信したとは限らず、ピアP2の数が必要数より多いことを示すことが図示されている。
ピアP3はそれぞれ、送りパケット変換器FPTによって、受信されたいくつかの一意のシード・パケットSPをいくつかの一意の送りパケットFPに変換する。確立された送りパケットは、ピアP4に送信される。しかし、好ましい実施形態において、ピアP4は、上述したように、ピアP3と同じピアである。
好ましくは、いくつかの数のシード・パケットSPが同じ数の送りパケットFPに変換される。したがって、例えば必要数のコード・セグメントCSが8個であり、したがって、ピアP3のそれぞれによって受信されたシード・パケットの数がそれに応じて8個である場合、ピアP4のそれぞれによって含まれる送りパケットの数は8個である。
ピアP3ごとに生成されたシード・パケットは、ピアP3ごとに異なるキーから生成されることが好ましいため、いくつかのコード・セグメントCSから1つのピアP3によって受信されるシード・パケットは、同じコード・セグメントCSから異なるピアP3によって受信されるシード・パケットとは異なることが好ましい。それによって、システム全体において一意の送りパケットが数多く確立されることが確実になる。
各送りパケットのサイズは、各シード・パケットのサイズと同じであることが好ましく、したがって、例えば、8個のコード・セグメントが必要である場合、コード・セグメント・サイズの1/8、したがって入力データの1/64である。
ピアP4のそれぞれがいくつかの送りパケットFP、例えば8個の送りパケットを含む場合、図2を参照して上述した望ましい中間状態が達成される。配布プロセスの残りは、いくつかのピアP4が、好ましくは入力データIに等しい配信済みデータDDに変換するのに必要ないくつかの送りパケットFPを集めるまで、ピアP4が送りパケットFPをそれら自体に配布することを含む。
最も簡単な実施形態において、入力データIの再確立に必要な送りパケットの数は、入力データのサイズに対する送りパケット・サイズの逆数である。例えば送りパケットが入力データIの1/64のサイズを有している場合、配信済みデータDDに変換するために、64個の一意の送りパケットが必要とされる。
代替実施形態において、配信済みデータの再確立を確実にするために必要な送りパケットの数は、例えば一意の送りパケット68個など、そのサイズの逆数よりわずかに大きくてもよい。
図6Aから図9は、リードソロモンベースのコード化に従って、上述した異なるセグメントおよびパケットがどのように確立されるかを示している。この好ましい実施形態は、本発明の最も簡単な考え得る実施形態のうちの1つである。以下の説明は一例にすぎず、代替実施形態において、任意の数、サイズなどが異なっていてもよいことに留意されたい。
図6Aから6Dは、コード・セグメントCSの確立を示している。図6Aは、64個の部分、I0,I1...I63に分割される入力データIを示している。この例では、入力データIは、サイズ64kB、すなわち65536バイトのものと決定される。したがって各部分I0,I1...I63は、1kB、すなわち1024バイトのサイズを有する。このサイズは、好ましくは、パケットの配布に使用されるネットワークおよびネットワーク接続によって最も容易に処理されるサイズに相当するものとし、1kBのサイズは、インターネットなどTCP/IPネットワークのプロトコルおよびネットワーク構成要素に非常によく適合する。
図6Bは、入力データ部分I0,I1...I63のそれぞれが、いくつかのサブ部分S、この例では各サブ部分が128バイトのサイズを有する8個のサブ部分Sにさらに分割されることを示している。図6Bには、入力データ部分I3のサブ部分が示されている。したがってこれらのサブ部分は、S(I3,0),S(I3,1)...S(I3,7)と示されている。
図6Cは、入力データ部分I3から確立されたコード・セグメント部分Tの確立を示している。各コード・セグメント部分Tは、リードソロモン生成器RSGによって、コード・セグメント・キーCSK0,CSK1...CSK7に基づいて確立される。したがって、入力データ部分I3から確立されたコード・セグメント部分は、T(I3,CSK0),T(I3,CSK1)...T(I3,CSK7)と示される。コード・セグメント・キーCSK0,CSK1...CSK7は異なるものとし、任意の値を有していてよく、したがって、理論上無制限の数のコード・セグメント部分Tが可能となる。使用されるコード・セグメント・キーの数は、この例では8個であり、生成されるコード・セグメントの数を決定する。この例のコード・セグメント部分Tは、128バイトのサイズを有する。
図6Cに示されるプロセスは、入力データ部分I0、I1...I63ごとに実行され、したがって、この例では、合計8×64=512のコード・セグメント部分Tが確立される。
図6Dは、コード・セグメントCSを形成するために、いくつかのコード・セグメント部分Tがどのように結合されるかを示している。図6Dで、同じコード・セグメント・キーCSK5に基づいて生成されたすべてのコード・セグメント部分が、コード・セグメントCS(CSK5)を形成するために結合される。したがってこのコード・セグメントは、第1の入力データ部分I0から生成されたコード・セグメント部分T(I0,CSK5)、第2の入力データ部分I1から生成されたコード・セグメント部分T(I1,CSK5)などを含む。したがって、コード・セグメントCSは、全入力データIに依存する。
512個すべてのコード・セグメント部分Tは、上述したように、そのコード・セグメント・キーCSK0,CSK1...CSK7に従ってソートされ、したがって8個のコード・セグメントCS(CSK0),CS(CSK1)...CS(CSK7)を形成する。したがって、各コード・セグメントCSは、64×128=8192バイト=8kBのサイズを有しており、これは入力データIのサイズの1/8である。
コード・セグメントCSは、配布を開始するために、異なるピアに送信されることが好ましい。しかし、入力データ保持ピアから送信される全サイズは、入力データのサイズ、すなわち8×8kB=64kBだけである。
本発明のより高度な実施形態では、より多くの異なるコード・セグメント・キー、すなわちCSK8,CSK9,CSK10などを使用することによって、必要な8個以上のコード・セグメントが生成され得る。本発明によれば、配布プロセスを続行するには、生成されたコード・セグメントのうちの任意の8個で十分である。したがって、例えば12個のコード・セグメントを生成し、送信することによって、最高4つのコード・セグメント保持ピアは、配布プロセスを危険にさらすことなく、その参加を放棄することができる。
本発明のより高度な代替実施形態において、異なるコード・セグメントの全組は、直接複製されてもよく、したがって重複、およびネットワークの異なる領域に送信されるコード・セグメントの組の各コピーが生成される。したがって、各ネットワーク領域において、必要なコード・セグメントのローカルのコピーが確立され得る。それによって、ネットワークのネックを回避する有利な方法が得られている。
図7Aおよび7Bは、コード・セグメントCSに基づいて、シード・パケットSPがどのように生成されるかを示している。図7Aは、64個のコード・セグメント部分T(I0,CSK5)...T(I63,CSK5)を含むコード・セグメントCS(CSK5)を示している。リードソロモン生成器RSGによって、シード・パケット・サブキーSPK23−0,SPK23−1...SPK23−7に基づいて、いくつかのシード・パケット部分U(CSK5,SPK23−0)...U(CSK5,SPK23−7)が生成される。シード・パケット・サブキーは異なるものとし、任意の値を有していてよく、したがって、理論上無制限の数のシード・パケット部分Uが可能である。好ましくは、シード・パケット・サブキーの生成に、疑似ランダム・プロセス、または場合によって多数の異なるキーを確立する他の任意のプロセスが使用されてもよい。シード・パケット部分Uのそれぞれは、128バイトのサイズ、すなわち、コード・セグメントCSのサイズの1/64のサイズを有している。
図7Bは、確立されたシード・パケット部分Uがシード・パケットSP(CSK5,SPK23)にどのように結合されるかを示している。したがって、シード・パケットは、8×128バイト=1024バイト=1kBのサイズ、すなわち、コード・セグメントCSのサイズの1/8のサイズを得る。
シード・パケット・サブキーSPK23−0,SPK23−1...SPK23−7は、シード・パケット・キーSPK23から確立され、これは、任意の値を有していてよく、したがって、理論上無制限の数のシード・パケット・キーが可能となる。この例の23個のシード・パケット・キーは、任意のシード・パケット・キーが使用されることを表している。
本発明の配布方法は、同じシード・パケット・キーSPK23を備えるシード・パケットが、コード・セグメントCS(CSK0)...CS(CSK7)ごとに確立されることを確実にする必要がある。コード・セグメントCSが異なるピアに配置されていることが好ましいため、対応するシード・パケット・キーの使用を確実にする何らかの方法が得られる必要がある。好ましい実施形態において、あるシード・パケットSPが送信されるべきピアにシード・パケット・キーを指図させることによって、これが確実になる。ピアは、すべてのコード・セグメント・ピアに同じキーを指図した場合、コード・セグメントのそれぞれから同じキーに基づいて確立されたシード・パケットを受信することができる。サブ・キーは、コード・セグメント・ピアのそれぞれにおいて、対応する方法で決定されなければならない。ピアを受信する異なるシード・パケットが異なるシード・パケット・キーを指図することを確実にするために、ピアは、ID番号、IPアドレス、MACアドレスなど、好ましくはそれ自体の何らかの一意の表現を使用することができる。23個は、特定のピアのこうした一意の表現を示し得る。
図8Aから8Cは、シード・パケットが送りパケットにどのように変換されるかを示している。図8Aは、8個のコード・セグメント保持ピアから23個によって表される1つのピアによって集められた8個のシード・パケットSP(CSK0,SPK23)...SP(CSK7,SPK23)の集まりを示している。したがって、受信されたシード・パケットSPは、異なる8個のコード・セグメントから生成されるが、同じシード・パケット・キーSPK23に基づいている。各シード・パケットが1kBのサイズを有するため、ピアは、8個のシード・パケットを集めるために、合計8kBを受信している。
図8Bは、受信されたシード・パケットによって含まれるシード・パケット部分の並べ替えを示している。並べ替えによって、8個のシード・パケットSP(CSK0,SPK23)...SP(CSK7,SPK23)が8個のコード化送りパケットV(SPK23−0)...V(SPK23−7)に変わる。並べ替えは、元のコード・セグメントではなく、そのシード・パケット・サブキーに従って、シード・パケット部分Uを配列することを含む。したがって、例えば、シード・パケット・サブキーSPK23−0に基づいて生成されたすべてのシード・パケット部分U、すなわちシード・パケット部分U(CSK0,SPK23−0),U(CSK1,SPK23−0)...U(CSK7,SPK23−0)は、コード化送りパケットV(SPK23−0)に結合される。この並べ替えのために、あるピアのコード・セグメントのそれぞれから生成されたシード・パケットが対応するシード・パケット・キーに基づいて生成されることが重要である。
シード・パケット部分Uが単に再配列されるだけであるため、コード化送りパケットVのサイズは、シード・パケットSPのサイズに等しい。
図8Cは、コード化送りパケットV(SPK23−0),V(SPK23−1)...V(SPK23−7)が送りパケットFP(SPK23−0),FP(SPK23−1)...FP(SPK23−7)にどのように変換されるかを示している。復号化は、逆リードソロモン変換器IRSTによって行われる。送りパケットFPのサイズは、シード・パケットSPのサイズと同じであり、すなわち、この例では入力データIのサイズの1/64に対応する1kBである。
この例の方法によって生成された送りパケットFPの1つの重要な特性は、好ましくは入力データIに等しい配信済みデータDDが、任意の64個の一意の送りパケットFPから逆リードソロモン変換IRSTによって確立され得ることである。上記の例で、23個によって表されるピアが8個の送りパケットを確立するため、ピアが配信済みデータDDを確立できるようにするために、56個以上の送りパケットがピアによって確立され、または他のピアから集められなければならない。
図9は、いくつかの送りパケットFPが配信済みデータDDの確立をどのように可能にするかを示している。図8において、ピア23からの8個の送りパケットFP(SPK23−0),FP(SPK23−1)...FP(SPK23−7)、8個の送りパケットFP(SPK34−0),FP(SPK34−1)...FP(SPK34−7)など、すなわちピアを確立する異なる送りパケットからの合計64個の送りパケットが、逆リードソロモン変換によって、配信済みデータDDに変換され得る。
図10は、図6Aから9を参照して上述した本発明の実施形態、すなわちリードソロモンベースの符号化を使用する実施形態の符号化および復号化の技術の循環の性質を示している。図10は、図6Aから6Dを参照して説明したように、入力データIがコード・セグメントCSの生成にどのように使用されるかを示している。さらに、図7Aおよび7Bを参照して説明したように、コード・セグメントCSが、同じ行内のいくつかがシード・パケットSPと呼ばれるシード・パケット部分Uの生成にどのように使用されるかを示している。さらに、図8Aから8Cを参照して説明したように、シード・パケット部分Uが送りパケットFPにどのように変換されるかを示している。また、最後に、図9を参照して説明したように、送りパケットFPが配信済みデータDDとも呼ばれる入力Iにどのように変換されるかを示している。
図10には、異なるキーCSK0...CSK9を備える10個のコード・セグメントCS(CSK0)...CS(CSK9)が示されている。理論上、一意のキーを備える考え得る数のコード・セグメントは、点で示されているように無制限である。各コード・セグメントから、理論上無制限の数のシード・パケット部分Uが生成され得る。シード・パケット部分Uの生成に使用されるキーは、実用上、この例では23個または34個などのグループ化キー(grouping key)、およびこの例では0個、1個、または2個などいくつかのサブ・キーによって決定されることが好ましい。サブ・キーは、疑似ランダム・プロセスによって、グループ化キーから生成されることが好ましい。送りパケットFPは、異なるコード・セグメント・キーを有するが、同じシード・パケット・キー、すなわちグループ化キーおよびサブ・キーの同じ組み合わせを有するシード・パケット部分Uから生成されるため、ある程度の同期の実際の必要性が生じる。
図10には、さらに、異なるコード・セグメント・キーSPKを有するが、この例ではSPK23−0やSPK41−1など、同じグループ化キー−サブ・キーの組み合わせを有するシード・パケット部分Uによって変換された9個の送りパケットFP(SPK23−0)...FP(SPK41−2)が示されている。この図には、さらに、シード・パケット部分U(CSK8,SPK41−0),U(CSK8,SPK41−1)およびU(CSK8,SPK41−2)を含むシード・パケットSP(CSK8,SPK41)の例が示されている。
図11は、本発明のネットワークおよび配布方法の好ましい適用を示している。本出願は、例えばビデオおよび/または音声などのコンテンツの、例えばインターネットなどネットワークに接続されたいくつかのピアへのライブ・ストリーミングに関する。
図11には、コンピュータとして示されているライブ・ストリーミング・ブロードキャスタLSBが示されている。ライブ・ストリーミング・ブロードキャスタLSBには、ビデオ・カメラVCが接続される。したがって、ビデオ・カメラによって録画されたビデオ・ストリームは、コンピュータ・モニタ上のピクチャによって、図11に示されているライブ・ストリーミグ・ブロードキャスタLSBから使用可能である。ライブ・ストリーミング・ブロードキャスタLSBは、さらに、ネットワーク接続NCによってネットワークNWに接続される。
ネットワークNWには、いくつかのライブ・ストリーミング受信側LSRも接続される。ライブ・ストリーミング受信側は、任意の種類のネットワーク対応装置とすることができ、したがって、図11にはコンピュータ、ラップトップ、および個人用デジタル補助装置(PDA)として示されている。ライブ・ストリーミング受信側は、任意の接続手段によってネットワークに接続されてもよく、したがってPDAは、図11には、無線ネットワーク接続WNCによって接続されるものとして示されている。
本発明のシステムおよび方法を図11のネットワークおよびピアに適用することによって、ライブ・ストリーミング受信側LSRのそれぞれが、グリッド技術および損失耐性のある送信を使用して、有利な方法で、ライブ・ストリーミング・ブロードキャスタLSBに接続されているビデオ・カメラVCによって録画されたビデオ・ストリームを受信することができるようになる。
図11に示されている例は、単に、本発明の考え得る一実施形態であって、ビデオ・カメラVCの代わりに、またはそれとの組み合わせで、異なるタイプのカメラおよびマイクロフォン、再生装置、音声またはビデオ・ミキサー、格納されているマルチメディア・ファイルなど任意のソースのライブ・ストリーミング・コンテンツ、ライブ・ストリーミング・ブロードキャスタLSBおよびライブ・ストリーミング受信側LSRの代わりに、またはそれとの組み合わせで、コンピュータ、ラップトップ、PDA、携帯電話、サーバ、デジタル信号プロセッサ、プログラマブル・ゲート・アレイなどの専用処理手段、ネットワーク・ルータなど、処理手段を含む任意の種類のネットワーク対応装置、並びに図11に示されているネットワークNW、ネットワーク接続NC、および/または無線ネットワーク接続WNCの代わりに、またはそれとの組み合わせで、任意の種類のネットワークおよびネットワーク接続を使用することは本発明の範囲内であることに留意されたい。さらに、この実施形態は、インターネットを介して音声および/またはビデオなどのライブ・ストリーミングを配布するのに特に有利ではあるが、任意の種類のコンテンツ、例えば大きいデータ・ファイル、データベース、コンピュータ・プログラム、ビデオおよび音声ファイル、スチール写真などを配布するのに使用することもできる。
図11の実施形態では、ライブ・ストリーミング・ブロードキャスタLSBは、図1から図5を参照して上述した入力ブロードキャスタIB、配布ピアDPまたはピアP1、および任意選択で、上述したその他のピア・カテゴリのうちの1つまたは複数を組み込んでいてもよい。ライブ・ストリーミング受信側LSRは、それぞれ、ピアP、中間ピアIP、クライアント・ピアCP、および/またはピアP2、P3、P4、およびP5のうちの任意の1つのまたは複数を組み込んでいてもよい。これらは、さらに、異なるセッションで、または同時に使用するライブ・ストリーミング・ブロードキャスタLSBの機能を含んでいてもよい。
好ましい実施形態で、ライブ・ストリーミング・ブロードキャスタLSBは、少なくとも入力データIからコード・セグメントCSを生成する機能を含み、ライブ・ストリーミング受信側LSRはすべて、少なくともいくつかの送りパケットを配信済みデータDD、すなわち入力データIに変換する機能を含む。コード・セグメントCSからシード・パケットSPを生成する目的は、好ましい実施形態では、ある数のライブ・ストリーミング受信側または他のピアに割り当てられるが、それを行う機能は、実際にはピアのうちのいずれかによって含まれていてもよい。いくつかのシード・パケットSPを送りパケットFPに変換する目的は、すべての受信側に割り当てられることが好ましいが、代替実施形態では、いくつかのピアのためにとっておいてもよい。
本発明のライブ・ストリーミングのアプリケーションまたは他の任意のアプリケーションは、リードソロモンベースの損失耐性のある送信または他の任意の種類の損失耐性のある送信または順方向誤り訂正送信、例えばトルネードベース、LTベース、Raptorベースの符号化などに基づき得ることに留意されたい。
さらに、本発明によれば、ライブ・ストリーミングという用語は広義に理解されることに留意されたい。したがって、これは、基本的に、少なくとも次の2つの状況、例えば、生のTV番組、サッカーの試合やデータ取得装置からデータを流すときなど、情報が流されるのと実質的に同時に情報が利用可能になるが、必ずしも受信側によって同時にモニタに表示されたり、使用されたりするとは限らず、すなわち将来使用するためにその情報を受信側の場所に格納し、および/またはすぐに表示し、したがってストリーミングが情報の作成に実質的に同期されることを得る第1のセットアップ、およびブロードキャスタが、映画、音声ファイル、コンピュータ・プログラムなど、格納されている情報にアクセスでき、情報が受信側によって表示または使用されるのと実質的に一致して流される、すなわちストリーミングが情報の実際の使用に実質的に同期される第2のセットアップに適用され得る。これらのセットアップの間に、またはこれらのセットアップに加えて、ライブ・イベントのタイムシフト・ストリーミングなどさらにいくつかの可能性がある。本発明によるライブ・ストリーミングの用語の範囲内のその他のセットアップは、いくつかの受信側が、ライブ・イベント、映画、データベース・アップデート、コンピュータ・プログラムなど、ストリームの内容とは無関係に、実質的に同期してストリームを受信することを含む。
本発明のその他の有利な実施形態は、弾力性のある分散型データベースである。こうした実施形態の一例には、ブロードキャスタによってそれぞれ500MBのサイズの3つのコード・セグメントに分割される1000MBのデータのデータベースなどがある。これら3つのコード・セグメントは、地理的に異なる場所に配置することができ、この例では、例えばコード・セグメントを保持する少なくとも2台のコンピュータがいつでも稼働中であることを前提とする。例えば、1日当たり少なくとも16時間稼働しており、残りの時間はメンテナンスのために終了しているコンピュータに各コード・セグメントを格納することができ、非稼働のタイム・スロットが3つのコンピュータ間で重ならないようにする。
1つまたは複数の分散ピアは、例えば500kBのサイズのデータをシード・パケットの形でいつでもダウンロードすることができ、すなわち、単一のピアは、可能な3つのうちの任意の2つの使用可能なコード・セグメントを元とする500kBをダウンロードすることができる。次いでピアは、このデータを、例えば配布、復号、バックアップなど他の用途など、その後使用する用意ができている1MBの単一の送りパケットUPRに変換することができる。それぞれ1MBの、異なる1000個のこうした作成済み送りパケットUPRを含むサブセットWにアクセスできる任意のピアは、符号化がリードソロモン原理に基づく場合、データベースを再構築することができる。他のタイプの符号化の場合、データベースを再構築する可能性が高くなるまでは、1000個強のパケットを集める必要があり得る。さらに、例えば、900個以上、1000個未満の送りパケットを有するピアすべてに例えば100個のパケットを直接配信してデータベースを再生させるために標準のマルチキャストを使用する必要がある場合、送りパケットUPRの一部がデータベースから直接、すなわちブロードキャスタによって直接生成されることが望ましい。
データベースが例えば3つのコード・セグメントに分割された後に、他のコード・セグメントにアクセスすることなく、すなわち500MBの記憶スペースのみにアクセスして、こうしたコード・セグメントのいずれかまたはすべてから送りパケットUPRを生成することができるため、上述した実施形態の有利な特徴は、異なるコード・セグメントの保持に必要なスペースに関する。
上述した実施形態のその他の有利な特徴は、安全な、すなわち機密のデータ送信である。例えば999MB未満の情報を送りパケットUPRの形で受信した、または記憶容量がこの閾値未満のピアがデータベースのどの部分も再現できないように、符号化を実施することができる。したがって、個々の許可されていないピアが必要量を集めることができない限り、ピアがともに必要な量よりずっと多くのパケットを確立し、集めることができるため、データベースの1000MBのデータを安全かつ依然として損失耐性のある方法で配布することができる。
本発明のさらに代替の実施形態は、送りパケット変換の負荷バランシングを特徴とする。こうした実施形態の一例は、例えば1000MBのデータベースから例えばそれぞれ500MBの3つのコード・セグメントを確立し、単一のピア内に3つすべてのコード・セグメントを格納することを含む。次いでこの単一のピアは、並列で送りパケットUPRを生成するために、それぞれ場合によって500MBの個別の有限の記憶容量のみにアクセスできるハイパー・スレッディング・アーキテクチャの3つの個別のプロセッサまたはスレッドを使用することができる。これは、例えば、送りパケットがマルチキャストを介して複数のピア、他のプロセッサ、または他のスレッドに配信されるセットアップで使用することができる。したがって、これに必要な計算リソースは、例えば場合によってそれぞれ有限の記憶アクセスを備える3つの異なるCPUなどの3つの処理ユニットに平均される。さらに、これは、例えばバイオチップ、ニューラル・ネットワークなどの欠陥のある可能性のある計算、または欠陥のある極速CPUを備えるコンピュータ・アーキテクチャを容易にし、異なる3つの計算のうちの2つのみが正しい場合でさえ、依然として適切な送りパケットを生成することができる。
本発明のさらに別の実施形態は、特に定義されたポリシーに従って他のピアまたはピアのグループと提携するときに個々のピアまたはピアのグループがデータへのアクセスのみを得ることができる、制限されたデータ・アクセス・ポリシーを特徴とする。こうした実施形態のこの例では、ピアが、各グループが少なくとも1つのピアを有する異なるピアの4つのグループに分けられると仮定する。ブロードキャスタIBは、1000MBのデータ・ブロックから、それぞれ500MBのコード・セグメントを2つ確立し、これらのコード・セグメントを異なる2つの場所Q1およびQ2に送信し、次いで元のデータを破棄する。次いで場所Q1およびQ2のそれぞれは、ピアのグループごとに、165MB以下の異なるシード・パケット、あるいは送りパケットUPRを確立するように制限される。したがって、ピア・グループは、合計で、330MB以上、すなわち各場所Q1、Q2から165MB以上の重複しないデータを得ることができない。したがって、ピア・グループは、受信されたデータを、重複しない送りパケットUPRの形の330MB以下のデータに変換することができる。ピア・グループ内のピアは、確立された送りパケットを非常にうまく複製するが、330MBを超える重複しない送りパケットを取得することはない。したがって、ピアがデータベースを再構築するには、常に、1000MBを超える一意の送りパケットUPRを集めるために、4つすべての異なるピア・グループからデータを集めることが必要である。つまり、それ自体のグループから、またはQ1およびQ2から受信されたデータを変換することによって330MBの送りパケットUPRを取得し、次いで異なる2つのグループのピアから330MBの送りパケットUPRを、4つのグループの最後のピアから10MBを受信することができる。あるいは、異なる4つのグループまたは他の任意の構成から250MBのデータを受信することができる。したがって、この実施形態は、データをいくつかのピアに配布することができるような方法でデータの配布を可能にするが、このグループのピアがデータベースを再現することができ得ることに他の3つのグループが同意したグループに属するピアによって再現できるだけであることを依然として保証する。IBがそれを破棄した後、少なくとも4つのグループに広がる少なくとも4つのピアがデータの交換に同意する前は、システムのいずれの部分もデータベースの十分な知識を有してないことに留意されたい。
あるグループのピアが他のグループの任意のピアを知らず、したがって全データ量を取得する可能性がない代替実施形態において、すべてのピア・グループの知識を含むサーバなどの中央ピアは、それ自体の判断で、必要な他のピアの連絡情報を発信することによって、ピアの一部またはすべてが必要な送りパケットを集めることができるようにすることができる。それによって、図2に示された配布の望ましい中間状態を確立し、依然として誰がデータにアクセスできるか、およびいつアクセスできるかを制御することができる。これは、例えば、使用のために実際にリリースされる前に、映画や、新しいバージョンのゲームまたはコンピュータ・プログラムを配布するために使用することができる。
本発明の一実施形態によるネットワークの基本的原理を示す図である。 本発明の一実施形態によるネットワークの基本的原理を示す図である。 本発明の一実施形態によるネットワークの基本的原理を示す図である。 本発明の一実施形態によるネットワークの基本的原理を示す図である。 本発明の一実施形態による配布方法の所望の中間状態を示す図である。 上記の中間状態を達成する簡単な方法を示す図である。 本発明の一実施形態によるネットワーク上で適用可能な考え得る様々なピア・タイプを示す図である。 本発明による好ましい中間構造の全体的な原理を示す図である。 本発明の好ましい実施形態による前段階の入力代表データの確立のプロセスを示す図である。 本発明の好ましい実施形態による前段階の入力代表データの確立のプロセスを示す図である。 本発明の好ましい実施形態による前段階の入力代表データの確立のプロセスを示す図である。 本発明の好ましい実施形態による前段階の入力代表データの確立のプロセスを示す図である。 前段階の入力代表データに基づく入力代表データの生成を示す図である。 前段階の入力代表データに基づく入力代表データの生成を示す図である。 入力代表データの入力の一意の部分的な符号化表現への変換を示す図である。 入力代表データの入力の一意の部分的な符号化表現への変換を示す図である。 入力代表データの入力の一意の部分的な符号化表現への変換を示す図である。 一意の部分的な符号化表現の入力データへの変換による入力データの再確立を示す図である。 本発明の一実施形態の符号化/復号化の概念を示す図である。 ビデオのライブ・ストリーミングに使用する本発明の一実施形態を示す図である。

Claims (46)

  1. データ・ライブ・ストリーミング・システムであって、
    ピアツーピア・ストリーミング・ネットワークの少なくとも一部分を形成する少なくとも2つのライブ・ストリーミング受信側(LSR)と、
    複数のライブ・ストリーミング・受信側(LSR)に配布される入力データ(I)を含む少なくとも1つのデータ・ライブ・ストリーミング・ブロードキャスタ(LSB)と、
    該少なくとも2つのライブ・ストリーミング受信側(LSR)がそれぞれ、該入力データ(I)表現を複数の損失耐性のある符号化表現に変換する手段と、該ピアツーピア・ストリーミング・ネットワークの他のライブ・ストリーミング受信側(LSR)に該複数の損失耐性のある符号化表現を送信する手段とを含むデータ・ライブ・ストリーミング・システム。
  2. 該少なくとも2つのライブ・ストリーミング受信側(LSR)が該入力データ(I)表現を複数の損失耐性のある符号化表現に変換する該手段によって入力データ(I)の少なくとも2つの一意の部分的な符号化表現(UPR)を集合的に提供する請求項1に記載のデータ・ライブ・ストリーミング・システム。
  3. 該一意の部分的な符号化表現(UPR)のうちの少なくとも2つが、集合的に、データの完全な表現を形成する請求項1に記載のデータ・ライブ・ストリーミング・システム。
  4. 複数の損失耐性のある符号化表現が、該少なくとも2つのライブ・ストリーミング受信側(LSR)によって提供された入力データ(I)のM個の一意の部分的な符号化表現(UPR)を含み、該ライブ・ストリーミング・ブロードキャスタ(LSB)からの入力データ(I)が、該M個の一意の部分的な符号化表現(UPR)のN個のサブセットによって表される請求項1乃至3の何れか1項に記載のデータ・ライブ・ストリーミング・システム。
  5. 一意の部分的な符号化表現(UPR)のうちの該個数Mが実質的にライブ・ストリーミング受信側(LSR)の数に対応する請求項4に記載のデータ・ライブ・ストリーミング・システム。
  6. 該少なくとも1つのライブ・ストリーミング・ブロードキャスタ(LSB)からの入力データ(I)が、リードソロモンベースの損失耐性のあるコード・セグメントによって符号化されるN個の一意の部分的な符号化表現(UPR)の1つのサブセットによって完全に表される請求項1乃至5の何れか1項に記載のデータ・ライブ・ストリーミング・システム。
  7. 該一意の部分的な符号化表現(UPR)が、LTベースの損失耐性のあるコード・セグメントによって符号化される請求項2乃至6の何れか1項に記載のデータ・ライブ・ストリーミング・システム。
  8. 該少なくとも2つのライブ・ストリーミング受信側(LSR)のうちの少なくとも1つが、データのN個の一意の部分的な符号化表現(UPR)を復号することによって該ライブ・ストリーミング・ブロードキャスタ(LSB)からの符号化データを再生成し、該N個の一意の部分的な符号化表現(UPR)のうちの少なくとも1つが他のライブ・ストリーミング受信側(LSR)によって生成される請求項1乃至7の何れか1項に記載のデータ・ライブ・ストリーミング・システム。
  9. データの該損失耐性のあるコード表現がフレームで提供される請求項1乃至8の何れか1項に記載のデータ・ライブ・ストリーミング・システム。
  10. 該フレームが該ライブ・ストリーミング・ブロードキャスタ(LSB)によって生成され、連続して送信されるタイム・フレームを含む請求項9に記載のデータ・ライブ・ストリーミング・システム。
  11. 該少なくとも1つのライブ・ストリーミング・ブロードキャスタ(LSB)からの入力データ(I)の表現が、連続するフレームで構築され、フレームの送信が、該少なくとも2つのライブ・ストリーミング受信側(LSR)へのデータ表現の初期送信によって開始され、該少なくとも2つのライブ・ストリーミング受信側(LSR)が、該データ表現又はその派生物を、損失耐性のあるコード・セグメントとして他のライブ・ストリーミング受信側(LSR)に流し、受信側がN個の一意の損失耐性のあるコード・セグメントを集め、該少なくとも1つのライブ・ストリーミング・ブロードキャスタ(LSB)から送信された該フレームをライブ・ストリーミング信号として再生成する請求項1乃至10の何れか1項に記載のデータ・ライブ・ストリーミング・システム。
  12. 該ピアツーピアがグリッドベースのシステムを含む請求項1乃至11の何れか1項に記載のデータ・ライブ・ストリーミング・システム。
  13. 該データがビデオ及び/又は音声ストリームを含む請求項1乃至12の何れか1項に記載のデータ・ライブ・ストリーミング・システム。
  14. ネットワークであって、
    少なくとも1つの入力データ(I)ブロードキャスタ(IB)と、
    該少なくとも1つの入力ブロードキャスタ(IB)からの入力代表データ(IRD)を入力データ(I)の複数のM個の一意の部分的な符号化表現(UPR)に変換する複数のピア(P)とを含み、
    該M個の一意の部分的な符号化表現の複数のコード・サブセット(W1、W2、W3、...)が、該入力データ(I)の異なるN個の一意の部分的な符号化表現(UPR)を含み、該複数のコード・サブセット(W1、W2、W3、...)の各々が、該入力データIを表し、NがM−1未満である、ネットワーク。
  15. 該複数のピア(P)の各々が、入力データ(I)の該M個の一意の部分的な符号化表現(UPR)のうちの少なくとも1つを生成する請求項14に記載のネットワーク。
  16. 該コード・サブセット(W1、W2、W3、...)のうちの少なくとも1つが、該入力データ(I)の符号化バージョンを表す請求項14又は15に記載のネットワーク。
  17. 該コード・サブセット(W1、W2、W3、...)のうちの少なくとも1つがLTベースのコードによって符号化される請求項14乃至16の何れか1項に記載のネットワーク。
  18. 該コード・サブセット(W1、W2、W3、...)のうちの少なくとも1つがリードソロモンベースのコードによって符号化される請求項14乃至17の何れか1項に記載のネットワーク。
  19. 該ネットワークが、少なくとも2つの受信側ピア(RP)を含み、該少なくとも2つの受信側ピア(RP)が、該コード・サブセット(W1、W2、W3、...)のうちの少なくとも1つを集め、該サブセット(W1、W2、W3、...)のうちの少なくとも1つを該符号化データに対応するデータに復号する請求項14乃至18の何れか1項に記載のネットワーク。
  20. 該少なくとも2つの受信側ピア(RP)によって行われる該収集が、該複数のピア(P)のうちの少なくとも1つへの要求に基づいて行われる請求項19に記載のネットワーク。
  21. 該少なくとも2つの受信側ピア(RP)によって行われる該収集が、該複数のピア(P)のうちの少なくとも1つによって行われるプッシュ送信に基づいて行われる請求項19に記載のネットワーク。
  22. 該複数のピア(P)の少なくとも1つが受信側ピア(RP)を形成する請求項14乃至21の何れか1項に記載のネットワーク。
  23. 該入力代表データ(IRD)が少なくとも2つの中間ピア(IP)によって少なくとも部分的に確立される請求項14乃至22の何れか1項に記載のネットワーク。
  24. 該中間ピア(IP)が入力代表データ(IRD)を確立するように構成されている中間処理工程をさらに含む請求項23に記載のネットワーク。
  25. 該複数のピア(P)の少なくとも1つが、中間ピア(IP)を形成する請求項14乃至24の何れか1項に記載のネットワーク。
  26. 該複数のピア(P)の総数が5より多く、中間ピア(IP)の数がピア(P)の総数の1/5から1/100の間である請求項23乃至25の何れか1項に記載のネットワーク。
  27. 該入力代表データ(IRD)が、該ブロードキャスタ(IB)から少なくとも2つの中間ピア(IP)に送信される請求項14乃至26の何れか1項に記載のネットワーク。
  28. 該少なくとも2つの中間ピア(IP)が、該入力データ(I)の部分的な表現のみを受信する請求項23乃至27の何れか1項に記載のネットワーク。
  29. 該一意の部分的な符号化表現(UPR)が、該複数のピア(P)とは異なる複数のピアによって生成される請求項14乃至28の何れか1項に記載のネットワーク。
  30. 該複数のピア(P)とは異なるピアによって該部分的な符号化表現(UPR)を生成することによって該一意の部分的な符号化表現(UPR)の一意性が確実にされる請求項14乃至29の何れか1項に記載のネットワーク。
  31. 該複数のピア(P)のうちの少なくとも1つのピアが、プル・プロセスによって、入力代表データ(IRD)を集め、少なくとも1つの一意の部分的な符号化表現に変換する請求項14乃至30の何れか1項に記載のネットワーク。
  32. 該複数のピア(P)のうちの少なくとも1つのピアが、プッシュ・プロセスによって、入力代表データ(IRD)を集め、少なくとも1つの一意の部分的な符号化表現に変換する請求項14乃至31の何れか1項に記載のネットワーク。
  33. 該入力データ(I)がリアルタイム・ベースで該少なくとも1つの入力データ・ブロードキャスタ(IB)から送信される請求項14乃至32の何れか1項に記載のネットワーク。
  34. 該入力データ(I)がフレームでリアルタイム・ベースで該少なくとも1つの入力データブロードキャスタ(IB)から送信される請求項14乃至33の何れか1項に記載のネットワーク。
  35. 該ネットワークがビデオ・ストリーミング・ネットワークである請求項14乃至34の何れか1項に記載のネットワーク。
  36. 該ネットワークが要求に応じてビデオ・ストリーミングを行っている請求項14乃至35の何れか1項に記載のネットワーク。
  37. 該ネットワークがライブビデオ・ストリーミングを行っている請求項14乃至36の何れか1項に記載のネットワーク。
  38. 該ネットワークが、インターネットによって形成され、該複数のピア(P)がインターネットと通信するコンピュータを含む請求項14乃至37の何れか1項に記載のネットワーク。
  39. 該複数のピア(P)のうちの少なくとも1つが、他のピアによって生成された入力データ(I)の部分的な符号化表現(UPR)を収集又は使用することなく、入力代表データ(IRD)を入力データ(I)の少なくとも1つの一意の部分的な符号化表現(UPR)に変換するコンピュータを含む請求項14乃至38の何れか1項に記載のネットワーク。
  40. 該複数のピア(P)のうちの少なくとも1つが、複数のモードの間の切り替えを行うことができ、該複数のモードは、
    該複数のピア(P)のうちの少なくとも1つが、少なくとも1つの部分的な符号化表現(UPR)を生成し、少なくとも1つのコード・サブセット(W1、W2、W3、)を取得するために、該複数のピア(P)とは異なる他のピアによって生成された部分的な符号化表現を集め、該少なくとも1つのコード・サブセット(W1、W2、W3、)を復号する少なくとも1つのモードと、
    該複数のピア(P)のうちの該少なくとも1つが、単に、又は主に少なくとも1つの部分的な符号化表現(UPR)のプロデューサとして働く少なくとも1つのアイドル・モードとからなる請求項14乃至39の何れか1項に記載のネットワーク。
  41. 該複数のピア(P)が、暗黙的又は明示的に該入力データ(I)で定義される請求項14乃至40の何れか1項に記載のネットワーク。
  42. 該符号化入力データ(I)がデータを定義するピアに関連付けられる請求項14乃至41の何れか1項に記載のネットワーク。
  43. 該一意の部分的な符号化表現(UPR)が損失耐性のあるコードを含む請求項14乃至42の何れか1項に記載のネットワーク。
  44. 該入力データ(I)がビデオ・ストリーミングを含み、
    該ブロードキャスタ(IB)がビデオ・ストリーミング・ブロードキャスタを含み、
    該複数のピア(P)のうちの少なくとも2つがビデオ・ストリームの受信側を含む請求項14乃至43の何れか1項に記載のネットワーク。
  45. 入力データ(I)を含む少なくとも1つのデータ・ライブ・ストリーミング・ブロードキャスタ(LSB)及び少なくとも2つのライブ・ストリーミング受信側(LSR)を含む請求項1乃至13の何れか1項に記載のライブ・ストリーミング・システムにおけるデータのストリーミングの方法であって、
    該少なくとも2つのライブ・ストリーミング受信側(LSR)が該入力データ(I)の表現を複数の損失耐性のある符号化表現に変換し
    該少なくとも2つのライブ・ストリーミング受信側(LSR)が該複数の損失耐性のある符号化表現を他のストリーミング受信側(LSR)に送信する方法。
  46. 少なくとも1つの入力データ・ブロードキャスタ(IB)と、
    該少なくとも1つの入力ブロードキャスタ(IB)からの入力代表データ(IRD)を入力データ(I)の複数のM個の一意の部分的な符号化表現(UPR)に変換する複数のピア(P)とを含む請求項14乃至44の何れか1項に記載のネットワークにおいて入力データ(I)を配布する方法であって、
    該M個の一意の部分的な符号化表現の複数のコード・サブセット(W1、W2、W3、...)が該入力データ(I)のN個の異なる一意の部分的な符号化表現(UPR)を含み、各サブセット(W1、W2、W3、...)が該入力データIを表し、NがM−1未満である方法。
JP2007504252A 2004-03-22 2004-03-22 好ましくはストリーミング・システムに適用される配布方法 Expired - Fee Related JP4690387B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/DK2004/000197 WO2005091585A1 (en) 2004-03-22 2004-03-22 Distribution method, preferably applied in a streaming system

Publications (2)

Publication Number Publication Date
JP2007529832A JP2007529832A (ja) 2007-10-25
JP4690387B2 true JP4690387B2 (ja) 2011-06-01

Family

ID=34957148

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007504252A Expired - Fee Related JP4690387B2 (ja) 2004-03-22 2004-03-22 好ましくはストリーミング・システムに適用される配布方法

Country Status (4)

Country Link
US (3) US7581158B2 (ja)
EP (1) EP1728373B1 (ja)
JP (1) JP4690387B2 (ja)
WO (1) WO2005091585A1 (ja)

Families Citing this family (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8996646B2 (en) * 2004-07-09 2015-03-31 Codemate A/S Peer of a peer-to-peer network and such network
US7174385B2 (en) * 2004-09-03 2007-02-06 Microsoft Corporation System and method for receiver-driven streaming in a peer-to-peer network
US8904456B2 (en) 2006-02-13 2014-12-02 Tvu Networks Corporation Methods, apparatus, and systems for providing media content over a communications network
US9047310B2 (en) * 2006-02-22 2015-06-02 Microsoft Technology Licensing, Llc Reliable, efficient peer-to-peer storage
US8286218B2 (en) 2006-06-08 2012-10-09 Ajp Enterprises, Llc Systems and methods of customized television programming over the internet
US8117514B2 (en) * 2006-11-13 2012-02-14 Qualcomm Incorporated Methods and apparatus for encoding data in a communication network
JP5051429B2 (ja) * 2006-11-14 2012-10-17 日本電気株式会社 暗号鍵管理方法、そのシステム及びそのプログラム
GB2450473A (en) * 2007-06-04 2008-12-31 Sony Comp Entertainment Europe A Server in a Peer to Peer system selecting and notifying a device that it is to become a member of a peer group
US9769255B2 (en) 2007-12-24 2017-09-19 Core Wireless Licensing S.A.R.L. Continuous scheduling for peer-to-peer streaming
US8161166B2 (en) 2008-01-15 2012-04-17 Adobe Systems Incorporated Information communication using numerical residuals
US8082320B1 (en) 2008-04-09 2011-12-20 Adobe Systems Incorporated Communicating supplemental information over a block erasure channel
US8126995B2 (en) 2008-06-23 2012-02-28 Adobe Systems Incorporated Multi-source broadcasting in peer-to-peer network
US20100094953A1 (en) * 2008-10-09 2010-04-15 Samsung Electronics Co., Ltd. Method and apparatus for transmitting/receiving broadcast data through peer-to-peer network
US8799496B2 (en) 2009-07-21 2014-08-05 Eloy Technology, Llc System and method for video display transfer between video playback devices
US9413393B2 (en) * 2009-12-29 2016-08-09 International Business Machines Corporation Encoding multi-media content for a centralized digital video storage system
US9672108B2 (en) 2009-12-29 2017-06-06 International Business Machines Corporation Dispersed storage network (DSN) and system with improved security
US20130145405A1 (en) * 2011-12-06 2013-06-06 Fredrik Carpio Using different physical interface to request retransmission of packet lost on unidirectional interface
US8799390B2 (en) 2012-06-11 2014-08-05 Nimble TV, Inc. Remote subscription management method and system
US9537609B2 (en) 2012-08-02 2017-01-03 International Business Machines Corporation Storing a stream of data in a dispersed storage network
US10651975B2 (en) 2012-08-02 2020-05-12 Pure Storage, Inc. Forwarding data amongst cooperative DSTN processing units of a massive data ingestion system
US20140310735A1 (en) * 2013-04-12 2014-10-16 Codemate A/S Flat rate billing of content distribution
US8718445B1 (en) 2013-09-03 2014-05-06 Penthera Partners, Inc. Commercials on mobile devices
US9244916B2 (en) * 2013-10-01 2016-01-26 Penthera Partners, Inc. Downloading media objects
WO2016077456A1 (en) 2014-11-11 2016-05-19 Akamai Technologies, Inc. Content delivery to physically-proximate devices using a mesh-assisted cache
EP3593502B1 (en) 2017-03-07 2022-10-12 Akamai Technologies, Inc. Cooperative multipath
US11711382B2 (en) * 2019-11-27 2023-07-25 Clarity Consulting Corporation Method and system of deducing state logic data within a distributed network

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006031693A (ja) * 2004-07-02 2006-02-02 Microsoft Corp ネットワークコーディングを使用したコンテンツ配信

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6081909A (en) * 1997-11-06 2000-06-27 Digital Equipment Corporation Irregularly graphed encoding technique
US6073250A (en) * 1997-11-06 2000-06-06 Luby; Michael G. Loss resilient decoding technique
JP3926513B2 (ja) * 1999-08-09 2007-06-06 富士通株式会社 情報配信装置、情報配信方法および情報配信プログラムを記録したコンピュータ読み取り可能な記録媒体
US7149893B1 (en) * 1999-09-07 2006-12-12 Poofaway.Com, Inc. System and method for enabling the originator of an electronic mail message to preset an expiration time, date, and/or event, and to control processing or handling by a recipient
US7036138B1 (en) * 2000-11-08 2006-04-25 Digeo, Inc. Method and apparatus for scheduling broadcast information
US20020087592A1 (en) * 2000-12-29 2002-07-04 Jamal Ghani Presentation file conversion system for interactive collaboration
US20020085030A1 (en) * 2000-12-29 2002-07-04 Jamal Ghani Graphical user interface for an interactive collaboration system
US20020129159A1 (en) * 2001-03-09 2002-09-12 Michael Luby Multi-output packet server with independent streams
US8473396B2 (en) * 2001-08-14 2013-06-25 Bloomberg L.P. Distribution and mapping of financial records from data stream
JP4311547B2 (ja) * 2001-10-24 2009-08-12 ザ ファンタスティック アイピー ゲゼルシャフト ミット ベシュレンクテル ハフツング コンテンツをマルチキャストする方法
AU2003211057A1 (en) * 2002-02-15 2003-09-09 Digital Fountain, Inc. System and method for reliably communicating the content of a live data stream
US20040107242A1 (en) * 2002-12-02 2004-06-03 Microsoft Corporation Peer-to-peer content broadcast transfer mechanism
US8001187B2 (en) * 2003-07-01 2011-08-16 Apple Inc. Peer-to-peer active content sharing
US7392319B2 (en) * 2004-04-23 2008-06-24 International Business Machines Corporation Method and apparatus for failure resilient forwarding of data over a computer network
US20050281404A1 (en) * 2004-06-17 2005-12-22 Matsushita Electric Industrial Co., Ltd. Scalable streaming media authentication
KR100631615B1 (ko) * 2004-12-31 2006-10-11 엘지전자 주식회사 멀티미디어 메세지 수신 방법
US7474631B2 (en) * 2005-01-13 2009-01-06 International Business Machines Corporation On-demand group communication services with quality of service (QoS) guarantees
US7818445B2 (en) * 2008-10-15 2010-10-19 Patentvc Ltd. Methods and devices for obtaining a broadcast-like streaming content

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006031693A (ja) * 2004-07-02 2006-02-02 Microsoft Corp ネットワークコーディングを使用したコンテンツ配信

Also Published As

Publication number Publication date
JP2007529832A (ja) 2007-10-25
US20090276536A1 (en) 2009-11-05
US7581158B2 (en) 2009-08-25
US7865811B2 (en) 2011-01-04
US8078946B2 (en) 2011-12-13
EP1728373A1 (en) 2006-12-06
EP1728373B1 (en) 2018-01-03
US20080052606A1 (en) 2008-02-28
WO2005091585A1 (en) 2005-09-29
US20110066749A1 (en) 2011-03-17

Similar Documents

Publication Publication Date Title
JP4690387B2 (ja) 好ましくはストリーミング・システムに適用される配布方法
Byers et al. Informed content delivery across adaptive overlay networks
Byers et al. A digital fountain approach to asynchronous reliable multicast
EP1633111B1 (en) A system and method for distributed streaming of scalable media
US7174385B2 (en) System and method for receiver-driven streaming in a peer-to-peer network
EP1633112B1 (en) A system and method for erasure coding of streaming media
Thomos et al. Network coding of rateless video in streaming overlays
WO2003096200A1 (en) Data storing method, data storing system, data recording control apparatus, data recording instructing apparatus, data receiving apparatus, and information processing terminal
US20130198151A1 (en) Methods for file sharing related to the bit fountain protocol
Eittenberger et al. Raptor codes for P2P streaming
Banerjee et al. Scalable resilient media streaming
Wu et al. rStream: resilient peer-to-peer streaming with rateless codes
Kostić et al. High-bandwidth data dissemination for large-scale distributed systems
Kusumoto et al. Tree-based application layer multicast using proactive route maintenance and its implementation
Xu et al. Directedpush-a high performance peer-to-peer live streaming system using network coding
Nguyen et al. A p2p video delivery network (p2p-vdn)
Hoda et al. LiveCod: A mesh-pull P2P live streaming system with XOR-based network coding
Du et al. VCNF: A secure video conferencing system based on P2P technology
Wang et al. An Efficient Transmission Scheme for Media Content Distribution Platform
JP2023554289A (ja) マルチソースメディア配信システム及び方法
Neumann Large Scale Content Delivery applied to Files and Videos
Cherkasova ALM-FastReplica: Optimizing the Reliable Distribution of Large Files within CDNs
Neumann Large Scale Content Distribution applied to Files and Videos
Peltotalo Solutions for Large-Scale Content Delivery over the Internet Protocol
Su Across-Peer Rate Allocation Algorithm in Peer-to-peer Networks

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090803

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20091102

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20091110

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100203

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100621

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20100921

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20100929

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20101221

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20110124

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110217

R150 Certificate of patent or registration of utility model

Ref document number: 4690387

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140225

Year of fee payment: 3

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees