説明

コンテンツ配信システム、ピア及びセンタサーバ

【課題】選択された高品位コンテンツを視聴したいときに直ぐに視聴できるコンテンツ配信システムを提供する。
【解決手段】
ピアP1は、各々がコンテンツの先頭から末尾までのデータで構成される全体ファイルの一部に相当し、コンテンツの先頭から所定範囲までのデータである複数の先頭部分ファイルを蓄積する。ピアP1は、ユーザにより選択されたコンテンツC1の再生を開始する。ピアP1は、コンテンツC1の先頭部分ファイルのみを蓄積するため、コンテンツの全体ファイルの所在に関するコンテンツ情報に基づいて、コンテンツC1の全体ファイルを保有するピアP3からコンテンツC1の残部ファイルをコンテンツC1の再生中に取得する。取得されたデータは順次再生される。これにより、ピアP1のユーザは所望のコンテンツC1を直ぐに視聴でき、さらに、途切れることなく最後まで視聴できる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、コンテンツ配信システム、ピア及びセンタサーバに関し、さらに詳しくは、互いに接続可能な複数のピアと、複数のピアに接続されたセンタサーバとを備えるピアツーピア(Peer to Peer)型のコンテンツ配信システムと、それに用いられるピア及びセンタサーバに関する。
【背景技術】
【0002】
インターネット上で音楽や映画等のコンテンツを配信するシステムが多数登場している。特に、最近隆盛を見せているピアツーピア型コンテンツ配信システムでは、コンテンツをピア間で配信するため、ファイルの転送負荷が各ピアに分散される。そのため、クライアントサーバ型コンテンツ配信システムに比べ、はるかに多くのピアにコンテンツを配信することができる。
【0003】
ところで、コンテンツの配信方法にはストリーミング方式とダウンロード方式とがある。ストリーミング方式では、各ピアはコンテンツのストリーミング配信を受けながら再生するため、ユーザは視聴したいときに直ぐにコンテンツを視聴できる。しかしながら、ストリーミング方式は、ピア間の帯域の制限を受けるため、高品位のコンテンツを配信できない。
【0004】
これに対し、ダウンロード方式は、一般的に、コンテンツの先頭から末尾までの全てのデータをダウンロードした後コンテンツを再生するため、ピア間の帯域の制限を受けることなく高品位のコンテンツを視聴できる。
【0005】
しかしながら、ダウンロード方式では、コンテンツの先頭から末尾までのデータである全体ファイルを予めダウンロードする必要があるため、ピア内に全体ファイルがなければ、ユーザは視聴したいときに直ぐにコンテンツを視聴できず、ダウンロードが完了するまで待たなければならない。システム上の複数のコンテンツの全データをピアに予めダウンロードすれば、任意のコンテンツを直ぐに視聴できるが、ピア内のハードディスクドライブの容量上非現実的である。
【特許文献1】特開2006−72432号公報
【発明の開示】
【発明が解決しようとする課題】
【0006】
本発明の目的は、選択された高品位コンテンツを視聴したいときに直ぐに視聴できるコンテンツ配信システムを提供することである。
【課題を解決するための手段及び発明の効果】
【0007】
本発明によるコンテンツ配信システムはピアツーピア型であり、互いに接続された複数のピアと、複数のピアと接続されたセンタサーバとを備える。ピアは、コンテンツの複数の全体ファイルと複数の先頭部分ファイルとを蓄積するピア蓄積手段とを備える。複数の全体ファイルは、各々がコンテンツの先頭から末尾までの全てのデータで構成される。先頭部分ファイルは、各々が当該他のピアに蓄積された全体ファイルの一部に相当し、コンテンツの先頭から所定範囲までのデータである。センタサーバは、複数の全体ファイルの所在を含むコンテンツ情報を蓄積するサーバ蓄積手段を備る。ピアはさらに、先頭部分取得手段と、再生手段と、残部取得手段とを備える。先頭部分取得手段は、コンテンツ情報に基づいて、自身が蓄積していないコンテンツであって当該他のピアに蓄積されたコンテンツの全体ファイルから先頭部分ファイルを取得してピア蓄積手段に蓄積する。再生手段は、ピア蓄積手段に蓄積された複数のコンテンツの中から選択されたコンテンツの再生を開始する。残部取得手段は、選択されたコンテンツの全体ファイルが蓄積されておらず先頭部分ファイルが蓄積されているとき、コンテンツの再生中に、選択されたコンテンツの全体ファイルのうち先頭部分ファイルを除くデータである残部ファイルを、選択されたコンテンツの全体ファイルを蓄積する当該他のピアから取得する。ここで、コンテンツとは、たとえば、動画や音声等をいう。
【0008】
本発明によるコンテンツ配信システムでは、ピアはコンテンツの全体ファイルの一部に相当する複数の先頭部分ファイルを蓄積する。ピアが全体ファイルを予め保有していないコンテンツであっても、先頭部分ファイルが保存されていれば、ユーザは所望の高品質のコンテンツを直ぐに視聴できる。さらに、ピアは、先頭部分ファイルのコンテンツを再生したとき、コンテンツの再生中に残部ファイルを取得して再生を継続する。そのため、ユーザは所望の高品質のコンテンツを直ぐに視聴でき、かつ、最後まで視聴できる。
【0009】
好ましくは、コンテンツ情報はさらに、コンテンツの再生時間と、コンテンツの全体ファイルのデータサイズとを含む。サーバ蓄積手段はさらに、各ピア間の転送レートに関する転送レート情報を蓄積する。センタサーバはさらに、特定手段と、先頭部分サイズ決定手段と、登録手段とを備える。特定手段は、コンテンツ情報内の全体ファイルの所在に基づいて、所定のコンテンツの全体ファイルを蓄積するピアを転送元ピアとして特定する。先頭部分サイズ決定手段は、コンテンツ情報及び転送レート情報に基づいて、転送先となるピアが転送元ピアから所定のコンテンツの残部ファイルを取得する時間が所定のコンテンツの再生時間よりも短くなるように、所定のコンテンツの先頭部分ファイルのデータサイズを決定する。登録手段は、決定された先頭部分ファイルのデータサイズと転送元ピアと転送先となるピアとを対応づけた先頭部分ファイル情報をサーバ蓄積手段に登録する。先頭部分取得手段は、先頭部分ファイル情報に基づいて、転送元ピアから先頭部分ファイルを取得し、残部取得手段は、転送元ピアから残部ファイルを取得する。
【0010】
この場合、各ピアごとに、先頭部分ファイルのデータサイズが決定される。残部ファイルの取得時間は、コンテンツの再生時間よりも短いため、コンテンツの再生が途切れるのを抑制できる。
【0011】
好ましくは、コンテンツ情報はさらに、コンテンツのメタ情報を含み、サーバ蓄積手段はさらに、各ピアが取得するコンテンツの選択条件に関する選択条件情報を蓄積する。センタサーバはさらに、優先順位リスト作成手段を備える。優先順位リスト作成手段は、コンテンツ情報と選択条件情報とに基づいて、各ピアが先頭部分ファイルを取得すべきコンテンツの優先順位を列挙した優先順位リストを作成してサーバ蓄積手段に登録する。ピアはさらに、ピア記憶手段の空き容量を求める空き容量決定手段を備え、先頭部分取得手段は、優先順位リスト及び空き容量に基づいて、ファイル先頭部分を優先順に取得する。ここで、メタ情報とは、コンテンツの詳細に関する情報であり、具体的には、たとえば、タイトル、キャスト、ジャンル、歌手名、等である。
【0012】
ピア記憶手段の容量は有限であるため、各ピアがコンテンツ配信システム上に存在する全てのコンテンツの先頭部分ファイルを保有するのは困難である。コンテンツの選択条件に基づいて作成された優先順位リストに沿って先頭部分ファイルを蓄積することにより、選択される可能性の高いコンテンツをピアに格納することができる。
【0013】
好ましくは、コンテンツ情報はさらに、コンテンツの公開期間情報を含む。ピアはさらに、公開期間取得手段と、削除手段とを備える。公開期間取得手段は、ピア蓄積手段に蓄積されたコンテンツの公開期間情報をセンタサーバから取得する。削除手段は、公開期間情報に基づいて、公開期間を渡過したコンテンツの全体ファイル及び先頭部分ファイルを削除する。
【0014】
公開期間を渡過したコンテンツを順次削除することにより、ピアは、新たなコンテンツの先頭部分ファイル又は全体ファイルを順次蓄積することができる。
【0015】
本発明によるピアは上述のコンテンツ配信システムに用いられるピアであり、本発明によるセンタサーバは上述のコンテンツ配信システムに用いられるセンタサーバである。
【発明を実施するための最良の形態】
【0016】
以下、図面を参照し、本発明の実施の形態を詳しく説明する。図中同一又は相当部分には同一符号を付してその説明は繰り返さない。
【0017】
[全体構成]
図1を参照して、コンテンツ配信システム1は、互いに接続可能なピア(クライアント)P1〜P3と、ピアP1〜P3(以下、これらをピアPnともいう)に接続可能なセンタサーバ10とを備える。つまり、コンテンツ配信システム1は、ハイブリッド型のピアツーピアシステムである。各ピアPnは、他のピアPnからコンテンツを取得することができる。なお、図1ではピアPnを3つとしたが、2つであってもよいし、3以上であってもよい。
【0018】
[概要]
図2を参照して、各ピアPnのハードディスクドライブ(以下、HDDという)23には、複数のコンテンツ(ここでいうコンテンツは、複数のフレームで構成される動画とする)が蓄積される。蓄積されたコンテンツは、データの種類で2種類に分かれる。1つは、コンテンツの先頭から末尾までの全てのデータ(フレーム)が揃った全体ファイルである。他の1つは、全体ファイルのうちの先頭部分に相当するデータ、すなわち、コンテンツの先頭から所定範囲までのフレームで構成された先頭部分ファイルである。各ファイル(全体ファイル及び先頭部分ファイル)は互いに異なるコンテンツのファイルである。一般的に、先頭部分ファイルは全体ファイルよりもデータサイズが小さい。各ピアPnは、複数の先頭部分ファイルを有することにより、コンテンツを全て全体ファイルで保有する場合よりも多くのコンテンツを予め保有できる。
【0019】
センタサーバ10は、コンテンツの所在に関するコンテンツ情報と、各ピアが取得するコンテンツの選択条件に関する選択条件情報とを蓄積しており、これらの情報に基づいて各ピアで取得すべきコンテンツの優先順位を列挙した優先順位リストを作成する。
【0020】
ピアPnは、センタサーバ10で作成された優先順位リストに基づいて、コンテンツの全体ファイルを蓄積する他のピアPnから先頭部分ファイルを取得してHDD23に登録する。
【0021】
ピアP1のユーザが所望のコンテンツC1を選択し、ピアP1に再生を指示したとき、ピアP1はコンテンツC1の先頭部分ファイルに基づいてコンテンツC1の再生を直ちに開始する。つまり、ユーザはコンテンツC1を直ぐに視聴できる。
【0022】
さらに、ピアP1は、先頭部分ファイルの再生を開始するとともに、そのコンテンツの全体ファイルのうち、先頭部分以降のデータ(以下、残部ファイルという)を他のピアPn(図2ではピア3)から取得しながら順次再生する。
【0023】
以上、各ピアPnは、ユーザが選択する可能性の高い複数のコンテンツの先頭部分ファイルを予め保有しているため、ユーザにより選択された高品位のコンテンツを即座に視聴できる。さらに、再生中に残部ファイルを取得して順次再生するため、そのコンテンツを途切れることなく最後まで視聴できる。以下、コンテンツ配信システム1の各構成の詳細を説明する。
【0024】
[センタサーバ]
センタサーバ10は、コンテンツ情報を管理したり、優先順位リストを作成したりする。図1を参照して、センタサーバ10は、CPU(Central Processing Unit)11と、メモリ12と、ハードディスクドライブ(HDD)13とを備える。
【0025】
HDD13は、コンテンツ情報管理データベース(以下、データベースをDBという)131と、ピア情報管理DB132と、先頭部分ファイル情報DB133とを備える。
【0026】
コンテンツ情報管理DB131は、図3に示すように、コンテンツ配信システム1内のピアP1〜P3が蓄積するコンテンツに関する情報(コンテンツ情報)CI1〜CIm(mは自然数)を登録する。
【0027】
各コンテンツ情報CImは、コンテンツCmを識別するためのコンテンツIDを登録するためのフィールドと、コンテンツCmの全体ファイルのデータサイズを登録するためのフィールドと、コンテンツCmの再生時間を登録するためのフィールドとを有する。
【0028】
コンテンツ情報CImはさらに、コンテンツの詳細、つまり、コンテンツのメタ情報を登録するためのフィールドを有する。メタ情報は、たとえば、タイトルやキャスト、ジャンル(アクション、コメディ、ホラー等)、そのコンテンツに関するキーワード等である。コンテンツ情報CImはさらに、コンテンツの公開期間に関する公開期間情報(公開開始日時及び公開終了日時)を登録するためのフィールドと、コンテンツの所在を示す情報として、当該コンテンツの全体ファイルを蓄積するピアの識別情報(P1、P2等)を登録するためのフィールドとを有する。
【0029】
センタサーバ10は、外部からコンテンツ配信システム1に新たなコンテンツが登録されたり、各ピアPnが新たなコンテンツの全体ファイルを取得したときに、コンテンツ情報管理DB131を更新する。
【0030】
ピア情報管理DB132には、図4に示すように、コンテンツ配信システム1内の各ピアに関する情報(ピア情報)PI1〜PI3が登録される。各ピア情報PIは、ピアを識別するためのピアID(P1〜P3)と、ピアを使用するユーザ名と、全体ファイルを保存済みのコンテンツのコンテンツIDと、先頭部分ファイルを保存済みのコンテンツのコンテンツIDとを含む。
【0031】
ピア情報PIはさらに、ピアPIが取得すべきコンテンツの選択条件に関する選択条件情報も含む。具体的には、選択条件情報は、ユーザの好きなジャンル、嫌いなジャンル、及びフリーキーワードを含む。これらの選択条件情報は、先頭部分ファイルを取得するコンテンツの優先順位を決定する。
【0032】
ピア情報PIはさらに、各ピアPn間での転送レート情報を有する。たとえば、ピア情報PI1には、ピアP1とピアP2との間での転送レート情報と、ピアP1とピアP3との間での転送レート情報とを含む。転送レートは、たとえば、各ピアPnが当該他のピアPnに定期的にpingを送受信する等により求められる。
先頭部分ファイル情報DB133には、図5に示すように、転送先となるピアが取得すべき各コンテンツC1〜Cmの先頭部分ファイルのデータサイズと、コンテンツの転送元となるピアPnのピアIDとが転送先となるピアと対応づけられた先頭部分ファイル情報が登録される。たとえば、コンテンツC1の場合、ピアP1が取得すべき先頭部分ファイルは、先頭から100Mbytesであり、転送元ピアはピアP3となる。各先頭部分ファイルのデータサイズは、コンテンツCmの再生が途中で途切れないように、コンテンツCmの再生時間、コンテンツCmの全体ファイルのデータサイズ、及び転送元ピアとの間の転送レートに基づいて算出される。
【0033】
HDD13はさらに、ピアPnごとの優先順位リストを蓄積する。図6に示すように、優先順位リストは、ピアPnが先頭部分ファイルを取得すべきコンテンツを優先順に列挙する。優先順位リストは、コンテンツ情報CImと、ピア情報PIn内の選択条件情報とに基づいて作成される。
【0034】
HDD13はさらに、センタサーバアプリケーション134を記憶する。センタサーバアプリケーション134がメモリ12にロードされ、CPU11で実行されることにより、センタサーバ10は後述の動作を実行する。
【0035】
[ピア]
再び図1を参照して、各ピアPnは、CPU21と、メモリ22と、HDD23とを備える。HDD23は、コンテンツDB231と、ピアアプリケーション232とを蓄積する。
【0036】
コンテンツDB231には、複数のコンテンツが登録される。より具体的には、複数の全体ファイルと、複数の先頭部分ファイルとが登録される。
【0037】
ピアPnは、ピアアプリケーション232をメモリ22にロードし、CPU21で実行することにより、他のピアPnから先頭部分ファイル及び残部ファイルを取得したり、他のピアPnにそれらのファイルを配信したりする。また、他のピアPn以外の外部から新たなコンテンツを取り込んだりする。
【0038】
HDD23はさらに、コンテンツDB231に登録されたコンテンツCm(全体ファイル及び先頭部分ファイル)のコンテンツ情報CIm及び先頭部分ファイル情報を記憶する。
【0039】
[動作]
[優先順位リスト作成処理]
まず、センタサーバ10による優先順位リスト作成処理について説明する。図7を参照して、たとえば、コンテンツ配信システム1上にない新たなコンテンツC10の全体ファイルがピアP3に保存されたとき、ピアP3はコンテンツ情報CI10を作成し、作成されたコンテンツ情報CI10と、保有済みの全体ファイルとしてコンテンツC10を新たに登録したピア情報PI3とをセンタサーバ10に送信する。このとき、センタサーバ10は、送信されたコンテンツ情報CI10をコンテンツ情報管理DBに登録し、ピア情報PI3をピア情報管理DB132に登録する。
【0040】
新たなコンテンツ情報CI10の登録により、コンテンツ情報管理DBが更新されたと判断したとき(S101でYES)、センタサーバ10は、新たなコンテンツC10の先頭部分ファイルのデータサイズを決定する(S102:先頭部分ファイルサイズ決定処理)。上述のとおり、ピアPnが再生しようとするコンテンツCmについて、ピアPnがそのコンテンツCmの先頭部分ファイルしか保有していない場合、ピアPnは、コンテンツCmの再生をしながら、他のピアPnから残部ファイルを取得する。このとき、ピアPnは先頭部分ファイルの再生が完了しても、残部ファイルのうち既に取得済みのデータ(フレーム)から順次再生することにより、再生中のコンテンツCmの途切れを防ぐ。このような再生方法を実現するために、以下の方法により先頭部分ファイルのデータサイズを決定する。
【0041】
先頭部分ファイルサイズ決定処理は、コンテンツ配信システム1に新たに登録されたコンテンツCmごとに実行する。図8を参照して、センタサーバ10はまず、算出の対象となるピアをピアP1とする(S1021)。続いて、センタサーバ10は、ピア情報管理DB132を参照して、ピアP1がコンテンツC10の全体ファイルを保有していないことを確認する(S1022でNO)。
【0042】
次に、センタサーバ10は、ピア情報管理DB132に基づいて、コンテンツC10の全体ファイルを保有するピアであって、ピアP1にファイルを配信する転送元ピアを特定する(S1023〜S1025)。センタサーバ10はまず、コンテンツC10の全体ファイルを保有するピアが複数存在するか否かを判断する(S1023)。ここでは、新たなコンテンツC10はピアP3のみが保有しているため(S1023でNO)、センタサーバ10はピアP3を転送元ピアとして特定する(S1025)。
【0043】
センタサーバ10は、ピア情報PI1内の転送レート情報に基づいて、転送元ピアP3からピアP1にデータを配信する場合の転送レートα(Mbps)を読み出す(S1026)。続いて、センタサーバ10は、ピアP1が格納すべきコンテンツC10の先頭部分ファイルのデータサイズを算出する(S1027)。このとき、センタサーバ10は、コンテンツ情報CI10からコンテンツC10の全体ファイルのデータサイズTS(Total Size)と、コンテンツC10の再生時間B(sec)とを読み出す。
【0044】
ピアP1がコンテンツC10を再生する場合、コンテンツC10を途切れることなく最後まで再生するためには、コンテンツC10の全体ファイルから先頭部分ファイルを除いた残部ファイルを、少なくともコンテンツC10の再生時間内にダウンロードする必要がある。つまり、先頭部分ファイルのダウンロード時間をD(sec)し、全体ファイルのダウンロード時間をC(sec)とすれば、残部ファイルのダウンロード時間C−D(sec)は以下の式(1)を満たす必要がある。
【0045】
C−D(sec)<コンテンツC10の再生時間B(sec) (1)
ここで、コンテンツC10の全体ファイルのダウンロード時間Cは以下の式(2)で算出される。
【0046】
C(sec)=全体ファイルのデータサイズTS(Mbytes)×8/α (2)
以上より、センタサーバ10は、式(1)を満たすように先頭部分ファイルのダウンロード時間D(sec)を決定し、式(3)に基づいて、先頭部分ファイルのデータサイズ(Mbytes)を決定する。
【0047】
先頭部分データ量(Mbytes)=D(sec)×α/8 (3)
式(3)に基づいて先頭部分ファイルのデータサイズを決定すれば、ピアP1がコンテンツC10の先頭部分ファイルを再生し始めた場合であって、再生中に残部ファイルを取得しながらコンテンツC10を再生するとき、コンテンツC10を途切れることなく最後まで再生できる。先頭部分ファイルのデータサイズを決定後、センタサーバ10は、決定された先頭部分ファイルのデータサイズ及び転送元ピア(ここではピアP3)を転送先となるピアP1に対応づけた先頭部分ファイル情報として先頭部分ファイル情報DB133に登録する(S1028)。
【0048】
登録後、ピアID=P1をインクリメントしてP2とし(S1029)、ステップS1022に進み(S1030でNO)、ピアP2に対するコンテンツC10の先頭部分ファイルのデータサイズを決定する。
【0049】
なお、ピアP2をインクリメントしてピアP3としたとき、(S1029)、ステップS1022でセンタサーバ10はピアP3がコンテンツC10の全体ファイルを保存していると判断し(S1022でYES)、ステップS1029に進む。
【0050】
ステップS1030でセンタサーバ10はコンテンツ配信システム1上の全てのピアP1〜P3について処理を実行したと判断したとき(S1030でYES)、コンテンツC10に対する先頭部分ファイルサイズ決定処理を終了する。
【0051】
なお、コンテンツC10を予め複数のピア(たとえばピアP2及びP3)に格納した場合、センタサーバ10はステップS1023でコンテンツC10を蓄積するピアが複数存在すると認識する(S1023でYES)。この場合、センタサーバ10はさらに、ステップS1023で認定された複数のピア(P2及びP3)の中からピアを1つ選択し(S1024)、選択されたピアを転送元ピアに特定する。このとき、センタサーバ10は、ピアP1との間の転送レートが高い方を選択してもよいし、ランダムに選択してもよい。
【0052】
以上の方法により、センタサーバ10で先頭部分ファイルのデータサイズを算出し、先頭部分ファイル情報DB133を更新する。
【0053】
図7に戻って、先頭部分ファイルサイズ決定処理を実行後、センタサーバ10は各ピアPnの優先順位リストを更新する(S104及びステップS105)。以下、ピアP1の優先順位リストの更新について説明するが、他のピア(P2及びP3)についても同様に優先順位リストを更新する。
【0054】
センタサーバ10はまず、ピアP1のピア情報PI1中の選択条件情報を読み出す。続いて、選択条件情報及びコンテンツ情報CIm内のメタ情報に基づいて、先頭部分ファイルをダウンロードすべきコンテンツの優先順位を決定する。たとえば、コンテンツのメタ情報が選択条件中のキーワードを含み、かつ、メタ情報内に含まれるジャンルが選択条件内の好きなジャンルと一致するコンテンツを最優先とし、次いで、メタ情報がキーワードを含むコンテンツ、メタ情報内のジャンルが選択条件内の好きなジャンルと一致するコンテンツ、の順にコンテンツを列挙して、優先順位リストを更新する。更新された優先順位リストはHDD13内に記憶される(S105)。
【0055】
以上の動作により、センタサーバ10は、コンテンツ配信システム1内に新たなコンテンツが登録されるごとに、新たに登録されたコンテンツの先頭部分ファイルのデータサイズを決定し、優先順位リストを更新する。
【0056】
一方、ピアPnのユーザが選択条件を変更した場合、ピアPnは更新された選択条件情報を含むピア情報PInをセンタサーバ10に送信する。センタサーバ10はピア情報管理DB132内のピア情報PInを更新する(S103でYES)。このとき、センタサーバ10は、更新されたピア情報PInのピアPnの優先順位リストを更新する(S104及びS105)。要するに、ユーザが選択条件を変更した場合も、優先順位リストが更新される。
【0057】
[先頭部分ファイル取得処理]
ピアPnは、後述するコンテンツ削除処理を実行したのち、先頭部分ファイル取得処理を実行する。以下ピアP1における先頭部分ファイル取得処理について説明するが、ピアP2及びP3についても同様である。図9を参照して、ピアP1はまず、自身のHDD23の空き容量を検知する(S201)。検知された空き容量情報はメモリ22に格納される。
【0058】
続いて、ピアP1は先頭部分ファイル情報のうち、転送先をピアP1とする先頭部分ファイル情報(図5中の100に相当)をセンタサーバ10に要求し、取得する(S202)。続いて、ピアP1は、コンテンツ情報管理DB131内の各コンテンツC1〜Cmの公開期間情報をセンタサーバ10に要求し、取得する(S203)。ピアP1はさらに、センタサーバ10からピアP1の優先順位リストを取得する(S204)。ステップS202〜S204で取得された情報はメモリ22に格納される。
【0059】
センタサーバ10から上述の情報を取得したのち、ピアP1は、コンテンツDB231に未登録のコンテンツの先頭部分ファイルを取得する(S205〜S212)。ピアP1は、優先番号カウンタjをリセットしてj=1とする(S205)。続いて、ピアP1は、優先順位リストを参照し、優先番号j(=1)のコンテンツID(図6ではC1)を特定し、ダウンロード処理を実行する(S220)。
【0060】
ダウンロード処理ではまず、公開期間情報に基づいて、そのコンテンツが現在公開中か否かを判断する(S206)。現在時刻(つまり、先頭部分ファイル取得処理実行時)が公開期間外の場合、(S206でNO)、ピアPnは、先頭部分ファイルをダウンロードすることなく、優先番号カウンタjをインクリメントしてj=1とし(S212)、ステップS206に戻る(S213でNO)。一方、現在時刻が公開期間内の場合(S206でYES)、ピアPnはさらに、優先番号jのコンテンツの先行部分ファイル又は全体ファイルを既にコンテンツDB231に登録しているか否かを判断する(S207)。既に登録している場合(S207でNO)、ダウンロードする必要はないため、ステップS212に進む。
【0061】
ステップS206での判断の結果、コンテンツの先頭部分ファイル及び全体ファイルを未登録の場合(S207でYES)、ピアPnはステップS202で取得した先頭部分ファイル情報から優先番号j(=1)のコンテンツID(=C1)に対応した先行部分ファイルのデータサイズ(=100Mbytes)を読み出し(S208)、読み出されたデータサイズが以下の式(4)を満たすか否かを判断する(S209)。
【0062】
先頭部分ファイルのデータサイズ<HDD23の空き容量−γ (4)
ここで、γは所定の容量(mbytes)であり、少なくとも、コンテンツの全体ファイルの平均データサイズよりも大きい方が好ましい。
【0063】
式(4)を満たさない場合(S209でNO)、先頭部分ファイルをダウンロードすることなくステップS212に進む。一方、式(4)を満たす場合、ピアPnは、先頭部分ファイル情報内の転送元ピア(=ピアP3)から先頭部分ファイル内の該当するデータサイズ(=100Mbytes)に相当する先頭部分ファイルをダウンロードする(S210)。コンテンツC1の先頭部分ファイルをダウンロードしたとき、ピアP1はセンタサーバからコンテンツC1のコンテンツ情報を取得し、HDD23内に記憶する(S211)。このとき、コンテンツC1の公開期間情報も記憶される。また、ステップS202で取得された先頭部分ファイル情報のうち、コンテンツC1の転送元ピア(ピアP3)に関する情報も記憶される。
【0064】
ダウンロードした後、優先番号カウンタjをインクリメントしてj=2とし、優先順位リストに登録されたコンテンツ全てに対してダウンロード処理(S220)を実行する。優先順位リストに登録されたコンテンツ全てに対してダウンロード処理(S220)を実行したとき(S213でYES)、先頭部分ファイル取得処理を終了する。
【0065】
以上の動作により、各ピアP1は、HDD23の空き容量に基づいて、新たなコンテンツの先頭部分ファイルを随時を取得し、ユーザの再生指示に備える。
【0066】
[再生処理]
ピアPnでコンテンツを再生する場合の再生処理について説明する。ユーザから所望のコンテンツの再生指示を受けた場合であって、再生指示を受けたコンテンツの全体ファイルを蓄積しておらず、先頭部分ファイルのみを蓄積している場合、ピアPnは、先頭部分ファイルに基づいてコンテンツの再生を開始する。ピアPnはさらに、コンテンツの再生中に、先頭部分ファイル以降の残部ファイルのダウンロードを実行する。このとき、残部ファイルをダウンロードして新たなフレームをコンテンツDB231に順次記憶しながら、記憶されたフレームを順次再生する。以下、ピアP1でのコンテンツC1の再生処理について説明するが、他のピアP2及びP3も同様の動作を実行する。
【0067】
図10を参照して、初めに、ピアP1はHDD23に格納されたコンテンツ(全体ファイルのコンテンツ及び先頭部分ファイルのコンテンツ)のリストを図示しないディスプレイに表示する(S301)。ユーザがコンテンツリスト内の所望のコンテンツC1を選択し、選択されたコンテンツC1の再生指示を入力したとき、ピアP1は選択されたコンテンツC1を特定し(S302)、コンテンツC1の再生を実行する(S303〜S311)。
【0068】
ピアP1は、特定されたコンテンツC1に対して、コンテンツDB231内に格納しているデータサイズを特定し、格納されているデータ(フレーム)の先頭位置を再生ポイントとしてメモリ22内に記憶し、かつ、末尾位置をライトポインタとしてメモリ22内に記憶する(S303)。再生ポインタ及びライトポインタを記憶後、ピアP1は、再生を開始する(S304)。すなわち、格納されたデータ(フレーム)をメモリ22に順次読み出し、先頭フレームから再生を開始する。ピアP1は、フレームを再生するごとに、再生ポインタをずらす。
【0069】
再生を開始したとき、ピアP1は、ライトポインタが全体ファイルのデータサイズの末尾位置よりも手前に位置するか否かを判断する(S305)。ここで、全体ファイルの末尾位置は、HDD23内に記憶されたコンテンツC1のコンテンツ情報(S211で保存)内の全体ファイルのデータサイズに基づいて決定される。
【0070】
ライトポインタが全体ファイルの末尾位置よりも手前である場合(S305でYES)、コンテンツC1は全体ファイルではなく先頭部分ファイルである。そのため、ピアP1は、ステップS211で保存された転送元ピア情報に基づいて、選択されたコンテンツの残部ファイルの転送元ピアをピアP3に特定し、転送元ピアP3に残部ファイルの配信を要求して残部ファイルの取得を開始する(S306)。このとき、ピアP1は、ライトポインタに基づいて、ライトポインタが示すフレームの次に配列されるフレームから配信するようピアP2に要求する。ピアP2は要求されたフレームから順次残部ファイルを配信する。ピアP1は新たなフレームをコンテンツDB231に登録するごとに、新たに登録されたフレーム位置をライトポインタとしてメモリ22に記憶する。
【0071】
続いて、ピアP1は、再生ポインタがライトポインタよりも手前(つまり先頭フレーム位置とライトポインタ位置との間に再生ポインタが位置する)か否かを判断する(S307)。手前である場合(S307でYES)、ピアP1はコンテンツのフレームをコンテンツDB231からメモリ22に順次読み出して再生を継続する(S308でYES)。
【0072】
再生中、ピアP1は再生ポインタが全体ファイルの末尾位置よりも手前であるか否かを監視する(S310)。手前である場合(ステップS310でYES)、コンテンツを最後まで再生していないため、ステップS307に戻り、ダウンロードしながら再生を継続する。
【0073】
ステップS310で再生ポインタが全体ファイルの末尾位置となったとき(S310でNO)、ピアP1は再生を完了する。このとき、ピアP1は再生を完了したコンテンツの全体ファイルをコンテンツDB231に格納したため、全体ファイルを格納済みのコンテンツを更新したピア情報PI1をセンタサーバ10に送信する(S311)。
【0074】
なお、再生中、再生ポインタがライトポインタを追い越した場合(S307でNO)、再生すべきデータが不足しているため、ピアP1は再生を停止する(S312)。たとえば、転送元ピアP3のトラブルにより残部ファイルのダウンロードが遅れた場合、このような事態が生じうる。一度再生を停止した後、ダウンロードにより新たなフレームを取得した結果、再生ポインタがライトポインタよりも手前となったとき(S307でYES)、再生を開始する(S308でNO、ステップS309)。
【0075】
また、ステップS305でライトポインタが全データの末尾位置と同じである場合(S305でNO)、ピアP1は特定されたコンテンツの全体ファイルを記憶しているため、ダウンロードを開始することなく、コンテンツの再生を継続する。
【0076】
以上、ピアPnは複数のコンテンツの先頭部分ファイルを予め記憶している。そのため、ピアPnは、ユーザにより選択されたコンテンツCmを直ぐに再生できる。また、再生中に残部ファイルの配信を受けてコンテンツDB231に順次登録し、登録されたフレームを順次再生するため、コンテンツを途切れることなく最後まで再生できる。
【0077】
[コンテンツ削除処理]
各ピアPnのコンテンツDB231に蓄積されたコンテンツ(全体ファイル及び先頭部分ファイル)のうち、公開期間を渡過したコンテンツは削除される。これにより、新たなコンテンツの先頭部分ファイルや、再生指示を受けたコンテンツの残部ファイルをコンテンツDB231に順次記憶することができる。以下、コンテンツ削除処理について説明する。
【0078】
図11を参照して、ピアPnはコンテンツDB231に登録されたコンテンツのリストを作成し、メモリ22に記憶する(S401)。作成されたコンテンツリストを図12に示す。コンテンツリストは、コンテンツ番号及びコンテンツIDから構成される。
【0079】
ピアPnはカウンタi=1とし(S402)、コンテンツ番号1のコンテンツID(=C3)を特定する。続いて、ピアPnは特定されたコンテンツC3のコンテンツ情報CI3内の公開期間情報を参照し、現在時刻(つまり、コンテンツ削除処理の実行時)が公開期間を渡過しているか否かを判断する(S403)。なお、公開期間情報は図9中のS211でHDD23に保存されている。渡過している場合(S403でYES)、該当するコンテンツのファイル(全体ファイル又は先頭部分ファイル)を削除する(S404)。ステップS403でNOのとき、及びステップS404の後、カウンタiをインクリメントしてi=2とし(S405)、ステップS403に進んでコンテンツ番号2のコンテンツに対して同様の処理を実行する。要するに、コンテンツリスト内の全てのコンテンツについてステップS403以降の動作を実行する。全てのコンテンツについて実行した後(S406でYES)、登録済みのコンテンツに関する情報が更新されたピア情報PInをセンタサーバ10に送信する(S407)。
【0080】
以上、本発明の実施の形態を説明したが、上述した実施の形態は本発明を実施するための例示に過ぎない。よって、本発明は上述した実施の形態に限定されることなく、その趣旨を逸脱しない範囲内で上述した実施の形態を適宜変形して実施することが可能である。
【図面の簡単な説明】
【0081】
【図1】本発明の実施の形態によるコンテンツ配信システムの全体構成を示す機能ブロック図である。
【図2】図1に示したコンテンツ配信システムの動作概要を示す概略図である。
【図3】図1に示したセンタサーバが蓄積するコンテンツ情報管理データベースのデータ構造を示す図である。
【図4】図1に示したセンタサーバが蓄積するピア情報管理データベースのデータ構造を示す図である。
【図5】図1に示したセンタサーバが蓄積する先頭部分ファイル情報データベースのデータ構造を示す図である。
【図6】図1に示したセンタサーバが蓄積する優先順位リストを示す図である。
【図7】図1に示したセンタサーバによる優先順位リスト作成処理の詳細を示すフロー図である。
【図8】図7中のステップS102の動作の詳細を示すフロー図である。
【図9】図1に示したピアによる先頭部分ファイル取得処理の詳細を示すフロー図である。
【図10】図1に示したピアによる再生処理の詳細を示すフロー図である。
【図11】図1に示したピアによるコンテンツ削除処理の詳細を示すフロー図である。
【図12】図11中のステップS401で作成されるコンテンツリストを示す図である。
【符号の説明】
【0082】
1 コンテンツ配信システム
10 センタサーバ
131 コンテンツ情報管理データベース
132 ピア情報管理データベース
133 先頭部分ファイル情報データベース
231 コンテンツデータベース
Pn ピア


