JP5058468B2 - ストリーミングメディアの消去耐性符号化のための方法、該方法を実行するコンピュータ実行可能命令を記録した媒体、及びシステム - Google Patents
ストリーミングメディアの消去耐性符号化のための方法、該方法を実行するコンピュータ実行可能命令を記録した媒体、及びシステム Download PDFInfo
- Publication number
- JP5058468B2 JP5058468B2 JP2005251995A JP2005251995A JP5058468B2 JP 5058468 B2 JP5058468 B2 JP 5058468B2 JP 2005251995 A JP2005251995 A JP 2005251995A JP 2005251995 A JP2005251995 A JP 2005251995A JP 5058468 B2 JP5058468 B2 JP 5058468B2
- Authority
- JP
- Japan
- Prior art keywords
- serving
- erasure
- media
- peer
- client
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims description 60
- 238000009877 rendering Methods 0.000 claims abstract description 25
- 239000013598 vector Substances 0.000 claims description 43
- 239000000872 buffer Substances 0.000 claims description 19
- 230000005540 biological transmission Effects 0.000 claims description 17
- 230000004044 response Effects 0.000 claims description 13
- 238000004891 communication Methods 0.000 claims description 12
- 238000004458 analytical method Methods 0.000 claims description 5
- 230000000717 retained effect Effects 0.000 claims description 5
- 230000003111 delayed effect Effects 0.000 claims description 3
- 230000006870 function Effects 0.000 description 14
- 230000008569 process Effects 0.000 description 13
- 230000008901 benefit Effects 0.000 description 12
- 239000011159 matrix material Substances 0.000 description 10
- 238000012545 processing Methods 0.000 description 10
- 238000010586 diagram Methods 0.000 description 9
- 230000007246 mechanism Effects 0.000 description 9
- 101000969688 Homo sapiens Macrophage-expressed gene 1 protein Proteins 0.000 description 8
- 102100021285 Macrophage-expressed gene 1 protein Human genes 0.000 description 8
- 230000003287 optical effect Effects 0.000 description 5
- 230000002093 peripheral effect Effects 0.000 description 5
- 238000007726 management method Methods 0.000 description 4
- 230000005055 memory storage Effects 0.000 description 4
- 230000000737 periodic effect Effects 0.000 description 4
- 230000015556 catabolic process Effects 0.000 description 3
- 238000006731 degradation reaction Methods 0.000 description 3
- 230000001419 dependent effect Effects 0.000 description 3
- 238000013459 approach Methods 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000012937 correction Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000005070 sampling Methods 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 238000011064 split stream procedure Methods 0.000 description 2
- 238000000547 structure data Methods 0.000 description 2
- CDFKCKUONRRKJD-UHFFFAOYSA-N 1-(3-chlorophenoxy)-3-[2-[[3-(3-chlorophenoxy)-2-hydroxypropyl]amino]ethylamino]propan-2-ol;methanesulfonic acid Chemical compound CS(O)(=O)=O.CS(O)(=O)=O.C=1C=CC(Cl)=CC=1OCC(O)CNCCNCC(O)COC1=CC=CC(Cl)=C1 CDFKCKUONRRKJD-UHFFFAOYSA-N 0.000 description 1
- 101150012579 ADSL gene Proteins 0.000 description 1
- 102100020775 Adenylosuccinate lyase Human genes 0.000 description 1
- 108700040193 Adenylosuccinate lyases Proteins 0.000 description 1
- 240000004050 Pentaglottis sempervirens Species 0.000 description 1
- 235000004522 Pentaglottis sempervirens Nutrition 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 238000005266 casting Methods 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000012092 media component Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 229920001690 polydopamine Polymers 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000032258 transport Effects 0.000 description 1
- 230000007723 transport mechanism Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/182—Distributed file systems
- G06F16/1834—Distributed file systems implemented based on peer-to-peer networks, e.g. gnutella
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
- H04L65/61—Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio
- H04L65/612—Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio for unicast
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
- H04L67/1044—Group management mechanisms
- H04L67/1046—Joining mechanisms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
- H04L67/1061—Peer-to-peer [P2P] networks using node-based peer discovery mechanisms
- H04L67/1065—Discovery involving distributed pre-established resource-based relationships among peers, e.g. based on distributed hash tables [DHT]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
- H04L67/1074—Peer-to-peer [P2P] networks for supporting data block transmission mechanisms
- H04L67/1078—Resource delivery mechanisms
- H04L67/108—Resource delivery mechanisms characterised by resources being split in blocks or fragments
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1095—Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/30—Definitions, standards or architectural aspects of layered protocol stacks
- H04L69/32—Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
- H04L69/322—Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
- H04L69/329—Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the application layer [OSI layer 7]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/1066—Session management
- H04L65/1101—Session protocols
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/14—Multichannel or multilink protocols
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- Multimedia (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Mathematical Physics (AREA)
- Computing Systems (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Business, Economics & Management (AREA)
- General Business, Economics & Management (AREA)
- Software Systems (AREA)
- Information Transfer Between Computers (AREA)
- Computer And Data Communications (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
- ing And Chemical Polishing (AREA)
Description
図1に、本発明が実施され得る適当なコンピューティングシステム環境100の一例を示す。コンピューティングシステム環境100は、適当なコンピューティング環境の一例にすぎず、本発明の用途または機能の範囲に関するどんな限定を示唆するものでもない。また、コンピューティング環境100は、例示的動作環境100に示す構成要素のいずれか1つまたはそれらの組合せに関連するどんな依存関係または要件を持つものであるとも解釈されるべきではない。
本明細書で説明する「PeerStreamer」は、緩やかに結合されたP2Pネットワークでの受信側主導のピアツーピア(P2P)メディアストリーミングを提供する。ネットワーク中の各ピアは、単純な動作だけを実行し、ストリーミングメディアの全部または一部をキャッシュすることができ、他のピアと協働せず、信頼性が低い可能性があり、任意の所与のストリーミングセッション中にオフラインになることも、オンラインになることもある。ネットワーク中の各クライアントは、ピアを調整し、複数のピアからメディアをストリーミングし、負荷均衡化を実行し、各ピアのオンライン/オフライン状態を処理し、ストリーミングメディアの復号化およびレンダリングを実行するようにリアルタイムで動作する。
前述のように、本明細書で説明するPeerStreamerは、緩やかに結合されたP2Pネットワークでの受信側主導のピアツーピア(P2P)メディアストリーミングのシステムおよび方法を提供する。ネットワーク中の各ピアは単純な動作だけを実行し、ストリーミングメディアの全部または一部をキャッシュすることができ、他のピアと協働せず、信頼性が低い可能性があり、任意の所与のストリーミングセッション中にオフラインになりことも、オンラインになることもある。ネットワーク中のクライアント(または受信側)は、各ピアを調整し、複数のピアからメディアをストリーミングし、負荷均衡化を実行し、各ピアのオンライン/オフライン状態を処理し、ストリーミングメディアの復号化およびレンダリングを実行するようにリアルタイムで動作する。
前述したプロセスを図3の全体システム図で示す。具体的には、図3のシステム図には、本明細書で説明する、PeerStreamerを実施するプログラムモジュール間の相互関係が示されている。図3に破線または点線で表す任意のボックスおよびボックス間の相互接続は、本明細書で説明するPeerStreamerの代替実施形態を表すこと、およびこれらの代替実施形態のいずれかまたはすべては、以下で説明するように、本明細書全体にわたって説明する他の代替実施形態と組み合わせて使用され得ることに留意すべきである。
前述の各プログラムモジュールが、PeerStreamerを実施するのに用いられる。前述したように、PeerStreamerは、緩やかに結合されたピアツーピア(P2P)ネットワークでの受信側主導のP2Pメディアストリーミングを提供する。以下の各項では、PeerStreamerの動作、および第2項で図2に関連して説明した各プログラムモジュールを実施する例示的方法の詳細な説明を行う。具体的には、以下の第3.1項および3.2項でPeerStreamer動作の詳細な説明を行い、続いて、図10に、その詳細な説明を考慮してPeerStreamerの全体動作を要約する動作流れ図を提示する。
以下の各段落では、本明細書で説明するPeerStreamerの特有の動作実施形態および代替実施形態について詳述する。具体的には、以下の各段落では、PeerStreamerによって使用される「ストリーミングメディアモデル」、要求されたストリーミングメディアの「メディア構造」(基本的には、メディアパケットまたは「データユニット」を取り出すためのデータIDを算出するのに必要とされるストリーミングメディアの特性を定義する「コンパニオンファイル」)、ストリーミングのためのメディアパケットの固定サイズ部分を表すPeerStreamerデータユニット、記憶所要量を減らすためのメディアの部分キャッシング、本来的に信頼性の低いサービングピアに対してPeerStreamerシステムの頑強性を増大させるためのメディアの高速消去符号化について述べる。
一般に、ストリーミングメディアは、それらが到着する際に復号化され、レンダリングされるパケットの流れからなる(それでストリーミングという名前で呼ばれる)。ストリーミングを使用しない場合、そのメディア全体を1つの大きな塊としてダウンロードしてからでないと、それを使用することができない。PeerStreamerによって使用されるストリーミングメディアファイルの一般的構造を図4に示す。
受信側主導のモードで動作するには、PeerStreamerクライアントは、各ピアにどのパケットおよび各パケットのどの部分を要求するか知るために、要求されるメディアパケットの構造を知る必要がある。この情報は、要求されるストリーミングメディアの構造の定義を含む一種の「コンパニオンファイル」として提供される。一般に、このメディア構造は、PeerStreamerクライアントにメディア全体の鳥瞰図(例えば、各パケットの開始タイムスタンプ、各パケットのデュレーションなど)を提供して、クライアントがP2Pストリーミングセッションを知的に計画し、個々のメディアパケットが復号化およびレンダリングに遅れずに到着することを確認できるようにする。メディア構造情報を含むコンパニオンファイルは、最初、そのメディアファイルが最初に符号化されるときに生成され、次いで、要求に応じて、各ストリーミングセッションの開始時に、そのメディアヘッダを求める最初の要求と共にクライアントにストリーミングされることに留意されたい。コンパニオンファイル中の情報は、メディアが従来のコーデックによって符号化された後で、メディアヘッダおよびパケットヘッダを分析することによっても生成され得ることに留意されたい。
一実施形態では、PeerStreamerは、メディアパケット、メディアヘッダおよびメディア構造を長さLの固定サイズのデータユニットに分割する。固定サイズのデータユニットを使用する理由は、そうすれば、PeerStreamerクライアントおよびサービングピアがサイズLのメモリブロックを事前に割り振ることができ、ゆえに、ストリーミングプロセス中の高くつくメモリ割り振り動作を回避することができるからである。さらに、メディアパケット(非常に大きい可能性がある)を小さい固定サイズのデータユニットに分割すれば、PeerStreamerクライアントが、より小さい細分度を用いてサービング負荷を各ピアに分散させることも可能になり、ピア間でより良い帯域幅負荷均衡化が達成される。
Ri=(i+1)L/T 式1
サービングのためには、各サービングピアは、そのサービング帯域幅に比例するメディアの一部を保持するだけでよい。しばしば、インターネットに接続された大部分のコンピュータのサービング(またはアップロード帯域幅)は、実質的に、(各個別ノードが受け取ることのできる最高のストリーミングビット速度を決定付ける)そのダウンロード帯域幅を下回ることがある。その結果として、インターネット上の各エンドユーザノードは、そのアップロード帯域幅とそのダウンロード帯域幅の間に不均衡を有する傾向がある。例えば、ホームユーザから利用可能な典型的な市販のADSL/ケーブルモデムネットワーク上のノードが与えられたと仮定すると、そのダウンロード帯域幅がそのアップロード帯域幅より1桁高いことは珍しいことではない。同様に、大学構内/企業ネットワーク上のノードは、通常、任意の所与のノードのP2P型アクティビティへの参加が、他の不可欠の諸機能に影響を及ぼさないように、サービング帯域幅に上限を定めている。
p=max(1.0,B/R) 式2
前述のように、各ピアは、本来的に信頼性が低い可能性がある。したがって、本来的に信頼性の低いサービングピアのサービング挙動を有効に処理するために、PeerStreamerシステムおよび方法においてさらなる冗長性を実現する何らかの手段を提供すれば有利である。この問題を処理することは、対処されなければならないいくつかの問題を提起する。例えば、各ピアによってメディアのどの部分pが保持されるべきか決定することは問題である。さらに、メディアは、最終的に、前述のデータユニットに分割されるため、各ピアがデータユニットのどの部分pを維持すべきか決定することも問題である。
以下の段落では、前述のPeerStreamerの動作詳細の説明を考慮して、PeerStreamer動作の実装について説明する。具体的には、以下の段落では、クライアントによるサービングピアの位置検出、取り出したメディア構造に基づくクライアント復号化およびレンダリングのセットアップ、PeerStreamerネットワーク接続、ストリーミングビット速度制御、PeerStreamerクライアント要求およびピア応答、および最後に、PeerStreamer要求およびステージングキューについて説明する。
前述のように、クライアントによって実行される最初のタスクは、サービングメディアの完全な、または一部のコピーを保持する近隣のサービングピアのリストのIPアドレスおよびリスニングポートを獲得することである。さらに、このリストは、メディアストリーミングセッション中にも更新される。前述のように、このリストを獲得する一般的な手法には、1)サーバからリストを取り出すこと、2)知られているサービングピアからリストを取り出すこと、および3)分散ハッシュ表(DHT)手法を使って、事前に、そのメディアサーバもサービングピアも知られていないサービングピアを識別することが含まれる。
サービングピアリストを確保した後で、クライアントは、それらのサービングピアのそれぞれに接続しようと試みる。接続されると、クライアントは、各ピアの可用性ベクトルを取り出し、前述のように、キー競合があればそれを解決する。次いで、クライアントは、ピアの1つからメディアヘッダおよびメディア構造の長さを取り出す。両方の長さが取り出された後、メディアヘッダおよびメディア構造のデータユニットのIDが構築される。次いで、メディアヘッダおよびメディア構造を、第3.2.6項でさらに詳細に説明するように、P2Pで取り出すことができる。メディアヘッダが取り出されると、クライアントは、メディアがクライアントにストリーミングされる際にそれを復号化し、レンダリングするためにどのデコーダおよびレンダラを初期設定すべきか決定する。
Windows(登録商標)Media PlayerやRealPlayer(登録商標)といった大部分のメディアストリーミングクライアントは、UDPの上で搬送される、よく知られているリアルタイムトランスポートプロトコル(RTP)を使用する。UDP/RTPプロトコルが、通常、メディアストリーミングアプリケーションに選択されるのは、1)UDPプロトコルはIPマルチキャストをサポートし、これは、IPマルチキャスト対応のネットワーク上のノードの集合にメディアを送信する際に効率的であることがあり、2)UDPプロトコルはどんな再送信機能もデータ速度管理機能も備えないからである。その結果として、ストリーミングサーバおよびクライアントは、メディアパケットのタイムリーな配信を保証するために、前方誤り訂正(FEC)など、高度なパケット配信機能を実施することができる。
非埋め込み符号化メディアは、クライアント側でのメディア再生の劣化を防ぐために、好ましくは常に、そのメディアのビット速度でストリーミングされる。しかしながら、埋め込み符号化メディアのストリーミングビット速度は、ストリーミングセッション中に変動し得る。
Rraw=Th・(1+Trft−Tstaging)+Bstaging−Boutstanding 式5
Rfilter=(1−α)Rfilter+αRraw 式6
Rrecv=min(Rmin,Rinst) 式7
クライアントデータブロック要求およびそのピアによる応答の寿命(life)を、一般的に、図8に示す。具体的には、図8に示すように、クライアントは、要求を生成し、それを、アウトバウンドTCP接続を介して特定のサービングピアに送信する。さらに、ネットワーク配信では、TCPは、その要求を、同じピアに発行された前の要求とまとめることができる。前の要求が送信中に失われた場合、TCPは、その要求の再送信も処理する。
Data_Unit_ID[32],Start_Index[4],Number_of_Blocks[4] 式9
の形を取り、式中、括弧内の数は、各コンポーネントのビット数である。
前述のように、PeerStreamerクライアントは、(消去符号化されている可能性のある)受信データブロックを保持するために単一のステージングキューを維持し、そこからデータブロックが組み立てられてデータユニットになり、次いで、メディアパケットになる。クライアントは、各ピアに送られた未完了の要求を保持するために、各サービングピアごとの別個の要求キューも維持する。これらの要求およびステージングキューの一例を図9に示す。
Σiai≧k 式10
を確認した後、クライアントは、各ピアの要求キュー中での利用可能な空間をチェックする。各ピアのRFTを、システム定数Trft程度に維持することが望ましい。検査済みの一実施形態では、約1.0秒程度のTrftが良い結果をもたらした。(短すぎる要求キューを使用すると、クライアントからピアまでの帯域幅を効率よく利用することができないことに留意されたい。)
ei=min(αi,(Thi・Trft−Bi,outstanding)/bk) 式11
式中、eiは、ピアiに要求することのできる消去符号化ブロックの数であり、bkは、消去符号化ブロックのサイズである。
Σiei<k 式12
である場合、クライアントは、サービングピアの要求キューがクリアされるまで待機する。データユニット要求は、Σiei≧kであるときにだけ形成され、各ピアに送信される。特定のピアに要求されるブロックの実数(bi)は、以下のように計算される。
前述の、図2から図9に関連する各プロセスを、図10の全体動作流れ図に示す。図10には、全体として、PeerStreamerのいくつかの動作実施形態を示す例示的動作流れ図が示されている。図10に破線または点線で表す任意のボックスおよびボックス間の相互接続は、本明細書で説明するPeerStreamerの代替実施形態を表すこと、およびこれらの代替実施形態のいずれかまたはすべては、以下で説明するように、本明細書全体にわたって説明する他の代替実施形態と組み合わせて使用され得ることに留意すべきである。
130 システムメモリ
134 オペレーティングシステム
144 オペレーティングシステム
145 アプリケーションプログラム
136 その他のプログラムモジュール
146 その他のプログラムモジュール
137 プログラムデータ
147 プログラムデータ
140 固定式不揮発性メモリインターフェース
150 着脱式不揮発性メモリインターフェース
160 ユーザ入力インターフェース
161 マウス
162 キーボード
170 ネットワークインターフェース
171 ローカルエリアネットワーク
172 モデム
173 広域ネットワーク
180 リモートコンピュータ
185 リモートアプリケーションプログラム
190 ビデオインターフェース
191 モニタ
195 出力周辺インターフェース
196 プリンタ
197 スピーカ
198 マイクロホン
199 オーディオインターフェース
200 サーバ
210 クライアント
220 サービングピア
300 メディア符号化モジュール
305 ピア位置検出モジュール
310 ピアリスト
315 分散ハッシュ表
320 可用性ベクトル取り出しモジュール
325 メディアヘッダ/メディア構造分析モジュール
330 クライアント構成モジュール
335 データユニットID計算モジュール
340 データユニット要求モジュール
345 データユニット処理モジュール
350 復号化/レンダリング/再生モジュール
805 TCP送信バッファ(サーバ)
810 TCP受信バッファ(サーバ)
815 ステージングキュー(クライアント)
820 TCP送信バッファ(クライアント)
830 圧縮オーディオ
840 圧縮ビデオ
845 オーディオデコーダ
850 ビデオデコーダ
855 圧縮されていないオーディオ
860 圧縮されていないビデオ
865 オーディオレンダリング
870 オーディオレンダリング
Claims (43)
- クライアントコンピュータと、サーバコンピュータとを少なくとも備えたピアツーピア(P2P)ネットワークでクライアントドリブンのマルチメディアのストリーミングを提供するコンピュータ実行可能命令を記録したコンピュータ読み取り可能な記録媒体において、前記マルチメディアは、到着した際に復号化され、レンダリングされるパケットのストリームから成り、前記コンピュータ実行可能命令は、コンピュータを前記クライアントコンピュータ又は前記サーバコンピュータとして機能させ、
前記コンピュータ実行可能命令は、
前記サーバコンピュータが、符号化されたメディアファイルを、後にn個のデータパケットが続くメディアヘッダと、n個のデータパケットを備えたメディアボディとに分離するステップであって、nは0より大きい整数であるステップと、
前記サーバコンピュータが、各データパケットを少なくとも1つのデータユニットに分離するステップと、
前記サーバコンピュータが、各データユニットをk個のオリジナルデータブロックに分離するステップと、
前記サーバコンピュータが、各データユニットの前記k個のオリジナルデータブロックを消去耐性符号化し、サービングピアのクラスタ内の複数の任意のサービングピアに対する第1番目の消去耐性符号化データブロックから第k番目の消去耐性符号化データブロックまでのk個の消去耐性符号化データブロックを生成するステップと、
前記サーバコンピュータが、生成された前記k個の消去耐性符号化データブロックを複数の任意のサービングピアに分配するステップと、
前記クライアントコンピュータが、消去耐性符号化データブロックを受け取る前に利用可能なサービングピアの前記クラスタ内の前記サービングピアのリストを受け取るステップと、
前記クライアントコンピュータが、サービングピアの前記リスト内の各サービングピアの可用性ベクトルを受け取るステップであって、前記可用性ベクトルは、消去耐性符号化キーと、前記対応するサービングピアによって保持される各データユニットの消去耐性符号化データブロックの数とを少なくとも含むステップと、
前記クライアントコンピュータが、各データユニットに対して、前記クラスタ内の任意のサービングピアから計k'個(k'はk以上)の消去耐性符号化データブロックを受け取るステップと、
前記クライアントコンピュータが、各データユニットに対して、前記k'個の受け取った消去耐性符号化データブロックから1個のデータユニットを再構築するステップと、
前記クライアントコンピュータが、前記サービングピアの1つから前記メディアヘッダを受け取るステップと、
前記クライアントコンピュータが、前記再構築されたデータユニットから前記メディアボディの前記データパケットを再構築するステップと
を含むことを特徴とするコンピュータ読み取り可能な記録媒体。 - 前記クライアントコンピュータが前記クラスタ内の任意のサービングピアから各データユニットに対し計k'個の消去耐性符号化データブロックを受け取るステップにおいて、最大距離分離可能(MDS)消去耐性符号を用いて、k'をkに等しくすることを特徴とする請求項1記載のコンピュータ読み取り可能な記録媒体。
- 前記サーバコンピュータが各データユニットのk個のオリジナルデータブロックを消去耐性符号化するステップは、各データユニットに対して、前記第1番目から第k番目の消去耐性符号化データブロックを生成するMDS消去耐性符号であるリードソロモン消去耐性符号を使用するステップを含むことを特徴とする請求項2記載のコンピュータ読み取り可能な記録媒体。
- 前記クライアントコンピュータが前記k個の受け取った消去耐性符号化データブロックから1個のデータユニットを再構築するステップは、k個の受け取った消去耐性符号化データブロックの各セットにリードソロモン消去耐性復号化動作を実行し、1個のデータユニットを再構築するステップを含むことを特徴とする請求項3記載のコンピュータ読み取り可能な記録媒体。
- 利用可能なサービングピアの前記クラスタ内の各サービングピアに、固定の消去耐性符号化キー空間を割り当て、該固定の消去耐性符号化キー空間は、前記サーバコンピュータによって決定されることを特徴とする請求項1記載のコンピュータ読み取り可能な記録媒体。
- 利用可能なサービングピアの前記クラスタ内の各サービングピアに、固定の消去耐性符号化キー空間を割り当て、利用可能なサービングピアの前記クラスタ内の各サービングピアに割り当てられる前記固定の消去耐性符号化キー空間は、各サービングピアにランダムに自己の消去耐性符号化キーのセットを生成させることによって決定されることを特徴とする請求項1記載のコンピュータ読み取り可能な記録媒体。
- 消去耐性符号化データブロックを受け取る前に、前記クライアントコンピュータは、前記サービングピアの1又は複数の前記繰り返されたキーを無効にし、前記同一のキーの消去耐性符号化データブロックのリクエストが前記同一の消去耐性符号化キーを共有する複数の利用可能なサービングピアに行われないようにすることを特徴とする請求項5又は6記載のコンピュータ読み取り可能な記録媒体。
- 前記クライアントコンピュータが前記クラスタ内の任意のサービングピアから各データユニットに対し計k'個の消去耐性符号化データブロックを受け取るステップにおいて、各消去耐性符号化データブロックを受け取るためのクライアントリクエストは、対応する各データユニットのIDと、前記対応するデータユニットの開始消去耐性符号化データブロックインデックスと、前記対応するデータユニットのために取り出される消去耐性符号化データブロックの数とを含むことを特徴とする請求項1記載のコンピュータ記録媒体。
- 前記クライアントコンピュータが、前記再構築されたデータパケットのリアルタイムクライアントベースのデコーディングを提供し、1又は複数の前記サービングピアから前記クライアントへのストリーミングメディア伝送を提供するステップを更に含むことを特徴とする請求項1記載のコンピュータ読み取り可能な記録媒体。
- 前記クライアントコンピュータが、前記再構築されたデータパケットのバッファされたクライアントベースのデコーディングを提供し、1又は複数の前記サービングピアから前記クライアントへのストリーミングメディア伝送を提供するステップを更に含み、前記バッファを使用して、ネットワークパケットロス及びジッタに対応するために、前記クライアントコンピュータに十分な時間を提供することを特徴とする請求項1記載のコンピュータ読み取り可能な記録媒体。
- 前記サービングピアの前記リストを受け取るステップは、前記サービングピアの一つから前記リストを受け取るステップと、前記サーバコンピュータから前記リストを受け取るステップと、分散ハッシュテーブル(DHT)参照を実行して前記サービングピアを識別するステップとのいずれかを含むことを特徴とする請求項1記載のコンピュータ読み取り可能な記録媒体。
- 前記サービングピアの前記リストは、前記クライアントコンピュータにより、前記クライアントへの前記ストリーミングメディア伝送の間に周期的に更新されることを特徴とする請求項1記載のコンピュータ読み取り可能な記録媒体。
- クライアント伝送リクエストとサービングピア伝送を含む、前記クライアントと各サービングピア間のデータ通信は、TCP通信プロトコルを用いて実行されることを特徴とする請求項1記載のコンピュータ読み取り可能な記録媒体。
- 前記クライアントと各サービングピアとの間のデータ通信は、自動再送リクエスト(ARQ)プロトコルを使用して、欠落し又は遅延したパケットを再送することを特徴とする請求項1記載のコンピュータ読み取り可能な記録媒体。
- 前記符号化されたメディアファイルをメディアヘッダとメディアボディとに分離するステップにおいて、前記符号化されたメディアファイルは、前記サーバコンピュータによって埋め込み符号化されていることを特徴とする請求項1記載のコンピュータ読み取り可能な記録媒体。
- 前記サーバコンピュータが各サービングピアのサービング帯域幅を決定するステップを更に含み、
生成され各サービングピアに格納される消去耐性符号化データブロックの数は、前記対応するサービング帯域幅と比例し、最大のk個のブロックにしたがって、前記メディアビットレートと反比例し、各サービングピアは、各サービングピアがサービング可能な符号化データブロックよりも多くの符号化データブロックを保持することを必要としないことを特徴とする請求項1記載のコンピュータ読み取り可能な記録媒体。 - 各サービングピアから受け取るべき消去耐性符号化データブロックの数は、前記サービングピアの前記可用性ベクトルに応じて前記クライアントコンピュータによって決定され、前記サービングピアによって保持される消去耐性符号化データブロックの数を含み、各サービングピアは、帯域幅をサービングし、各サービングピアは、各サービングピアが保持する消去耐性符号化データユニットより多くの消去耐性符号化データユニットを提供することを要求されないことを特徴とする請求項16記載のコンピュータ読み取り可能な記録媒体。
- 前記各データパケットは、前記サーバコンピュータにより埋め込み符号化されており、各データユニットは、対応するビットレートを有することを特徴とする請求項1記載のコンピュータ読み取り可能な記録媒体。
- 前記サーバコンピュータが、各サービングピアのサービング帯域幅を決定するステップを更に含み、生成され、各サービングピアに格納される消去耐性符号化データブロックの数は、前記対応するサービング帯域幅と比例し、最大のk個のブロックにしたがって、前記メディアビットレートと反比例し、各サービングピアは、各サービングピアがサービング可能な符号化データブロックよりも多くの符号化データブロックを保持することを必要としないことを特徴とする請求項18記載のコンピュータ読み取り可能な記録媒体。
- コンピューティングデバイスを使用して以下のステップを実行させ、ピアツーピア(P2P)ネットワーク内の1又は複数のクライアントにメディアをストリーミングする方法において、
サーバコンピュータが、符号化されたメディアファイルのデータパケットから生成された消去耐性符号化データブロックのサブセットを複数の利用可能なサービングピアの各々に任意に分配するステップと、
各サービングピア上で、消去耐性符号化キー空間の識別子を少なくとも含み、前記対応するサービングピアによって保持される消去耐性符号化データブロックの正確なサブセットを定義する可用性ベクトルを決定するステップと、
クライアントリクエストにしたがって、前記利用可能なサービングピアのリストをクライアントコンピュータに提供するステップと、
前記クライアントコンピュータ上で、リストアップされた各サービングピアの前記可用性ベクトルをダウンロードするため、さらに1又は複数の前記サービングピアから前記符号化されたメディアファイルのメディアヘッダをダウンロードするために提供された利用可能なサービングピアの前記リストを使用するステップと、
前記クライアントコンピュータ上で、前記可用性ベクトルのクライアントコンピュータ分析と、利用可能なサービングピアの前記リストとに基づいて、各データパケットの特定数の消去耐性符号化データブロックの伝送を1又は複数の特定のサービングピアに要求するステップと、
前記クライアントコンピュータが、前記データブロック伝送リクエストに応じて受信した各パケットをデコードしレンダリングするステップであって、前記クライアントコンピュータ上でリアルタイムストリーミングメディア再生を提供するステップと
を含むことを特徴とする方法。 - 前記可用性ベクトルを決定するステップにおいて、前記可用性ベクトルは、前記消去耐性符号化キー空間の識別子と、保持される各データパケットの消去耐性符号化ブロックの数とを少なくとも含むことを特徴とする請求項20記載の方法。
- 前記サーバコンピュータが前記符号化されたメディアファイルの消去耐性符号化データブロックのサブセットを任意分配するステップは、
前記サーバコンピュータが前記符号化されたメディアファイルのメディアボディをn個のデータパケットに分離するステップと、
前記サーバコンピュータが各データパケットを1又は複数のデータユニットに分離するステップと、
前記サーバコンピュータが各データユニットをk個のオリジナルデータブロックに分離するステップと、
前記サーバコンピュータが各データユニットの前記k個のオリジナルデータブロックを消去耐性符号化し、各データユニットに対して第1番目から第k番目までのk個の消去耐性符号化データブロックを生成するステップと
を含むことを特徴とする請求項20記載の方法。 - 前記サーバコンピュータが消去耐性符号化データブロックのサブセットを前記利用可能なサービングピアに任意に分配するステップの後に、各データユニットの第1番目乃至第k番目の前記消去耐性符号化データブロックを前記利用可能なサービングピアの各々に任意に格納するステップが続くことを特徴とする請求項22記載の方法。
- 前記クライアントコンピュータがデータブロック伝送リクエストに応じて受信された各パケットをデコーディングするステップは、
前記クライアントコンピュータが受け取った前記消去耐性符号化データブロックから各データユニットを再構築するステップと、
前記クライアントコンピュータが前記再構築されたデータユニットから前記メディアボディの前記データパケットを再構築するステップと、
前記クライアントコンピュータが前記再構築されたデータユニットを集め、前記符号化されたメディアファイルの復号化バージョンを提供するステップと
を含むことを特徴とする請求項20記載の方法。 - 前記消去耐性符号化データブロックのサブセットを任意分配するステップの前に、前記サーバコンピュータがk個のオリジナルデータブロックを消去耐性符号化するステップは、リードソロモン消去コードを用いて、各データユニットに対して第1番目から第k番目までのk個の消去耐性符号化データブロックを生成するステップを含むことを特徴とする請求項22記載の方法。
- 各利用可能なサービングピアは、固定された消去耐性符号化キー空間に割り当てられ、該固定の消去耐性符号化キー空間は、前記サーバコンピュータによって決定されることを特徴とする請求項20記載の方法。
- 各利用可能なサービングピアは、固定された消去耐性符号化キー空間に割り当てられ、各サービングピアは、自己の固定された消去耐性符号化キー空間をランダムに生成することを特徴とする請求項20記載の方法。
- 前記1又は複数の特定のサービングピアからの各データパケットの特定数の消去耐性符号化データブロックの伝送を要求するステップにおいて、前記クライアントコンピュータは、前記サービングピア内の1又は複数の繰り返されたキーを無効にし、前記同一キーの消去耐性符号化データブロックのリクエストが複数の利用可能なサービングピアに行われないようにすることを特徴とする請求項26又は27記載の方法。
- 前記クライアントコンピュータによる各パケットの前記デコーディング及びレンダリングは、前記クライアントコンピュータ上に少なくとも部分的にバッファされることを特徴とする請求項20記載の方法。
- 前記サーバコンピュータが前記クライアントコンピュータをサービングするために利用可能な各サービングピアのサービング帯域幅を取得するステップを更に含むことを特徴とする請求項20記載の方法。
- 前記サーバコンピュータが各サービングピアへ消去耐性符号化データブロックのサブセットを任意に分配するステップは、複数の消去耐性符号化データブロックを各サービングピアの前記サービング帯域幅に比例する各サービングピアに分配するステップを更に含むことを特徴とする請求項30記載の方法。
- 特定のサービングピアから伝送されるようにリクエストされる消去耐性符号化データブロックの前記特定数は、特定のサービングピアの前記サービング帯域幅に比例することを特徴とする請求項30記載の方法。
- 1又は複数の非協働ピアから1又は複数のクライアントへの、受信側ドリブンの調整されたマルチメディアのストリーミングを提供するシステムにおいて、前記マルチメディアは、到着した際に復号化され、レンダリングされるパケットのストリームから成り、
符号化されたメディアファイルを、後にn(nは0より大きい整数)個のデータパケットが続くメディアヘッダと、n個のデータパケットを備えたメディアボディとに分離し、1又は複数の利用可能なサービングピアに前記メディアヘッダを格納するモジュールと、
各データパケットを1又は複数のデータユニットに分離するモジュールと、
各データユニットをk個のオリジナルデータブロックに分離するモジュールと、
各利用可能なサービングピアのために、各データパケットの前記k個のオリジナルデータブロックを消去耐性符号化し、各データユニットに対して第1番目の消去耐性符号化データブロックから第k番目の消去耐性符号化データブロックまでのk個の消去耐性符号化データブロックを生成し、前記生成されたk個の消去耐性符号化データブロックを前記対応するサービングピアの各々に分配するモジュールと、
各サービングピア上で、消去耐性符号化キー空間の識別子と、前記対応するサービングピアによって保持される各データパケットの消去耐性符号化データブロックの数とを少なくとも定義する可用性ベクトルを決定するモジュールと、
クライアントリクエストに応じて前記利用可能なサービングピアのリストをクライアントコンピュータに提供するモジュールと、
前記クライアントコンピュータ上で、前記サービングピアの1つから前記メディアヘッダを取り出すモジュールと、
前記クライアントコンピュータ上で、各リストアップされたサービングピアの前記可用性ベクトルをダウンロードするモジュールと、
前記クライアントコンピュータ上で、前記サービングピアの1つから前記メディアヘッダをダウンロードするモジュールと、
前記クライアントコンピュータ上で、1又は複数の前記利用可能なサービングピアのセットから各データユニットの計k'個(k'はk以上)の消去耐性符号化データブロックのダウンロードをリクエストする前記可用性ベクトルを用いるモジュールと、
前記クライアントコンピュータを使用し、各データユニットに対し、前記k'個のダウンロードされた消去耐性符号化データブロックから1個のデータユニットを再構築するモジュールと、
前記クライアントコンピュータを使用し、前記再構築されたデータユニットから前記メディアボディの前記データパケットを再構築するモジュールと
を備えることを特徴とするシステム。 - 前記クライアントコンピュータ上で前記再構築されたデータパケットのリアルタイムクライアントベースのデコーディングを提供し、1又は複数の前記サービングピアから前記クライアントにストリーミングメディア伝送を提供するモジュールを更に備えることを特徴とする請求項33記載のシステム。
- ネットワークパケット欠落およびジッタに自動的に対応するため十分な時間を有する前記クライアントコンピュータを提供するために、前記クライアントコンピュータ上の前記再構築されたデータパケットのバッファされたクライアントベースのデコーディングを提供するモジュールを更に備えることを特徴とする請求項33記載のシステム。
- 前記データユニットを消去耐性符号化するモジュールは、リードソロモン消去耐性符号を用いて、各データユニットに対して前記k個の消去耐性符号化データブロックを生成すること特徴とする請求項33記載のシステム。
- 前記クライアントコンピュータを用いて、前記k個の取り出された消去耐性符号化データブロックから各データユニットを再構築することは、k個の取り出された消去耐性符号化データブロックの各セットにリードソロモン消去耐性復号化動作を実行し、各データユニットを再構築することを含むこと特徴とする請求項34記載のシステム。
- 各利用可能なサービングピアは、固定された消去耐性符号化キー空間を割り当てられ、該固定された消去耐性符号化キー空間は、サーバコンピュータによって自動的に決定されることを特徴とする請求項33記載のシステム。
- 各利用可能なサービングピアは、固定された消去耐性符号化キー空間を割り当てられ、該固定された消去耐性符号化キー空間は、各サービングピアに自己の消去耐性符号化キーをランダムに生成させることによって決定されることを特徴とする請求項33記載のシステム。
- 前記クライアントコンピュータは、前記消去耐性符号化キー空間に繰り返されるキーを有する前記利用可能なサービングピアの1又は複数のキーを無効にすることを特徴とする請求項38又は39記載のシステム。
- 前記消去耐性符号化データブロックの、前記クライアントによりリクエストされたダウンロードは、各対応するデータユニットのIDと、前記対応するデータユニットの開始ブロックインデックスと、前記対応するデータユニットのために取り出される消去耐性符号化データブロックの数を含むことを特徴とする請求項33記載のシステム。
- 各々の前記対応するサービングピア上の消去耐性符号化データブロックの数である1からkの範囲の数は、各サービングピアのサービング帯域幅に比例することを特徴とする請求項33記載のシステム。
- k'個の消去耐性符号化データブロックのk'個のリクエストされたダウンロードは、各サービングピアのサービング帯域幅に比例することを特徴とする請求項33記載のシステム。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/934,823 | 2004-09-03 | ||
US10/934,823 US7664109B2 (en) | 2004-09-03 | 2004-09-03 | System and method for distributed streaming of scalable media |
US10/951,481 | 2004-09-28 | ||
US10/951,481 US20060069800A1 (en) | 2004-09-03 | 2004-09-28 | System and method for erasure coding of streaming media |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2006074781A JP2006074781A (ja) | 2006-03-16 |
JP2006074781A5 JP2006074781A5 (ja) | 2008-12-18 |
JP5058468B2 true JP5058468B2 (ja) | 2012-10-24 |
Family
ID=35447705
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2005251995A Active JP5058468B2 (ja) | 2004-09-03 | 2005-08-31 | ストリーミングメディアの消去耐性符号化のための方法、該方法を実行するコンピュータ実行可能命令を記録した媒体、及びシステム |
Country Status (6)
Country | Link |
---|---|
US (1) | US20060069800A1 (ja) |
EP (1) | EP1633112B1 (ja) |
JP (1) | JP5058468B2 (ja) |
KR (1) | KR101176648B1 (ja) |
AT (1) | ATE408953T1 (ja) |
DE (1) | DE602005009774D1 (ja) |
Families Citing this family (59)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9372870B1 (en) | 2003-01-21 | 2016-06-21 | Peer Fusion, Inc. | Peer to peer code generator and decoder for digital systems and cluster storage system |
US8626820B1 (en) | 2003-01-21 | 2014-01-07 | Peer Fusion, Inc. | Peer to peer code generator and decoder for digital systems |
US8102837B2 (en) * | 2004-12-30 | 2012-01-24 | Massachusetts Institute Of Technology | Network coding approach to rapid information dissemination |
US8046426B2 (en) * | 2004-12-30 | 2011-10-25 | Massachusetts Institute Of Technology | Random linear coding approach to distributed data storage |
US7533182B2 (en) * | 2005-01-24 | 2009-05-12 | Starz Media, Llc | Portable screening room |
JP4966505B2 (ja) * | 2005-03-24 | 2012-07-04 | ブラザー工業株式会社 | パケット通信システム |
JP2007058414A (ja) * | 2005-08-23 | 2007-03-08 | Hitachi Ltd | 計算機のログ管理プログラム、そのログ管理方法、及び計算機システム |
US9047310B2 (en) * | 2006-02-22 | 2015-06-02 | Microsoft Technology Licensing, Llc | Reliable, efficient peer-to-peer storage |
US7970835B2 (en) * | 2006-04-04 | 2011-06-28 | Xerox Corporation | Peer-to-peer file sharing system and method using downloadable data segments |
WO2008016442A2 (en) * | 2006-06-27 | 2008-02-07 | The Trustees Of Columbia University In The City Ofnew York | A trusted p2p system for paid or other content delivery |
US20080059631A1 (en) * | 2006-07-07 | 2008-03-06 | Voddler, Inc. | Push-Pull Based Content Delivery System |
US8442989B2 (en) * | 2006-09-05 | 2013-05-14 | Thomson Licensing | Method for assigning multimedia data to distributed storage devices |
EP1898600B1 (en) * | 2006-09-05 | 2013-01-09 | Thomson Licensing | Method for assigning multimedia data to distributed storage devices |
EP1936921A1 (en) * | 2006-12-22 | 2008-06-25 | Thomson Licensing | Method for assigning multimedia data to distributed storage devices |
US7886034B1 (en) * | 2006-09-27 | 2011-02-08 | Symantec Corporation | Adaptive liveness management for robust and efficient peer-to-peer storage |
JP2008187339A (ja) * | 2007-01-29 | 2008-08-14 | Kddi Corp | コンテンツ配信システムのための通信装置及びプログラム |
EP1968243A1 (en) * | 2007-03-07 | 2008-09-10 | British Telecommunications Public Limited Company | Method of transmitting data to a mobile device |
WO2008115221A2 (en) * | 2007-03-20 | 2008-09-25 | Thomson Licensing | Hierarchically clustered p2p streaming system |
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 |
US8386630B1 (en) * | 2007-09-09 | 2013-02-26 | Arris Solutions, Inc. | Video-aware P2P streaming and download with support for real-time content alteration |
US8015311B2 (en) * | 2007-09-21 | 2011-09-06 | Polytechnic Institute Of New York University | Reducing or minimizing delays in peer-to-peer communications such as peer-to-peer video streaming |
US7979419B2 (en) * | 2007-11-01 | 2011-07-12 | Sharp Laboratories Of America, Inc. | Distributed search methods for time-shifted and live peer-to-peer video streaming |
JP2009188436A (ja) * | 2007-12-28 | 2009-08-20 | Voddler Inc | プッシュ−プルベースのコンテンツ配信システム |
TWI381716B (zh) * | 2007-12-31 | 2013-01-01 | Ind Tech Res Inst | 串流資料之網路傳輸系統與方法 |
EP3190559A3 (en) * | 2008-01-07 | 2017-12-20 | Voddler Group AB | Push-pull based content delivery system |
US8260952B2 (en) * | 2008-01-31 | 2012-09-04 | Microsoft Corporation | Multi-rate peer-assisted data streaming |
WO2009108148A1 (en) * | 2008-02-27 | 2009-09-03 | Thomson Licensing | Decentralized hierarchically clustered peer-to-peer live streaming system |
JP5223480B2 (ja) * | 2008-06-13 | 2013-06-26 | 富士通株式会社 | コンテンツ配信方法及び通信端末装置 |
US8239570B2 (en) * | 2008-10-01 | 2012-08-07 | International Business Machines Corporation | Using link send and receive information to select one of multiple links to use to transfer data for send and receive operations |
US11868498B1 (en) * | 2009-04-20 | 2024-01-09 | Pure Storage, Inc. | Storage integrity processing in a storage network |
US9565239B2 (en) | 2009-05-29 | 2017-02-07 | Orions Digital Systems, Inc. | Selective access of multi-rate data from a server and/or peer |
US8239443B2 (en) * | 2009-09-01 | 2012-08-07 | Rovi Technologies Corporation | Method and system for tunable distribution of content |
TW201238331A (en) * | 2011-03-01 | 2012-09-16 | Hon Hai Prec Ind Co Ltd | System and method for supplying streaming media to media player |
US8930959B2 (en) | 2011-05-13 | 2015-01-06 | Orions Digital Systems, Inc. | Generating event definitions based on spatial and relational relationships |
US8769138B2 (en) * | 2011-09-02 | 2014-07-01 | Compuverde Ab | Method for data retrieval from a distributed data storage system |
KR101240552B1 (ko) * | 2011-09-26 | 2013-03-11 | 삼성에스디에스 주식회사 | 미디어 키 관리 및 상기 미디어 키를 이용한 피어-투-피어 메시지 송수신 시스템 및 방법 |
US8868647B2 (en) * | 2012-01-11 | 2014-10-21 | Alcatel Lucent | Reducing latency and cost in resilient cloud file systems |
CN102665109A (zh) * | 2012-04-19 | 2012-09-12 | 中兴通讯股份有限公司 | 一种多媒体视频数据的发送、接收方法及对应装置 |
US9152459B2 (en) * | 2012-04-23 | 2015-10-06 | Marvell World Trade Ltd. | Adjusting thread priority to improve throughput between peer-to-peer (P2P) devices |
US20140126470A1 (en) * | 2012-11-02 | 2014-05-08 | Emily Qi | Mechanism to enable rejection and cancellation of request actions from wireless peer-to-peer devices |
US9680926B2 (en) | 2012-12-19 | 2017-06-13 | Hive Streaming Ab | Nearest peer download request policy in a live streaming P2P network |
US9591070B2 (en) | 2012-12-19 | 2017-03-07 | Hive Streaming Ab | Multiple requests for content download in a live streaming P2P network |
US9544366B2 (en) * | 2012-12-19 | 2017-01-10 | Hive Streaming Ab | Highest bandwidth download request policy in a live streaming P2P network |
JP2015019233A (ja) * | 2013-07-10 | 2015-01-29 | 株式会社東芝 | 通信ノード装置、通信システム、通信制御方法およびプログラム |
EP2863566B1 (en) | 2013-10-18 | 2020-09-02 | Université de Nantes | Method and apparatus for reconstructing a data block |
KR102238590B1 (ko) | 2013-11-29 | 2021-04-09 | 삼성전자주식회사 | 데이터 패킷 전송의 인증 및 검증 방법, 및 상기 방법을 수행하는 장치들 |
JP6016773B2 (ja) * | 2013-12-24 | 2016-10-26 | ヴォドラー グループ アーベー | プッシュ−プルベースのコンテンツ配信システム |
US9923970B2 (en) * | 2014-08-22 | 2018-03-20 | Nexenta Systems, Inc. | Multicast collaborative erasure encoding and distributed parity protection |
US10498648B1 (en) * | 2015-03-25 | 2019-12-03 | Amazon Technologies, Inc. | Processing packet data using an offload engine in a service provider environment |
US10142411B2 (en) * | 2015-05-29 | 2018-11-27 | Microsoft Technology Licensing, Llc | Dynamic swarm segmentation |
CN104967856B (zh) * | 2015-06-25 | 2018-10-19 | 华为技术有限公司 | 一种编码方法及相关设备 |
GB201607476D0 (en) * | 2016-04-29 | 2016-06-15 | Eitc Holdings Ltd | Operating system for blockchain IOT devices |
US10417094B1 (en) | 2016-07-13 | 2019-09-17 | Peer Fusion, Inc. | Hyper storage cluster |
JP2017017753A (ja) * | 2016-09-27 | 2017-01-19 | ヴォドラー グループ アーベー | プッシュ−プルベースのコンテンツ配信システム |
US11736406B2 (en) * | 2017-11-30 | 2023-08-22 | Comcast Cable Communications, Llc | Assured related packet transmission, delivery and processing |
CN110018783B (zh) | 2018-01-09 | 2022-12-20 | 阿里巴巴集团控股有限公司 | 一种数据存储方法、装置及系统 |
CN109347795B (zh) * | 2018-09-10 | 2021-11-16 | 广州视源电子科技股份有限公司 | 登录验证方法、装置、系统及设备、介质 |
CN113905025B (zh) * | 2021-09-27 | 2023-06-16 | 武汉斗鱼网络科技有限公司 | 一种传输流数据的方法、装置、介质及计算机设备 |
US11936699B2 (en) * | 2022-06-03 | 2024-03-19 | Micro Focus Llc | Optimal usage of content storage in a managed network |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4317403B2 (ja) * | 2002-08-09 | 2009-08-19 | パナソニック株式会社 | ヘッダ圧縮装置及びヘッダ圧縮方法 |
JP2004080145A (ja) * | 2002-08-12 | 2004-03-11 | Canon Inc | 映像サーバシステム及びその映像再生方法 |
JP2004127189A (ja) * | 2002-10-07 | 2004-04-22 | Matsushita Electric Ind Co Ltd | ゲートウェイ装置、コンテンツ転送システム及びコンテンツ転送方法 |
US7412532B2 (en) * | 2002-12-13 | 2008-08-12 | Aol Llc, A Deleware Limited Liability Company | Multimedia scheduler |
US7373415B1 (en) * | 2003-07-31 | 2008-05-13 | Yahoo! Inc. | System and method for monitoring delivery of digital content, including streaming media |
US7257257B2 (en) * | 2003-08-19 | 2007-08-14 | Intel Corporation | Method and apparatus for differential, bandwidth-efficient and storage-efficient backups |
US8239446B2 (en) | 2003-11-19 | 2012-08-07 | Sony Computer Entertainment America Llc | Content distribution architecture |
-
2004
- 2004-09-28 US US10/951,481 patent/US20060069800A1/en not_active Abandoned
-
2005
- 2005-08-05 KR KR1020050071753A patent/KR101176648B1/ko active IP Right Grant
- 2005-08-31 JP JP2005251995A patent/JP5058468B2/ja active Active
- 2005-08-31 DE DE602005009774T patent/DE602005009774D1/de active Active
- 2005-08-31 EP EP05107971A patent/EP1633112B1/en active Active
- 2005-08-31 AT AT05107971T patent/ATE408953T1/de not_active IP Right Cessation
Also Published As
Publication number | Publication date |
---|---|
EP1633112A1 (en) | 2006-03-08 |
KR101176648B1 (ko) | 2012-08-23 |
JP2006074781A (ja) | 2006-03-16 |
ATE408953T1 (de) | 2008-10-15 |
KR20060050266A (ko) | 2006-05-19 |
EP1633112B1 (en) | 2008-09-17 |
DE602005009774D1 (de) | 2008-10-30 |
US20060069800A1 (en) | 2006-03-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5058468B2 (ja) | ストリーミングメディアの消去耐性符号化のための方法、該方法を実行するコンピュータ実行可能命令を記録した媒体、及びシステム | |
JP4920220B2 (ja) | ピアツーピアネットワークでの受信側主導のシステム及び方法 | |
JP4676833B2 (ja) | 拡張可能なメディアの分散ストリーミングのシステムおよび方法 | |
Li | PeerStreaming: A practical receiver-driven peer-to-peer media streaming system | |
US20080189429A1 (en) | Apparatus and method for peer-to-peer streaming | |
US20120203923A1 (en) | Adaptive variable fidelity media distribution system and method | |
US20080016201A1 (en) | Methods and apparatus for transferring data | |
US20120117605A1 (en) | System and method for peer-to-peer live streaming | |
US20070067485A1 (en) | Method and system for managing video networks | |
KR20030056701A (ko) | P2p 방식을 이용한 멀티미디어 스트리밍 장치 및 방법 | |
Li et al. | Peerstreaming: design and implementation of an on-demand distributed streaming system with digital rights management capabilities | |
Zimmerman et al. | Retransmission-based error control in a many-to-many client-server environment | |
JP2004221756A (ja) | 情報処理装置および情報処理方法、並びにコンピュータ・プログラム | |
Alkwai et al. | Dynamic quality adaptive P2P streaming system | |
JP2004264991A (ja) | データ配信方法とプログラムおよびデータ配信システムならびに情報処理装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20080901 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20081030 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20110225 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20110525 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20110530 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20110721 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20120403 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20120703 |
|
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: 20120720 |
|
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: 20120801 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20150810 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5058468 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313113 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R360 | Written notification for declining of transfer of rights |
Free format text: JAPANESE INTERMEDIATE CODE: R360 |
|
R370 | Written measure of declining of transfer procedure |
Free format text: JAPANESE INTERMEDIATE CODE: R370 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313113 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
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 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |