JP5868735B2 - P2pネットワークサービスに用いる端末装置及びプログラム - Google Patents

P2pネットワークサービスに用いる端末装置及びプログラム Download PDF

Info

Publication number
JP5868735B2
JP5868735B2 JP2012049610A JP2012049610A JP5868735B2 JP 5868735 B2 JP5868735 B2 JP 5868735B2 JP 2012049610 A JP2012049610 A JP 2012049610A JP 2012049610 A JP2012049610 A JP 2012049610A JP 5868735 B2 JP5868735 B2 JP 5868735B2
Authority
JP
Japan
Prior art keywords
data
buffer
terminal device
map
buffer map
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
Application number
JP2012049610A
Other languages
English (en)
Other versions
JP2013187638A (ja
Inventor
石川 清彦
清彦 石川
敏 西村
敏 西村
黒住 正顕
正顕 黒住
山本 真
真 山本
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Japan Broadcasting Corp
Original Assignee
Japan Broadcasting Corp
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 Japan Broadcasting Corp filed Critical Japan Broadcasting Corp
Priority to JP2012049610A priority Critical patent/JP5868735B2/ja
Publication of JP2013187638A publication Critical patent/JP2013187638A/ja
Application granted granted Critical
Publication of JP5868735B2 publication Critical patent/JP5868735B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Transfer Between Computers (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Description

本発明は、ライブ映像配信ネットワーク、ソーシャルネットワーク連携サービス、アプリケーションレイヤマルチキャスト技術等におけるP2Pネットワークサービスに関し、特に、多数の利用者に低遅延で安定したサービスを提供するP2Pネットワークサービスに用いる端末装置及びプログラムに関するものである。
従来、ライブ映像等を配信するP2Pネットワークサービスが知られている。P2Pネットワークサービスは、ネットワーク上で対等な関係にある端末装置間を相互に接続することにより、ライブ映像等のデータを送受信する通信サービスをいう。P2Pネットワークサービスを実現するための端末装置間の接続構造の例として、メッシュ型、ツリー型があり、端末装置間でデータを中継する手法の例として、プル型、プッシュ型がある。以下に説明するP2Pネットワークは、接続構造がメッシュ型であり、データ中継手法がプル型であるものとする。
図13(1)は、P2Pネットワークにおけるメッシュ型接続構造を説明する図であり、図13(2)は、P2Pネットワークにおけるプル型中継手法を説明する図である。図13(1)を参照して、メッシュ型接続構造は、上流の端末装置と下流の端末装置との間の接続数の関係が、m:n(m,nは正の整数)となる構造をいう。このようなメッシュ型接続構造のP2Pネットワークにおいて、例えば、波長分割多重伝送を行うことで、安定した通信及びスケーラビリティを実現する手法が提案されている(例えば、特許文献1を参照)。
図13(2)を参照して、プル型中継手法は、下流の端末装置からの要求に従って上流の端末装置がデータを送信する手法である。具体的には、端末装置100A,100B,100Cを含むP2Pネットワークの通信システムにおいて、以下のステップS1〜ステップS3の処理を行うことにより、上流の端末装置100A,100Bの保持するデータが下流の端末装置100Cへ送信される。まず、上流の端末装置100Aは、保持しているデータのシーケンス番号(データチャンク(DC)番号)をバッファマップとして下流の端末装置100Cへ通知する(ステップS1)。DCについては後述する。端末装置100Cは、端末装置100Aからバッファマップを受信し、バッファマップが示すシーケンス番号に基づいて、保持していないデータを取得するための要求を端末装置100Aへ通知する(ステップS2)。そして、端末装置100Aは、端末装置100Cからの要求に従って、要求されたデータを端末装置100Cへ送信する(ステップS3)。例えば、端末装置100Cは、端末装置100A,100Bから取得したバッファマップが示すシーケンス番号に基づいて、データ「1」「3」を取得するための要求を端末装置100Aへ送信することでデータ「1」「3」を受信し、データ「2」「4」を取得するための要求を端末装置100Bへ送信することでデータ「2」「4」を受信する。これにより、端末装置100Cは、上流の端末装置100A,100Bからデータ「1」「2」「3」「4」を取得することができる。
また、端末装置100Cは、自らが保持しているデータのシーケンス番号をバッファマップとして、図示しない下流の端末装置へ通知する。そして、端末装置100Cは、下流の端末装置からの要求に従って、要求されたデータを下流の端末装置へ送信する。これにより、端末装置100Cは、下流の端末装置へデータを送信することができる。
このように、P2Pネットワークは、ライブ映像等の配信サービスを受ける複数の端末装置により構成されるP2Pグループを形成し、1台の端末装置に対し、上流側に複数の端末装置を接続し、下流側に複数の端末装置を接続する。1台の端末装置は、複数の上流の端末装置からデータを取得し、取得したデータを中継することで複数の下流の端末装置へデータを提供する。このようなP2Pネットワークの通信システムによれば、端末装置は、ライブ映像等を配信する配信サーバから直接的にデータを受信することなく、上流の端末装置からデータを受信するから、効率的な配信サービスを実現することができる。
図14は、従来のP2Pネットワークにおける処理の概要を説明する図である。このP2Pネットワークを含む通信システムは、ライブ映像等のデータを配信する図示しない配信サーバ、配信サーバからのデータを中継する複数の端末装置、及び、P2Pネットワークに参加している端末装置のアドレスの情報等を管理する図示しないディレクトリサーバを備えて構成される。このようなP2Pネットワークに新たに端末装置100Cが参加した場合、端末装置100Cは、ディレクトリサーバから、上流の端末装置100A,100Bに関するアドレスの情報等を取得する。そして、端末装置100Cは、上流の端末装置100A,100Bのバッファメモリに蓄積されている視聴ポイント以降(再生前)のライブ映像等のデータに関する情報が示されたバッファマップA,Bを取得する。視聴ポイントは、映像データが再生される現在の位置であって、配信サービスを受ける利用者が視聴する現時点の映像データの位置を示している。ここで、端末装置100Cは、先に、端末装置100BからバッファマップBを取得し(ステップS1401)、その後に、端末装置100AからバッファマップAを取得するものとする(ステップS1402)。
バッファマップは、バッファメモリに蓄積されている視聴ポイント以降の映像データの状態(データチャンクの蓄積状態)を示す保管情報であり、データチャンク番号を識別可能な情報からなる。データチャンク(DC)とは、映像データを所定のサイズで分割したときのデータをいい、例えば1秒間の映像データをいう。データチャンク番号(DC番号)とは、映像データを所定のサイズ毎のDCに時間軸上で順番に分割したときのDCの番号をいい、映像データのDCを識別するためのシーケンシャルな番号をいう。
いま、端末装置100Aのバッファメモリには、DC10〜DC21が蓄積されており、端末装置100Aは再生中であって、その視聴ポイントがDC15であるとする。また、端末装置100Bのバッファメモリには、DC13,DC14が蓄積されており、端末装置100Bは再生中でなく(非再生中であって)、その視聴ポイントがDC13であるとする。端末装置Bが非再生中であるのは、再生スレッショルドを満たすデータがバッファメモリに蓄積されていないからである。再生スレッショルドは、非再生中のときに再生を開始するために必要なデータ量の位置を示している。つまり、端末装置100Bは、再生を開始するために、DCが再生スレッショルドの位置まで蓄積されるのを待って、視聴ポイントの位置のDCを読み出して再生を行う。図14に示すように、バッファマップAは、視聴ポイント以降のDC15〜DC21が蓄積されていることを示しており、バッファマップBは、視聴ポイント以降のDC13,DC14が蓄積されていることを示している。
端末装置100Cは、取得したバッファマップA,Bのうちの先に取得したバッファマップBを選択し、選択したバッファマップBが示す最も古い(過去の)データを特定し、そのデータの位置を視聴ポイントに設定する。図14では、バッファマップBが示す最も古いデータはDC13であるから、端末装置100Cは、DC13の位置を視聴ポイントに設定する。そして、端末装置100Cは、バッファマップA,Bに基づいて、データの取得先である端末装置100Aまたは端末装置100Bを決定し、上流の端末装置100A,100Bへデータ要求を送信し、データ要求に対応するデータを受信して自らのバッファメモリに蓄積する。
端末装置100Cは、端末装置100BからDC13,DC14を取得し(ステップS1403)、端末装置100AからDC15〜DC21を取得する(ステップS1404)。これにより、端末装置100CのバッファメモリにはDC13〜DC21が蓄積され、再生スレッショルドを満たすDCがバッファメモリに蓄積されるから、端末装置100Cは、再生を開始することができる。
国際公開第2006/046576号公報
しかしながら、図14に示した従来のP2Pネットワークにおいて、端末装置100Cの視聴ポイントはDC13の位置であり、再生中の端末装置100Aの視聴ポイントはDC15の位置であるから、P2Pネットワークに新たに参加した端末装置100Cの視聴ポイントは、既に参加していた再生中の端末装置100Aに比べ、DC2つ分遅延している。これは、最初に取得したバッファマップBの端末装置100Bが非再生中であるため、端末装置100Bの視聴ポイントが、再生中の端末装置100Aよりも遅延しているからである。
このような視聴ポイントの遅延が下流の端末装置において繰り返されると、視聴ポイントの遅延が積算されてしまう。例えば、P2Pネットワークによる配信サービスと、ソーシャルネットワーク等の他のサービスとを連携させ、これらのサービスを同時に利用する場合には、配信サービスにより提供されるスポーツ中継のライブ映像が、他のサービスにより提供されるそのスポーツの結果情報よりも遅れてしまうことがあり得る。この場合、スポーツ中継のライブ映像よりもスポーツの勝敗等の結果が先に提供されてしまうから、利用者は、実際のライブ映像よりも先にその結果を知ることになり、高品質のサービスを受けることができない。
また、ある端末装置における視聴ポイントの遅延が、他の端末装置よりも大きくなると、当該端末装置の取得すべきデータが上流の端末装置に存在する確率が低くなり、結果としてデータの中継を不安定にし、配信サービスの品質が低下してしまう。
そこで、本発明は前記課題を解決するためになされたものであり、その目的は、P2Pネットワークを含む通信システムにおいて、低遅延で安定した配信サービスを実現可能な端末装置及びプログラムを提供することにある。
前記課題を解決するため、本発明による請求項1の端末装置は、P2Pネットワークにより、上流の端末装置から映像ストリームのデータを受信してバッファメモリに蓄積し、再生位置を示す視聴ポイントのデータを再生し、前記バッファメモリから映像ストリームのデータを読み出して下流の端末装置へ送信する端末装置において、前記上流の端末装置のバッファメモリに蓄積されている映像ストリームのデータのうち前記上流の端末装置における視聴ポイント以降のデータを識別する情報を含むバッファマップを取得するためのバッファマップ要求を、前記上流の端末装置へ送信し、前記上流の端末装置から前記バッファマップを取得するバッファマップ取得手段と、前記バッファマップ取得手段により取得されたバッファマップに基づいて、再生中の上流の端末装置から取得されたバッファマップを選択するバッファマップ選択手段と、前記バッファマップ選択手段により選択されたバッファマップに基づいて、当該端末装置の視聴ポイントを設定する視聴ポイント設定手段と、前記バッファマップ取得手段により取得されたバッファマップに基づいて、前記視聴ポイント設定手段により設定された当該端末装置の視聴ポイント以降のデータを取得するための要求を、前記上流の端末装置へ送信し、前記上流の端末装置から要求に対応するデータを受信し、前記バッファメモリに蓄積するデータ取得手段と、を備えたことを特徴とする。
また、本発明による請求項2の端末装置は、請求項1に記載の端末装置において、前記バッファマップ選択手段が、再生中の上流の端末装置から取得されたバッファマップが1つの場合、前記1つのバッファマップを選択し、再生中の上流の端末装置から取得されたバッファマップが複数の場合、前記複数のバッファマップの中から、前記複数のバッファマップが示すそれぞれの視聴ポイントのうち最新の視聴ポイントを有するバッファマップを選択する、ことを特徴とする。
また、本発明による請求項3の端末装置は、請求項1または2に記載の端末装置において、前記視聴ポイント設定手段が、前記バッファマップ選択手段により選択されたバッファマップにより識別される最も古いデータを特定し、前記最も古いデータの位置から所定数新しいデータの位置を、当該端末装置の視聴ポイントに設定する、ことを特徴とする。
また、本発明による請求項4の端末装置は、請求項1から3までのいずれか一項に記載の端末装置において、前記データ取得手段が、さらに、前記バッファマップ取得手段により取得されたバッファマップのうち、最新のデータが識別されるバッファマップを特定し、前記最新のデータの次に新しいデータを取得するための要求を、前記特定したバッファマップの取得先である上流の端末装置へ送信し、前記上流の端末装置から要求に対応するデータを受信し、前記バッファメモリに蓄積する、ことを特徴とする。
さらに、本発明による請求項5のプログラムは、コンピュータを、請求項1から4までのいずれか一項に記載の端末装置として機能させることを特徴とする。
以上のように、本発明によれば、端末装置は、低遅延で安定した配信サービスを実現することが可能となる。
本発明の実施形態によるP2Pネットワークを含む通信システムの全体構成を示す概略図である。 本発明の実施形態によるP2Pネットワークの処理の概要を説明する図である。 本発明の実施形態による端末装置の構成を示すブロック図である。 送受信手段の構成を示すブロック図である。 バッファメモリに蓄積されるデータの量と、視聴ポイント、パッチングスレッショルド及び再生スレッショルドとの関係を説明する図である。 視聴ポイント及び再生スレッショルドを基準位置としたデータ再生処理を示すフローチャートである。 パッチングスレッショルドを基準位置としたパッチング処理を示すフローチャートである。 端末装置の処理を示すフローチャートである。 図8に示す視聴ポイント設定処理(ステップS803)の詳細を示すフローチャートである。 図8に示す映像データ取得処理(ステップS804)の詳細を示すフローチャートである。 図8に示す映像データ送信処理(ステップS805)の詳細を示すフローチャートである。 ネットワーク参加処理を説明する図である。 (1)は、P2Pネットワークにおけるメッシュ型接続構造を説明する図である。(2)は、P2Pネットワークにおけるプル型中継手法を説明する図である。 従来のP2Pネットワークにおける処理の概要を説明する図である。
以下、本発明を実施するための形態について図面を用いて詳細に説明する。以下に説明する実施例は、P2Pネットワークを構成する複数の端末装置、ライブ映像等の映像ストリームを配信する配信サーバ、端末装置からの要求に従って映像データを送信するパッチングサーバ、及び、端末装置のアドレス等を管理するディレクトリサーバを含む通信システムを対象とする。
本実施例の端末装置は、上流の端末装置から取得したバッファマップのうち、再生中の端末装置から取得したバッファマップを選択し、選択したバッファマップに基づいて視聴ポイントを設定し、上流の端末装置から視聴ポイント以降のデータを取得することを特徴とする。これにより、例えば、一部の上流の端末装置が非再生中であり、他の上流の端末装置が再生中の場合、P2Pネットワークに新たに参加する端末装置は、再生中の上流の端末装置から取得したバッファマップに基づいて視聴ポイントを設定するから、当該端末装置の視聴ポイントは、再生中の上流の端末装置の視聴ポイントに近くなり、大きく遅延することがない。したがって、多数の利用者に低遅延で安定した配信サービスを提供することが可能となる。
〔P2Pネットワークの通信システム〕
図1は、本発明の実施形態によるP2Pネットワークを含む通信システムの全体構成を示す概略図である。この通信システム5は、図13(1)(2)に示したメッシュ型接続構造及びプル型中継手法のP2Pネットワークを構成し、複数の端末装置(以下、「ノード」という。)1A,1B,1C,・・・(総称して「ノード1」という。)、配信サーバ2、パッチングサーバ3及びディレクトリサーバ4を備えている。これらの装置は、インターネット等の通信回線を介して接続される。
ノード1は、P2Pネットワークに新たに参加したとき等の所定のタイミングにて、視聴ポイント設定処理により、自らの視聴ポイントを設定する。また、ノード1は、配信サーバ2から配信された映像ストリームのデータを、上流側に接続されたノード1(以下、「上流ノード1」という。)から受信して蓄積し、下流側に接続されたノード1(以下、「下流ノード1」という。)へ送信すると共に、データ再生処理により、蓄積した視聴ポイントのデータをデコードして再生する。また、ノード1は、蓄積している映像ストリームのデータが所定量以下になったときに行うパッチング処理により、パッチングサーバ3から映像ストリームのデータを受信する。視聴ポイント設定処理、データ再生処理及びパッチング処理については後述する。
配信サーバ2は、映像ストリームをエンコードし、エンコードした映像ストリームのデータをDC毎に、P2Pネットワークによりそれぞれのノード1へ配信すると共に、パッチングサーバ3へ送信する。
パッチングサーバ3は、配信サーバ2から映像ストリームのデータを連続的に受信して記憶装置に蓄積する。また、パッチングサーバ3は、ノード1からデータ要求を受信し、データ要求に対応した映像ストリームのデータを記憶装置から読み出し、読み出したデータを、データ要求を送信してきたノード1へ送信する。
ディレクトリサーバ4は、P2Pネットワークに参加しているノード1、配信サーバ2及びパッチングサーバ3のアドレス等の情報を管理する。ディレクトリサーバ4は、P2Pネットワークに新たに参加したノード1から当該ノード1に関する情報を受信し、通信システム5を構成する配信サーバ2及びパッチングサーバ3に関する情報、P2Pネットワークに参加している全てまたは一部のノード1に関する情報、並びに、上流ノード1に関する情報及び下流ノード1に関する情報を、新たに参加したノード1へ送信する。これにより、新たに参加したノード1は、配信サーバ2、パッチングサーバ3、上流ノード1及び下流ノード1との間で通信を行うことができる。
〔実施例〕
次に、実施例について具体的に説明する。本実施例のノード1は、前述のとおり、上流ノード1から取得したバッファマップのうち、再生中の上流ノード1から取得したバッファマップを選択し、選択したバッファマップに基づいて視聴ポイントを設定し、上流ノード1から視聴ポイント以降のデータを取得する。図2は、実施例におけるP2Pネットワークの処理の概要を説明する図である。図2に示すように、ノード1Cの上流ノードがノード1A,1Bであり、ノード1Aのバッファメモリには、再生後のDC10〜DC14及び再生前のDC15〜DC21が蓄積され、視聴ポイントがDC15の位置に設定され、ノード1Aは再生中であるものとする。また、ノード1Bのバッファメモリには、再生前のDC13,DC14が蓄積され、視聴ポイントがDC13に設定され、ノード1Bは非再生中であるものとする。
ノード1Cは、P2Pネットワークへ参加すると、図示しないディレクトリサーバ4から上流ノード1A,1Bに関するアドレスの情報等を受信し、上流ノード1A,1Bからバッファマップを取得する。ここで、ノード1Cは、先に、上流ノード1BからバッファマップBを取得し(ステップS201)、その後に、上流ノード1AからバッファマップAを取得するものとする(ステップS202)。
バッファマップA,Bには、視聴ポイント以降(再生前)のデータに関する情報に加え、再生状況(再生中または非再生中)、視聴ポイント及び再生スレッショルドの情報も示されている。図2では、上流ノード1Aから取得するバッファマップAには、再生前のDC15〜DC21に関する情報、再生中、視聴ポイント:DC15、再生スレッショルド:DC21が示されており、上流ノード1Bから取得するバッファマップBには、再生前のDC13,DC14に関する情報、非再生中、視聴ポイント:DC13、再生スレッショルド:DC19が示されている。
ノード1Cは、取得したバッファマップA,Bのうち、再生中のノード1Aから取得したバッファマップAを選択し、選択したバッファマップAが示す最も古いDC15を特定し、特定したDC15から1つ新しいDC16の位置を視聴ポイントに設定する。そして、ノード1Cは、バッファマップA,Bに基づいて、データの取得先である上流ノード1Aまたは上流ノード1Bを決定し、上流ノード1A,1Bへデータ要求を送信し、データ要求に対応するデータを受信して自らのバッファメモリに蓄積する。
図2に示した例では、ノード1Cは、バッファマップAに基づいて、上流ノード1AからDC16〜DC21を取得し(ステップS203)、バッファメモリに蓄積する(ステップS204)。そして、ノード1Cは、取得したバッファマップA,Bが示す最新のDC21を基準にして次に新しいDC22を、上流ノード1Aから取得し(ステップS205)、バッファメモリに蓄積する(ステップS206)。これにより、バッファメモリに蓄積されたデータは、再生スレッショルドに到達する。そして、ノード1Cは、バッファメモリから視聴ポイントのDC16を読み出し、再生を開始する(ステップS207)。
このように、バッファマップに、視聴ポイント以降のデータに関する情報に加え、再生状況(再生中または非再生中)、視聴ポイント及び再生スレッショルドの情報も含めるようにしたから、ノード1Cは、再生中の上流ノード1Aから取得したバッファマップAに基づいて視聴ポイントを設定することができる。具体的には、ノード1Cは、バッファマップAの示すデータのうち最も古いデータ(視聴ポイントのデータ)に基づいて視聴ポイントを設定し、設定した視聴ポイント以降のデータを取得することができる。これにより、ノード1Cの視聴ポイントは、再生中の上流ノード1Aの視聴ポイントに近くなり、大きく遅延することがない。したがって、再生中の上流ノード1Aに対するノード1Cの視聴ポイントの遅延を小さくすることができ、多数の利用者に低遅延で安定した配信サービスを提供することが可能となる。
また、ノード1Cは、再生中の上流ノード1Aから取得したバッファマップAの示すデータのうち最も古いデータ(視聴ポイント)よりも1つ新しいデータの位置を視聴ポイントに設定するようにした。これにより、ノード1Cの視聴ポイントは、再生中の上流ノード1Aの視聴ポイントに一層近くなる。したがって、一層低遅延で安定した配信サービスを提供することが可能となる。
また、ノード1Cは、バッファマップAの示す最新のデータ(DC21)の次に新しいデータ(DC22:バッファマップAには示されていないDC22)が上流ノード1Aに蓄積されることを予測し、上流ノード1Aから予測対象のデータ(DC22)を取得するようにした。これにより、ノード1CはDC22まで再生することができるから、再生中の上流ノード1Aに対するノード1Cの視聴ポイントの遅延をさらに小さくすることができ、一層低遅延で安定した配信サービスを提供することが可能となる。
(ノードの構成)
次に、ノード1の構成について説明する。図3は、ノード1の構成を示すブロック図である。このノード1は、送受信手段10、バッファメモリ11、再生手段12、バッファマップ保存手段13、バッファマップ作成手段14及びバッファマップ比較手段(バッファマップ選択手段)15を備えている。図3に示す構成は、図1に示した通信システム5に含まれるノード1A,1B,1C,・・・に共通である。送受信手段10は、配信サーバ2、パッチングサーバ3、ディレクトリサーバ4、上流ノード1及び下流ノード1との間で通信を行う。
図4は、図3に示した送受信手段10の構成を示すブロック図である。送受信手段10は、ネットワーク参加処理手段51、バッファマップ取得手段52、視聴ポイント設定手段53、データ取得手段54、パッチング手段55、バッファマップ送信手段56及びデータ送信手段57等を備えている。
送受信手段10のネットワーク参加処理手段51は、当該ノード1がP2Pネットワークに新たに参加するときに、当該ノード1のアドレス等の情報を含む参加要求をディレクトリサーバ4へ送信する。これにより、ディレクトリサーバ4は、当該ノード1に関する情報を管理する。また、ネットワーク参加処理手段51は、ディレクトリサーバ4から、P2Pネットワークに参加しているノード1に関する情報、配信サーバ2及びパッチングサーバ3に関する情報、並びに、上流ノード1に関する情報及び下流ノード1に関する情報を受信する。これにより、当該ノード1は、上流ノード1及び下流ノード1、配信サーバ2及びパッチングサーバ3との間で通信を行うことができる。
バッファマップ取得手段52は、バッファマップ保存手段13からの取得要求に基づいて、所定の時間間隔にて、バッファマップを取得するためのバッファマップ要求を上流ノード1へ送信し、バッファマップを上流ノード1から受信してバッファマップ保存手段13に出力する。上流ノード1から受信したバッファマップは、バッファマップ保存手段13によりバッファメモリ11に保存され、所定の時間間隔にて更新される。また、バッファマップ取得手段52は、受信した上流ノード1のバッファマップをバッファマップ比較手段15に出力する。これにより、バッファマップ比較手段15は、上流ノード1から取得したバッファマップのうち、再生中の上流ノード1から取得したバッファマップを選択する。
視聴ポイント設定手段53は、当該ノード1がP2Pネットワークに参加して上流ノード1からバッファマップを取得した後等の所定のタイミングにて、バッファマップ比較手段15から比較結果のバッファマップを入力し、このバッファマップに基づいて視聴ポイントを設定する。
データ取得手段54は、視聴ポイント以降(再生前)の未取得の映像データを取得するために、上流ノード1から取得したバッファマップをバッファメモリ11から読み出し、読み出したバッファマップに基づいて、取得したいデータが蓄積されている上流ノード1(データの取得先)を特定し、データ要求を取得先の上流ノード1へ送信する。そして、データ取得手段54は、取得先の上流ノード1からデータ要求に対応するデータを受信し、バッファメモリ11に蓄積する。
パッチング手段55は、パッチング処理の際に、データを取得するためのデータ要求をパッチングサーバ3へ送信し、パッチングサーバ3からデータ要求に対応するデータを受信し、バッファメモリ11に蓄積する。
バッファマップ送信手段56は、下流ノード1からバッファマップ要求を受信し、バッファマップ作成手段14により作成された当該ノード1のバッファマップを、バッファマップ要求を送信してきた下流ノード1へ送信する。
データ送信手段57は、下流ノード1からデータ要求を受信し、データ要求に対応したデータをバッファメモリ11から読み出し、読み出したデータを、データ要求を送信してきた下流ノード1へ送信する。
図3に戻って、バッファメモリ11には、映像データを所定のサイズに分割したDCがそのDC番号と共に、時間軸上のシーケンシャル番号順に蓄積されている。また、バッファメモリ11には、上流ノード1のバッファマップが保存されている。バッファメモリ11の詳細については後述する。
再生手段12は、バッファメモリ11から視聴ポイントのデータを読み出して再生を行う。再生手段12によるデータ再生処理の詳細については後述する。バッファマップ保存手段13は、所定の時間間隔にて、上流ノード1のバッファマップを取得するための取得要求を送受信手段10に出力し、送受信手段10から上流ノード1のバッファマップを入力し、バッファメモリ11に保存する。
バッファマップ作成手段14は、所定の時間間隔にて、バッファメモリ11に蓄積されたデータに基づいて、当該ノード1のバッファマップを作成する。そして、バッファマップ作成手段14は、作成したバッファマップを送受信手段10に出力する。バッファマップ作成手段14により作成されたバッファマップは、下流ノード1からのバッファマップ要求に従って送信される。
具体的には、バッファマップ作成手段14は、前述のとおり、バッファメモリ11に蓄積されている視聴ポイント以降のデータに関する情報に加え、再生状況(再生中または非再生中)、視聴ポイント及び再生スレッショルドの情報を示すバッファマップを作成する。
バッファマップ比較手段15は、送受信手段10のバッファマップ取得手段52から上流ノード1のバッファマップを入力し、入力した複数のバッファマップを比較することで、再生中の上流ノード1から取得したバッファマップを選択する。そして、バッファマップ比較手段15は、選択したバッファマップが1つの場合、選択したバッファマップを比較結果として送受信手段10の視聴ポイント設定手段53に出力し、選択したバッファマップが複数の場合、1つのバッファマップを特定し、特定したバッファマップを比較結果として送受信手段10の視聴ポイント設定手段53に出力する。
(バッファメモリ)
図5は、バッファメモリ11に蓄積されるデータの量と、視聴ポイント、パッチングスレッショルド及び再生スレッショルドとの関係を説明する図である。図5に示すように、バッファメモリ11には、例えば、14個のDCを蓄積する領域が確保されており、時間軸上に番号が若い順にDCが蓄積される。バッファメモリ11は、新たなDCが蓄積されるときに、最も古いDCが廃棄される。図5の例は、バッファメモリ11にDC9〜DC22が蓄積されており、新たなDC22が蓄積されたことにより、最も古いDC8が廃棄されたことを示している。
また、バッファメモリ11には、視聴ポイントを基準位置にして、これよりも番号が新しい方、すなわちこれから視聴するデータの所定位置にパッチングスレッショルド及び再生スレッショルドが予め設定されている。視聴ポイントは、再生手段12により映像データが再生される現在の位置であって、当該ノード1を用いて配信サービスを受ける利用者が視聴する現時点の映像データの位置を示している。
パッチングスレッショルドは、上流ノード1の代わりにパッチングサーバ3からDCが取得される位置を示している。バッファメモリ11に蓄積されたDCの位置がパッチングスレッショルド以下になると、パッチング処理が行われる。送受信手段10のパッチング手段55は、バッファメモリ11を検索することにより、再生に伴ってDCが減少し、バッファメモリ11の先頭から隙間なく蓄積された末尾のDCの位置を示すポインタがパッチングスレッショルド以下になった場合に(または、視聴ポイントからパッチングスレッショルドまでの間に存在しないDCがある場合に(DCは存在するが、連番のDCが抜けている場合に、))、パッチングサーバ3からDCを取得する。再生スレッショルドは、再生手段12が再生を最初に開始するために必要なデータ量の位置、または再生を再開するために必要なデータ量の位置を示している。再生手段12は、バッファメモリ11からDCを読み出して再生を開始または再開する際に、DCが再生スレッショルドの位置まで蓄積されるのを待って、視聴ポイントの位置のDCを読み出して再生を行う。
(データ再生処理)
図6は、視聴ポイント及び再生スレッショルドを基準位置としたデータ再生処理を示すフローチャートである。このデータ再生処理は、再生手段12により行われる。再生手段12は、再生中であるか否かを判定し(ステップS601)、再生中であると判定した場合(ステップS601:Y)、ステップS602へ移行し、再生中でない(非再生中である、再生が停止中である)と判定した場合(ステップS601:N)、ステップS605へ移行する。
再生手段12は、再生中の場合、ステップS601から移行してバッファメモリ11を検索し、バッファメモリ11の先頭から隙間なく蓄積された末尾のDCの位置を示すポインタが視聴ポイント以下であるか否かを判定する(ステップS602)。再生手段12は、ステップS602において、DCのポインタが視聴ポイント以下でないと判定した場合(ステップS602:N)、再生を継続する(ステップS603)。つまり、再生手段12は、バッファメモリ11から視聴ポイントのDCを読み出し、DCにより映像データを再生する。一方、再生手段12は、ステップS602において、DCのポインタが視聴ポイント以下であると判定した場合(ステップS602:Y)、再生を停止する(ステップS604)。
再生手段12は、再生中でない(非再生中である、再生が停止中である)場合、ステップS601から移行してバッファメモリ11を検索し、DCのポインタが再生スレッショルド以下であるか否かを判定する(ステップS605)。再生手段12は、ステップS605において、DCのポインタが再生スレッショルド以下でないと判定した場合(ステップS605:N)、再生を開始する(ステップS606)。つまり、再生手段12は、バッファメモリ11から視聴ポイントのDCを読み出し、DCにより映像データを再生する。一方、再生手段12は、ステップS605において、DCのポインタが再生スレッショルド以下であると判定した場合(ステップS605:Y)、再生停止を継続する。
このように、データ再生処理を行う再生手段12は、バッファメモリ11から視聴ポイントのDCを読み出し、DCにより映像データを再生し、DCが視聴ポイント以下になった場合に再生を停止し、DCが再生スレッショルドの位置まで蓄積されるのを待って、再生を開始する。
(パッチング処理)
図7は、パッチングスレッショルドを基準位置としたパッチング処理を示すフローチャートである。このパッチング(手当て)処理は、送受信手段10のパッチング手段55により行われ、バッファメモリ11に蓄積されたDCのポインタがパッチングスレッショルド以下になった場合に、上流ノード1からDCを取得する代わりに、緊急にパッチングサーバ3からDCを取得するものである。
送受信手段10のパッチング手段55は、バッファメモリ11を検索し、DCのポインタがパッチングスレッショルド以下であるか否かを判定し(ステップS701)、DCのポインタがパッチングスレッショルド以下であると判定した場合(ステップS701:Y)、パッチング処理を行う。すなわち、パッチング手段55は、データ要求を上流ノード1へ送信する代わりに、パッチングサーバ3へ送信し(ステップS702)、パッチングサーバ3からデータ(DC)を受信し、DCをバッファメモリ11に蓄積する(ステップS703)。一方、パッチング手段55は、ステップS701において、DCのポインタがパッチングスレッショルド以下でないと判定した場合(ステップS701:N)、パッチング処理を行わない。
このように、パッチング処理を行うパッチング手段55は、バッファメモリ11に蓄積されたDCのポインタがパッチングスレッショルド以下になった場合に、上流ノード1からDCを取得する代わりに、緊急にパッチングサーバ3からDCを取得する。
(ノードの処理)
次に、ノード1の処理について説明する。図8は、ノード1の処理を示すフローチャートである。配信サービスを行うP2Pネットワークにノード1が新たに参加すると、当該ノード1は、ネットワーク参加処理を行う(ステップS801)。図12は、ネットワーク参加処理を説明する図であり、ノード1CがP2Pネットワークに新たに参加した場合を示している。ノード1CがP2Pネットワークに新たに参加すると、ノード1Cにおける送受信手段10のネットワーク参加処理手段51は、ディレクトリサーバ4へアクセスし、当該ノード1Cに関する情報(URL、IPアドレス等)をディレクトリサーバ4へ送信する(ステップS1201)。ディレクトリサーバ4は、ノード1Cからノード1Cに関する情報を受信すると、当該情報を記憶装置に登録して管理する。そして、ディレクトリサーバ4は、通信システム5を構成する配信サーバ2、パッチングサーバ3及びP2Pネットワークに参加している全てまたは一部のノード1に関する情報、並びに上流ノード1に関する情報及び下流ノード1に関する情報(URL、IPアドレス等)を、ノード1Cへ送信する(ステップS1202)。これにより、ノード1Cは、配信サーバ2、パッチングサーバ3、上流ノード1及び下流ノード1へアクセスすることができ、通信を行うことができる。すなわち、図12に示すように、ノード1Cは、上流ノード1A,1Bへアクセスしてバッファマップ及び映像ストリームのデータを取得することができ、パッチングサーバ3へアクセスして映像ストリームのデータを取得することができる。
図8に戻って、ノード1は、上流ノード1からバッファマップを取得する(ステップS802)。具体的には、ノード1における送受信手段10のバッファマップ取得手段52は、ディレクトリサーバ4から受信した上流ノード1に関する情報に基づいて、バッファマップ要求を上流ノード1へ送信し、上流ノード1からバッファマップを受信し、バッファマップ保存手段13及びバッファマップ比較手段15に出力する。バッファマップ保存手段13は、バッファマップをバッファメモリ11に保存し、バッファマップ比較手段15は、上流ノード1のバッファマップを比較することで、再生中の上流ノード1から取得したバッファマップを選択する。
ノード1は、ステップS802にて取得したバッファマップのうち、バッファマップ比較手段15により選択されたバッファマップの示す最も古いデータの位置(上流ノード1の視聴ポイント)を特定し、特定したデータの位置よりも1つ新しいデータの位置を視聴ポイントに設定する(ステップS803)。この視聴ポイント設定処理の詳細については後述する。
ノード1は、上流ノード1から映像ストリームのデータを取得し、パッチング処理時に、パッチングサーバ3から映像ストリームのデータを取得し、バッファメモリ11に蓄積する(ステップS804)。この映像データ取得処理の詳細については後述する。また、ノード1は、バッファメモリ11から映像ストリームのデータを読み出し、下流ノード1へ送信する(ステップS805)。この映像データ送信処理の詳細については後述する。
ノード1は、P2Pネットワークから離脱したか否かを判定し(ステップS806)、P2Pネットワークから離脱していない場合(ステップS806:N)、映像データ取得処理(ステップS804)及び映像データ送信処理(ステップS805)を行い、P2Pネットワークから離脱した場合(ステップS806:Y)、所定のネットワーク離脱処理を行う(ステップS807)。ノード1は、P2Pネットワークに参加している間、前述の映像データ取得処理(ステップS804)及び映像データ送信処理(ステップS805)を繰り返す。
尚、図8に示したノード1の処理では、ステップS803において、ノード1がP2Pネットワークに新たに参加したときに視聴ポイント設定処理を行うようにしたが、視聴ポイント設定処理は、このタイミング以外に、例えば再生が停止したときに行われる。
(視聴ポイント設定処理)
次に、図8に示した視聴ポイント設定処理(ステップS803)について詳細に説明する。図9は、その詳細な処理を示すフローチャートである。ノード1のバッファマップ比較手段15は、送受信手段10のバッファマップ取得手段52により取得された上流ノード1のバッファマップを入力し、入力した複数のバッファマップを比較することで、バッファマップに含まれる再生状況が再生中を示しているバッファマップを選択する(ステップS901)。これにより、上流ノード1から取得したバッファマップのうち、再生中の上流ノード1から取得したバッファマップが選択される。バッファマップ比較手段15は、選択したバッファマップの数が1つである場合、このバッファマップを比較結果として視聴ポイント設定手段53に出力する。
バッファマップ比較手段15は、ステップS901にて選択したバッファマップの数が複数である場合、複数のバッファマップを比較することで、バッファマップが示す最も古いデータの位置(上流ノード1の視聴ポイント)のうち最新の視聴ポイントを有する1つのバッファマップを特定し(ステップS902)、特定した1つのバッファマップを比較結果として視聴ポイント設定手段53に出力する。
送受信手段10の視聴ポイント設定手段53は、バッファマップ比較手段15から比較結果のバッファマップを入力し、入力したバッファマップが示す最も古いデータの位置(上流ノード1の視聴ポイント)から1つ新しいデータの位置を、視聴ポイントに設定する(ステップS903)。
尚、図9に示した視聴ポイント設定処理では、ステップS901において、バッファマップ比較手段15は、上流ノード1から取得された複数のバッファマップを比較することで、バッファマップに含まれる再生状況が再生中を示しているバッファマップを選択するようにした。これに対し、バッファマップ比較手段15は、バッファマップに含まれる視聴ポイント以降のデータに関する情報に基づいてデータ量を算出し、算出したデータ量が所定量以上の場合に、再生状況が再生中であると判定し、算出したデータ量が所定量よりも少ない場合に、再生状況が非再生中であると判定し、再生中であると判定したバッファマップを選択するようにしてもよい。この場合、バッファマップには、再生状況(再生中または非再生中)の情報が不要となる。
また、図9に示した視聴ポイント設定処理では、ステップS902において、バッファマップ比較手段15は、比較結果の1つのバッファマップを特定する際に、ステップS901にて選択した複数のバッファマップが示す最も古いデータの位置(上流ノード1の視聴ポイント)のうち最新の視聴ポイントを有する1つのバッファマップを特定するようにした。これに対し、バッファマップ比較手段15は、複数のバッファマップが示す再生スレッショルドのうち最新の再生スレッショルドを有する1つのバッファマップを特定するようにしてもよい。また、バッファマップ比較手段15は、複数のバッファマップのうち、任意に1つのバッファマップを特定するようにしてもよい。
また、図9に示した視聴ポイント設定処理では、ステップS903において、送受信手段10の視聴ポイント設定手段53は、再生中の上流ノード1から取得したバッファマップが示すデータのうち最も古いデータの位置(上流ノード1の視聴ポイント)から1つ新しいデータの位置を、視聴ポイントに設定するようにした。これに対し、視聴ポイント設定手段53は、最も古いデータの位置を視聴ポイントに設定するようにしてもよいし、最も古いデータの位置から2つ以上新しいデータの位置を視聴ポイントに設定するようにしてもよい。
(映像データ取得処理)
次に、図8に示した映像データ取得処理(ステップS804)について詳細に説明する。図10は、その詳細な処理を示すフローチャートである。ノード1における送受信手段10のデータ取得手段54は、図8に示したステップS802または後述するステップS1006にて取得した複数のバッファマップ(上流ノード1のバッファマップ)に基づいて、上流ノード1からデータを取得し、バッファメモリ11に蓄積する(ステップS1001)。具体的には、データ取得手段54は、バッファマップに基づいて、データを取得するためのデータ要求を上流ノード1へ送信し、データ要求に対応するデータを、データ要求を送信した上流ノード1から受信し、バッファメモリ11に蓄積する。
データ取得手段54は、バッファマップが示すデータのうち、視聴ポイント設定手段53により設定された視聴ポイント以降の全てのデータを取得済みであるか否かを判定し(ステップS1002)、全てのデータを取得済みであると判定した場合(ステップS1002:Y)、ステップS1003へ移行し、全てのデータを取得済みでないと判定した場合(ステップS1002:N)、ステップS1005へ移行する。
データ取得手段54は、全てのデータを取得済みであると判定してステップS1002から移行すると、再生中の上流ノード1から取得したバッファマップのうち、最新のデータに関する情報を有する1つのバッファマップを特定する(ステップS1003)。そして、データ取得手段54は、特定したバッファマップが示す最新のデータの次に新しいデータを取得するためのデータ要求を、当該バッファマップの取得先である上流ノード1へ送信し、データ要求に対応するデータを、データ要求を送信した上流ノード1から受信し、バッファメモリ11に蓄積する(ステップS1004)。これにより、データ取得手段54は、バッファマップの示す最新のデータの次に新しいデータが、そのバッファマップの取得先である上流ノード1に蓄積されていることを予測し、予測対象のデータをその上流ノード1から取得することができる。最新のデータを蓄積している取得先の上流ノード1は再生中であり、予測対象のデータ(最新のデータの次に新しいデータ)を他の上流ノード1よりも早く蓄積するものと想定できるからである。
送受信手段10の再生手段12は、ステップS1002またはステップS1004から移行すると、図6に示したデータ再生処理を行う(ステップS1005)。すなわち、再生手段12は、バッファメモリ11から視聴ポイントのデータを読み出して映像データを再生し、バッファメモリ11に蓄積されたデータが視聴ポイント以下になった場合に再生を停止し、データが再生スレッショルドの位置にまで蓄積されるのを待って、再生を開始する。
送受信手段10のバッファマップ取得手段52は、バッファマップ保存手段13からの取得要求に基づいて、所定の時間間隔にて、バッファマップを取得するためのバッファマップ要求を上流ノード1へ送信し、バッファマップを上流ノード1から受信してバッファマップ保存手段13に出力する(ステップS1006)。バッファマップ保存手段13は、バッファマップをバッファメモリ11に保存する。これにより、上流ノード1のバッファマップは、所定時間間隔で更新される。
送受信手段10のパッチング手段55は、図7に示したパッチング処理を行う(ステップS1007)。すなわち、パッチング手段55は、バッファメモリ11に蓄積されたデータのポインタがパッチングスレッショルド以下になった場合に、上流ノード1からデータを取得する代わりに、緊急にパッチングサーバ3からデータを取得する。
尚、図10に示した映像データ取得処理では、ステップS1004において、送受信手段10のデータ取得手段54は、特定したバッファマップが示す最新のデータの次に新しいデータを取得するようにした。これに対し、データ取得手段54は、最新のデータの次に新しいデータに加え、さらに新しいデータも取得するようにしてもよい。つまり、データ取得手段54は、特定したバッファマップが示す最新のデータの次に新しい2以上のデータを取得するためのデータ要求を、当該バッファマップの取得先である上流ノード1へ送信し、データ要求に対応するデータを、データ要求を送信した上流ノード1から受信し、バッファメモリ11に蓄積するようにしてもよい。これにより、データ取得手段54は、バッファマップの示す最新のデータの次に新しい2以上のデータが、そのバッファマップの取得先である上流ノード1に蓄積されていることを予測し、予測対象の2以上のデータをその上流ノード1から取得することができる。
また、図10に示した映像データ取得処理では、ステップS1004において、送受信手段10のデータ取得手段54は、特定したバッファマップの示す最新のデータの次に新しいデータ(予測対象のデータ)が前記バッファマップの取得先である上流ノード1に蓄積されていることを予測し、予測対象のデータを取得するためのデータ要求を当該上流ノード1へ送信し、当該上流ノード1から、データ要求に対応するデータを受信するようにした。しかし、当該上流ノード1に予測対象のデータが蓄積されていないことがあり得る。この場合、データ取得手段54は、当該上流ノード1から、データ要求に対応したデータ不在を示す情報を受信し、所定時間待ってから再度のデータ要求を、当該上流ノード1へ送信する。
(映像データ送信処理)
次に、図8に示した映像データ送信処理(ステップS805)について詳細に説明する。図11は、その詳細な処理を示すフローチャートである。ノード1のバッファマップ作成手段14は、所定の時間間隔にて、バッファメモリ11に蓄積されたデータに基づいて、視聴ポイント以降のデータに関する情報に加え、再生状況、視聴ポイント及び再生スレッショルドの情報を示すバッファマップを作成する(ステップS1101)。
送受信手段10のバッファマップ送信手段56は、下流ノード1からバッファマップ要求を受信したか否かを判定し(ステップS1102)、バッファマップ要求を受信したと判定した場合(ステップS1102:Y)、バッファマップ作成手段14により作成されたバッファマップを、バッファマップ要求を送信してきた下流ノード1へ送信し(ステップS1103)、ステップS1104へ移行する。一方、バッファマップ送信手段56は、ステップS1102において、バッファマップ要求を受信していないと判定した場合(ステップS1102:N)、ステップS1104へ移行する。
送受信手段10のデータ送信手段57は、ステップS1102またはステップS1103から移行して、下流ノード1からデータ要求を受信したか否かを判定し(ステップS1104)、データ要求を受信したと判定した場合(ステップS1104:Y)、バッファメモリ11からデータ要求に対応するデータを読み出し、読み出したデータを、データ要求を送信してきた下流ノード1へ送信し(ステップS1105)、処理を終了する。この場合、データ送信手段57は、バッファメモリ11にデータ要求に対応するデータが蓄積されておらず、データを読み出すことができないと判断すると、データ要求に対応したデータ不在を示す情報を、データ要求を送信してきた下流ノード1へ送信する。一方、データ送信手段57は、ステップS1104において、データ要求を受信していないと判定した場合(ステップS1104:N)、処理を終了する。
尚、図11に示した映像データ送信処理では、ステップS1101において、バッファマップ作成手段14は、所定の時間間隔にて、バッファメモリ11に蓄積されたデータに基づいて、視聴ポイント以降のデータに関する情報に加え、再生状況、視聴ポイント及び再生スレッショルドの情報を示すバッファマップを作成するようにした。これに対し、バッファマップ作成手段14は、視聴ポイント以降のデータに関する情報及び再生状況の情報からなるバッファマップを作成するようにしてもよいし、視聴ポイント以降のデータに関する情報のみからなるバッファマップを作成するようにしてもよい。この場合、バッファマップを受信するノード1は、視聴ポイント以降のデータに関する情報から視聴ポイントを導出することができ、また、視聴ポイント以降のデータに関する情報からデータ量を算出し、算出したデータ量から再生中または非再生中を示す再生状況を導出することができる。
以上のように、本実施例によれば、バッファマップに、視聴ポイント以降のデータに関する情報に加え、再生状況、視聴ポイント及び再生スレッショルドの情報も加えるようにし、ノード1における送受信手段10の視聴ポイント設定手段53は、上流ノード1から取得したバッファマップのうち、再生中の上流ノード1から取得したバッファマップを選択し、選択したバッファマップの示すデータのうち最も古いデータ(上流ノード1の視聴ポイント)に基づいて視聴ポイントを設定し、データ取得手段54は、設定した視聴ポイント以降のデータを上流ノード1から取得するようにした。これにより、当該ノード1の視聴ポイントは、再生中の上流ノード1の視聴ポイントに近くなり、大きく遅延することがない。したがって、再生中の上流ノード1に対する当該ノード1の視聴ポイントの遅延を小さくすることができ、低遅延で安定した配信サービスを提供することが可能となる。
また、視聴ポイント設定手段53は、再生中の上流ノード1から取得したバッファマップの示すデータのうち最も古いデータ(上流ノード1の視聴ポイント)よりも1つ新しいデータの位置を視聴ポイントに設定し、データ取得手段54は、設定した視聴ポイント以降のデータを上流ノード1から取得するようにした。これにより、当該ノード1の視聴ポイントは、再生中の上流ノード1Aの視聴ポイントに一層近くなる。したがって、上流ノード1に対する当該ノード1の視聴ポイントの遅延をさらに小さくすることができ、一層低遅延で安定した配信サービスを提供することが可能となる。
また、視聴ポイント設定手段53は、バッファマップの示す最新のデータの次に新しいデータ(バッファマップには示されていないデータ)が上流ノード1に蓄積されることを予測し、上流ノード1から予測対象のデータも取得するようにした。これにより、当該ノード1は予測対象のデータまで再生することができるから、再生中の上流ノード1に対する当該ノード1の視聴ポイントの遅延をさらに小さくすることができ、一層低遅延で安定した配信サービスを提供することが可能となる。
また、本実施例によれば、ノード1がP2Pネットワークに参加またはP2Pネットワークから離脱した場合であっても、全てのノード1は前述の処理を行うから、低遅延で安定した配信サービスを実現することができる。
また、本実施例によれば、このP2Pネットワークによる配信サービスと、ソーシャルネットワーク等の他のサービスとを連携する場合にも、全てのノード1は、低遅延で安定した配信サービスを実現することができるから、他のサービスとの間で時間的な整合を図ることができる。
尚、本発明の実施例によるノード1、配信サーバ2、パッチングサーバ3及びディレクトリサーバ4のハードウェア構成としては、通常のコンピュータを使用することができる。ノード1、配信サーバ2、パッチングサーバ3及びディレクトリサーバ4は、CPU、RAM等の揮発性の記憶媒体、ROM等の不揮発性の記憶媒体、及びインターフェース等を備えたコンピュータによって構成される。ノード1に備えた送受信手段10、バッファメモリ11、再生手段12、バッファマップ保存手段13、バッファマップ作成手段14及びバッファマップ比較手段15の各機能は、これらの機能を記述したプログラムをCPUに実行させることによりそれぞれ実現される。これらのプログラムは、磁気ディスク(フロッピー(登録商標)ディスク、ハードディスク等)、光ディスク(CD−ROM、DVD等)、半導体メモリ等の記憶媒体に格納して頒布することもでき、ネットワークを介して送受信することもできる。
1,100 端末装置(ノード)
2 配信サーバ
3 パッチングサーバ
4 ディレクトリサーバ
5 通信システム
10 送受信手段
11 バッファメモリ
12 再生手段
13 バッファマップ保存手段
14 バッファマップ作成手段
15 バッファマップ比較手段(バッファマップ選択手段)
51 ネットワーク参加処理手段
52 バッファマップ取得手段
53 視聴ポイント設定手段
54 データ取得手段
55 パッチング手段
56 バッファマップ送信手段
57 データ送信手段

Claims (5)

  1. P2Pネットワークにより、上流の端末装置から映像ストリームのデータを受信してバッファメモリに蓄積し、再生位置を示す視聴ポイントのデータを再生し、前記バッファメモリから映像ストリームのデータを読み出して下流の端末装置へ送信する端末装置において、
    前記上流の端末装置のバッファメモリに蓄積されている映像ストリームのデータのうち前記上流の端末装置における視聴ポイント以降のデータを識別する情報を含むバッファマップを取得するためのバッファマップ要求を、前記上流の端末装置へ送信し、前記上流の端末装置から前記バッファマップを取得するバッファマップ取得手段と、
    前記バッファマップ取得手段により取得されたバッファマップに基づいて、再生中の上流の端末装置から取得されたバッファマップを選択するバッファマップ選択手段と、
    前記バッファマップ選択手段により選択されたバッファマップに基づいて、当該端末装置の視聴ポイントを設定する視聴ポイント設定手段と、
    前記バッファマップ取得手段により取得されたバッファマップに基づいて、前記視聴ポイント設定手段により設定された当該端末装置の視聴ポイント以降のデータを取得するための要求を、前記上流の端末装置へ送信し、前記上流の端末装置から要求に対応するデータを受信し、前記バッファメモリに蓄積するデータ取得手段と、
    を備えたことを特徴とする端末装置。
  2. 請求項1に記載の端末装置において、
    前記バッファマップ選択手段は、
    再生中の上流の端末装置から取得されたバッファマップが1つの場合、前記1つのバッファマップを選択し、再生中の上流の端末装置から取得されたバッファマップが複数の場合、前記複数のバッファマップの中から、前記複数のバッファマップが示すそれぞれの視聴ポイントのうち最新の視聴ポイントを有するバッファマップを選択する、ことを特徴とする端末装置。
  3. 請求項1または2に記載の端末装置において、
    前記視聴ポイント設定手段は、
    前記バッファマップ選択手段により選択されたバッファマップにより識別される最も古いデータを特定し、前記最も古いデータの位置から所定数新しいデータの位置を、当該端末装置の視聴ポイントに設定する、ことを特徴とする端末装置。
  4. 請求項1から3までのいずれか一項に記載の端末装置において、
    前記データ取得手段は、
    さらに、前記バッファマップ取得手段により取得されたバッファマップのうち、最新のデータが識別されるバッファマップを特定し、前記最新のデータの次に新しいデータを取得するための要求を、前記特定したバッファマップの取得先である上流の端末装置へ送信し、前記上流の端末装置から要求に対応するデータを受信し、前記バッファメモリに蓄積する、ことを特徴とする端末装置。
  5. コンピュータを、請求項1から4までのいずれか一項に記載の端末装置として機能させるためのプログラム。
JP2012049610A 2012-03-06 2012-03-06 P2pネットワークサービスに用いる端末装置及びプログラム Active JP5868735B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2012049610A JP5868735B2 (ja) 2012-03-06 2012-03-06 P2pネットワークサービスに用いる端末装置及びプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012049610A JP5868735B2 (ja) 2012-03-06 2012-03-06 P2pネットワークサービスに用いる端末装置及びプログラム

Publications (2)

Publication Number Publication Date
JP2013187638A JP2013187638A (ja) 2013-09-19
JP5868735B2 true JP5868735B2 (ja) 2016-02-24

Family

ID=49388736

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012049610A Active JP5868735B2 (ja) 2012-03-06 2012-03-06 P2pネットワークサービスに用いる端末装置及びプログラム

Country Status (1)

Country Link
JP (1) JP5868735B2 (ja)

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101267356B (zh) * 2007-03-16 2011-04-06 华为技术有限公司 测量Overlay节点间网络性能的方法、装置和系统
US7975282B2 (en) * 2007-11-01 2011-07-05 Sharp Laboratories Of America, Inc. Distributed cache algorithms and system for time-shifted, and live, peer-to-peer video streaming
JP5014244B2 (ja) * 2008-05-02 2012-08-29 キヤノン株式会社 映像配信装置及びその制御方法、映像配信システム、プログラム
JP5067259B2 (ja) * 2008-05-16 2012-11-07 ブラザー工業株式会社 ツリー型放送システム、ノード接続方法、ノード装置、及びノード処理プログラム
KR101027500B1 (ko) * 2008-10-30 2011-04-06 주식회사 카뮤즈 세션수에 의해 p2p의 트리구조를 형성하는 p2p방식 인터넷 라이브 방송 서비스 시스템 및 방법
JP2011182061A (ja) * 2010-02-26 2011-09-15 Nippon Hoso Kyokai <Nhk> 通信端末およびデータ配信方式切り替えプログラム
JP2011199644A (ja) * 2010-03-19 2011-10-06 Fujitsu Ltd ストリーミング配信方法

Also Published As

Publication number Publication date
JP2013187638A (ja) 2013-09-19

Similar Documents

Publication Publication Date Title
JP5505009B2 (ja) 通信端末装置、コンピュータプログラムおよびコンテンツ検索方法
WO2017161998A1 (zh) 视频处理方法和装置、计算机存储介质
WO2015166573A1 (ja) ライブ放送システム
KR20200083608A (ko) 비디오 라이브 방송 방법 및 장치
JP2020119497A (ja) ライブストリーミングセグメント化方法、装置及びシステム
KR20140097580A (ko) 코덱이 적용된 프레임 크기로의 오디오 분할
WO2018121405A1 (zh) 一种流数据的传输方法和装置
US20080291926A1 (en) Distributed content storage system, content storage method, node device, and node processing program
TW201112708A (en) Light host management protocol on multicast capable router
JP2019036969A (ja) ライブ放送システム
WO2023035879A1 (zh) 自由视角视频的视角切换方法、装置、系统、设备和介质
CN114827698B (zh) 一种播放信息的同步方法、装置、终端设备和存储介质
KR20160077764A (ko) 음악 정보 제공 방법 및 시스템
US20160357875A1 (en) Techniques for promoting and viewing social content written by nearby people
JP5865737B2 (ja) P2pネットワークサービスに用いる端末装置、通信システム及びプログラム
JP5868735B2 (ja) P2pネットワークサービスに用いる端末装置及びプログラム
KR20180001001A (ko) 클라이언트의 동영상 시청 트래킹 방법 및 장치
JP5906104B2 (ja) P2pネットワークサービスに用いる端末装置、通信システム及びプログラム
JP2013258657A (ja) P2pネットワークサービスに用いる端末装置及びプログラム
JP2012113719A (ja) P2p基盤のストリーミングサービスのサーバ使用量を調整するシステムおよび方法
JP2011124940A (ja) 配信システム、ノード装置、情報処理装置、ノードプログラム、及び広告コンテンツ再生方法
JP5492736B2 (ja) 映像配信システム、映像配信方法、および映像配信プログラム
JP2006209356A (ja) コンテンツ配信システム、並びにこれに用いられるピア及びピアプログラム
JP2011129059A (ja) 情報処理装置、通信システム、制御方法及び制御プログラム
CN113301100A (zh) 基于内容分发网络的数据容灾方法、装置、设备及介质

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20150202

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20151119

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: 20151210

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160106

R150 Certificate of patent or registration of utility model

Ref document number: 5868735

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

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