【特許請求の範囲】
【請求項1】
互いに接続された複数のピアと、前記複数のピアと接続されたセンタサーバとを備えたピアツーピア型のコンテンツ配信システムであって、
前記ピアは、
各々がコンテンツの先頭から末尾までの全てのデータで構成される複数の全体ファイルと、各々が当該他のピアに蓄積された全体ファイルの一部に相当し、コンテンツの先頭から所定範囲までのデータである複数の先頭部分ファイルとを蓄積するピア蓄積手段を備え、
前記センタサーバは、
前記複数の全体ファイルの所在を含むコンテンツ情報を蓄積するサーバ蓄積手段を備え、
前記ピアはさらに、
前記コンテンツ情報に基づいて、自身が蓄積していないコンテンツであって当該他のピアに蓄積されたコンテンツの全体ファイルから先頭部分ファイルを取得して前記ピア蓄積手段に蓄積する先頭部分取得手段と、
前記ピア蓄積手段に蓄積された複数のコンテンツの中から選択されたコンテンツの再生を開始する再生手段と、
前記選択されたコンテンツの全体ファイルが蓄積されておらず先頭部分ファイルが蓄積されているとき、前記コンテンツの再生中に、選択されたコンテンツの全体ファイルのうち前記先頭部分ファイルを除くデータである残部ファイルを、前記選択されたコンテンツの全体ファイルを蓄積する当該他のピアから取得する残部取得手段とを備えることを特徴とするコンテンツ配信システム。
【請求項2】
請求項1に記載のコンテンツ配信システムであって、
前記コンテンツ情報はさらに、前記コンテンツの再生時間と、前記コンテンツの全体ファイルのデータサイズとを含み、
前記サーバ蓄積手段はさらに、
前記各ピア間の転送レートに関する転送レート情報を蓄積し、
前記センタサーバはさらに、
前記コンテンツ情報内の全体ファイルの所在に基づいて、所定のコンテンツの全体ファイルを蓄積するピアを転送元ピアとして特定する特定手段と、
前記コンテンツ情報及び転送レート情報に基づいて、転送先となる前記ピアが前記転送元ピアから前記所定のコンテンツの残部ファイルを取得する時間が前記所定のコンテンツの再生時間よりも短くなるように、前記所定のコンテンツの先頭部分ファイルのデータサイズを決定する先頭部分サイズ決定手段と、
前記決定された先頭部分ファイルのデータサイズと前記転送元ピアと前記転送先となるピアとを対応づけた先頭部分ファイル情報を前記サーバ蓄積手段に登録する登録手段とを備え、
前記先頭部分取得手段は、前記先頭部分ファイル情報に基づいて、前記転送元ピアから前記先頭部分ファイルを取得し、
前記残部取得手段は、前記転送元ピアから前記残部ファイルを取得することを特徴とするコンテンツ配信システム。
【請求項3】
請求項1又は請求項2に記載のコンテンツ配信システムであって、
前記コンテンツ情報はさらに、コンテンツのメタ情報を含み、
前記サーバ蓄積手段はさらに、
各ピアが取得するコンテンツの選択条件に関する選択条件情報を蓄積し、
前記センタサーバはさらに、
前記コンテンツ情報と前記選択条件情報とに基づいて、前記各ピアが先頭部分ファイルを取得すべきコンテンツの優先順位を列挙した優先順位リストを作成して前記サーバ蓄積手段に登録する優先順位リスト作成手段を備え、
前記ピアはさらに、
前記ピア記憶手段の空き容量を求める空き容量決定手段を備え、
前記先頭部分取得手段は、前記優先順位リスト及び前記空き容量に基づいて、ファイル先頭部分を優先順に取得することを特徴とするコンテンツ配信システム。
【請求項4】
請求項1〜請求項3のいずれか1項に記載のコンテンツ配信システムであって、
前記コンテンツ情報はさらに、コンテンツの公開期間情報を含み、
前記ピアはさらに、
前記ピア蓄積手段に蓄積されたコンテンツの公開期間情報を前記センタサーバから取得する公開期間取得手段と、
前記公開期間情報に基づいて、公開期間を渡過したコンテンツの全体ファイル及び先頭部分ファイルを削除する削除手段とを備えることを特徴とするコンテンツ配信システム。
【請求項5】
互いに接続された複数のピアと、前記複数のピアと接続されたセンタサーバとを備えたピアツーピア型のコンテンツ配信システムにおける前記ピアであって、
各々がコンテンツの先頭から末尾までの全てのデータで構成される複数の全体ファイルと、各々が当該他のピアに蓄積された全体ファイルの一部に相当し、コンテンツの先頭から所定範囲までのデータである複数の先頭部分ファイルとを蓄積するピア蓄積手段と、
前記複数のコンテンツの全体ファイルの所在に関する情報であって前記センタサーバに蓄積されたコンテンツ情報に基づいて、自身が蓄積していないコンテンツであって当該他のピアに蓄積されたコンテンツの全体ファイルから先頭部分ファイルを取得して前記ピア蓄積手段に蓄積する先頭部分取得手段と、
前記ピア蓄積手段に蓄積された複数のコンテンツの中から選択されたコンテンツの再生を開始する再生手段と、
前記選択されたコンテンツの全体ファイルが蓄積されておらず先頭部分ファイルが蓄積されているとき、前記コンテンツの再生中に、選択されたコンテンツの全体ファイルのうち前記先頭部分ファイルを除くデータである残部ファイルを、前記選択されたコンテンツの全体ファイルを蓄積する当該他のピアから取得する残部取得手段とを備えることを特徴とするピア。
【請求項6】
請求項5に記載のピアであって、
前記コンテンツ情報はさらに、コンテンツのメタ情報を含み、
前記ピアはさらに、
前記ピア記憶手段の空き容量を求める空き容量決定手段を備え、
前記先頭部分取得手段は、前記センタサーバが蓄積する前記コンテンツ情報と前記各ピアが取得するコンテンツの選択条件に関する選択条件情報とに基づいて前記センタサーバにより作成され、前記各ピアが先頭部分ファイルを取得すべきコンテンツの優先順位を列挙した優先順位リストに基づいて、ファイル先頭部分を優先順に取得することを特徴とするピア。
【請求項7】
請求項5又は請求項6に記載のピアであって、
前記コンテンツ情報はさらに、コンテンツの公開期間情報を含み、
前記ピアはさらに、
前記ピア蓄積手段に蓄積されたコンテンツの公開期間情報を前記センタサーバから取得する公開期間取得手段と、
前記公開期間情報に基づいて、公開期間を渡過したコンテンツの全体ファイル及び先頭部分ファイルを削除する削除手段とを備えることを特徴とするピア。
【請求項8】
各々がコンテンツの先頭から末尾までの全てのデータで構成される複数の全体ファイルと、各々が当該他のピアに蓄積された全体ファイルの一部に相当し、コンテンツの先頭から所定範囲までのデータである複数の先頭部分ファイルとを蓄積する複数のピアと、前記複数のピアと接続されたセンタサーバとを備えたピアツーピア型のコンテンツ配信システムにおける前記センタサーバであって、
前記複数の全体ファイルの所在と前記コンテンツの再生時間と前記コンテンツの全体ファイルのデータサイズとを含むコンテンツ情報と、前記各ピア間の転送レートに関する転送レート情報とを蓄積するサーバ蓄積手段と、
前記コンテンツ情報内の全体ファイルの所在に基づいて、所定のコンテンツの全体ファイルを蓄積する転送元ピアを特定する特定手段と、
前記コンテンツ情報及び転送レート情報に基づいて、転送先となる前記ピアが前記所定のコンテンツの全体ファイルから前記先頭部分ファイルを除いた残部ファイルを前記転送元ピアから取得する時間が、前記所定のコンテンツの再生時間よりも短くなるように、前記所定のコンテンツの先頭部分ファイルのデータサイズを決定する先頭部分サイズ決定手段と、
前記ピアが前記先頭部分ファイルを取得するための情報であって、前記決定された先頭部分ファイルのデータサイズと前記転送元ピアと前記転送先となるピアとを対応づけた先頭部分ファイル情報を前記サーバ蓄積手段に登録する登録手段とを備えることを特徴とするセンタサーバ。
【請求項9】
請求項8に記載のセンタサーバであって、
前記コンテンツ情報はさらに、コンテンツのメタ情報を含み、
前記サーバ蓄積手段はさらに、
各ピアが取得するコンテンツの選択条件に関する選択条件情報を蓄積し、
前記センタサーバはさらに、
前記コンテンツ情報と前記選択条件情報とに基づいて、前記各ピアが先頭部分ファイルを取得すべきコンテンツの優先順位を列挙した優先順位リストを作成して前記サーバ蓄積手段に登録する優先順位リスト作成手段を備えることを特徴とするセンタサーバ。


【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate


【公開番号】特開2008−109188(P2008−109188A)
【公開日】平成20年5月8日(2008.5.8)
【国際特許分類】
【出願番号】特願2006−287442(P2006−287442)
【出願日】平成18年10月23日(2006.10.23)
【出願人】(000000273)オンキヨー株式会社 (502)
【Fターム(参考)】