説明

コンテンツ分散保存システム、フレーム画像取得方法、及びノード装置等

【課題】特殊再生をスムーズに実行するコンテンツ分散保存システムを提供する。
【解決手段】複数のフレーム画像データを有する一単位のデータを複数に分割した分割データが、複数のノード装置に分散保存された分散保存システムで、分割データには、固有の識別情報が割り当てられ、ノード装置は、識別情報で分割データを取得可能なコンテンツ分散保存システムに含まれるノード装置で、一つの分割データの識別情報と、分割データのフレーム画像データのオフセット位置情報を含むキーフレーム情報と、を有するコンテンツカタログ情報の記憶手段と、ユーザからの再生指示受付手段と、ユーザ指示で再生するフレーム画像データのキーフレーム情報と、フレーム画像データが含まれる分割データの識別情報と、をコンテンツカタログ情報で特定する特定手段と、そのキーフレーム情報及び識別情報に対応するフレーム画像データを取得するフレーム取得手段と、を備える。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ネットワークを介して互いに通信可能な複数のノード装置を備えたピアツーピア(Peer to Peer(P2P))型の通信システムの技術分野に関する。
【背景技術】
【0002】
この種のピアツーピア型の通信システムにおいて、コンテンツデータを複数のノード装置に分散配置(分散保存)させておくコンテンツ分散保存システムが知られており、これにより、対故障性やアクセスの分散性を高められている。このように分散保存されたコンテンツデータの所在は、例えば特許文献1に開示されるような分散ハッシュテーブル(以下、DHT(Distributed Hash Table)という)を利用して効率良く検索可能になっている。当該DHTは、各ノード装置に記憶されており、当該DHTには、各種メッセージの転送先となるべき複数のノード装置を示すノード情報(例えば、IPアドレス及びポート番号を含む)が登録されている。
【0003】
そして、コンテンツ分散保存システムに参加しているノード装置は、所望のコンテンツデータの取得を望む場合、当該コンテンツデータの所在を検索(発見)するためのメッセージ(クエリ)を他のノード装置に送出することにより、当該メッセージは、上記DHTにしたがって、複数の中継のノード装置により当該コンテンツデータの所在の管理元のノード装置に向かって転送され、最終的に当該メッセージが辿り着く上記管理元のノード装置からノード情報を取得することになる。これにより、当該メッセージを送出したノード装置は、上記検索に係るコンテンツデータを保存しているノード装置に対して、当該コンテンツデータを要求し、当該コンテンツデータの提供を受けることができる。
【特許文献1】特開2006−197400号公報
【発明の開示】
【発明が解決しようとする課題】
【0004】
ところで、今後、一単位のコンテンツデータが、複数に分割され、その分割された分割コンテンツデータが複数のノード装置に跨って分散保存される場合が考えられる。しかしながら、分割されたコンテンツデータに対して早送り再生、巻き戻し再生、及びシーク再生等の特殊再生を行う場合、順次再生すべきフレーム画像データが含まれる分割コンテンツデータは複数のノード装置に跨る場合があるので、スムーズな特殊再生を実現することが困難になる可能性がある。
【0005】
本発明は、以上の点等に鑑みてなされたものであり、一単位のコンテンツデータが、複数に分割され、その分割された分割コンテンツデータが複数のノード装置に跨って分散保存される場合であっても、特殊再生をスムーズに実行することが可能なコンテンツ分散保存システム、フレーム画像取得方法、及びノード装置等を提供することを課題とする。
【課題を解決するための手段】
【0006】
上記課題を解決するために、請求項1に記載の発明は、複数のフレーム画像データを有する一単位のコンテンツデータを複数に分割した分割コンテンツデータが、複数のノード装置に分散保存されたコンテンツ分散保存システムであって、各前記分割コンテンツデータには、固有の識別情報が割り当てられており、各前記ノード装置は、前記識別情報に基づいて前記分割コンテンツデータを取得可能としたコンテンツ分散保存システムに含まれる前記ノード装置であって、少なくとも一つの前記分割コンテンツデータの前記識別情報と、各前記分割コンテンツデータ中の前記フレーム画像データのオフセット位置を示す情報を含むキーフレーム情報と、を有するコンテンツカタログ情報を記憶する記憶手段と、ユーザからの前記コンテンツデータの再生に関する指示を受け付ける指示受付手段と、前記指示に応じて再生すべき前記フレーム画像データに対応する前記キーフレーム情報と、当該再生すべき前記フレーム画像データが含まれる分割コンテンツデータの前記識別情報と、を前記コンテンツカタログ情報に基づいて特定する特定手段と、前記特定された前記キーフレーム情報及び前記識別情報に対応する前記フレーム画像データを取得するフレーム取得手段と、を備えることを特徴とする。
【0007】
この発明によれば、上記ノード装置が、ユーザからのコンテンツデータの再生に関する指示に応じて再生すべきフレーム画像データに対応するキーフレーム情報と、当該再生すべきフレーム画像データが含まれる分割コンテンツデータの識別情報と、をコンテンツカタログ情報に基づいて特定し、当該特定されたキーフレーム情報及び識別情報に対応するフレーム画像データを取得するように構成したので、一単位のコンテンツデータが、複数に分割され、その分割された分割コンテンツデータが複数のノード装置に跨って分散保存される場合であっても、例えば早送り再生、巻き戻し再生、及びシーク再生等の特殊再生をスムーズに実行することができる。また、コンテンツカタログ情報は、コンテンツデータの再生以前に予め各ノード装置に配信されるようにしておけば、キーフレーム情報等を直ぐに取り出すことができ、分割されたコンテンツデータに対して、当該特殊再生をより効率良く実行することができる。
【0008】
請求項2に記載の発明は、請求項1に記載のノード装置において、前記再生に関する指示は、早送り再生、巻き戻し再生、及びシーク再生のうちの何れかを含む再生指示であることを特徴とする。
【0009】
請求項3に記載の発明は、請求項1又は2に記載のノード装置において、前記コンテンツカタログ情報は、全ての前記分割コンテンツデータの前記識別情報と、さらに当該全ての分割コンテンツデータのデータサイズを示す情報とを有し、前記キーフレーム情報には、さらに前記フレーム画像データのデータサイズを示す情報が含まれており、前記特定手段は、前記分割コンテンツデータのデータサイズを示す情報と、前記キーフレーム情報とに基づいて、前記再生すべきフレーム画像データが含まれる分割コンテンツデータを判別することを特徴とする。
【0010】
この発明によれば、フレーム画像データのキーフレーム情報と、当該フレーム画像データが含まれる分割コンテンツデータの識別情報と、の対応関係を当該コンテンツカタログ情報中に規定しなくても再生すべきフレーム画像データが含まれる分割コンテンツデータを判別することができる。
【0011】
請求項4に記載の発明は、請求項1又は2に記載のノード装置において、前記コンテンツカタログ情報は、全ての前記分割コンテンツデータの前記識別情報を有し、且つ、当該識別情報と前記キーフレーム情報とは対応付けられていることを特徴とする。
【0012】
この発明によれば、各フレーム画像データがどの分割コンテンツデータに含まれるかを、ノード装置が計算により判別する必要が無く、より迅速に特定することができる。
【0013】
請求項5に記載の発明は、請求項1又は2に記載のノード装置において、前記識別情報は、所定の規則に従って前記分割コンテンツデータに割り当てられ、前記コンテンツカタログ情報は、先頭の前記分割コンテンツデータの前記識別情報のみを有しており、前記特定手段は、前記先頭の分割コンテンツデータ以外の分割コンテンツデータの前記識別情報を、前記所定の規則にしたがって前記先頭の分割コンテンツデータの前記識別情報から算出することを特徴とする。
【0014】
この発明によれば、全ての分割コンテンツデータの識別情報がコンテンツカタログ情報中に含まれなくとも良いので、コンテンツカタログ情報のデータ量を削減することができる。
【0015】
請求項6に記載のノード処理プログラムは、コンピュータを、請求項1乃至5の何れか一項に記載のノード装置として機能させることを特徴とする。
【0016】
請求項7に記載の発明は、複数のフレーム画像データを有する一単位のコンテンツデータを複数に分割した分割コンテンツデータが、複数のノード装置に分散保存されたコンテンツ分散保存システムであって、各前記分割コンテンツデータには、固有の識別情報が割り当てられており、各前記ノード装置は、前記識別情報に基づいて前記分割コンテンツデータを取得可能としたコンテンツ分散保存システムにおけるフレーム画像取得方法であって、前記ノード装置は、少なくとも一つの前記分割コンテンツデータの前記識別情報と、各前記分割コンテンツデータ中の前記フレーム画像データのオフセット位置を示す情報を含むキーフレーム情報と、を有するコンテンツカタログ情報を記憶する工程と、ユーザからの前記コンテンツデータの再生に関する指示を受け付ける工程と、前記指示に応じて再生すべき前記フレーム画像データに対応する前記キーフレーム情報と、当該再生すべき前記フレーム画像データが含まれる分割コンテンツデータの前記識別情報と、を前記コンテンツカタログ情報に基づいて特定する工程と、前記特定された前記キーフレーム情報及び前記識別情報に対応する前記フレーム画像データを取得する工程と、を備えることを特徴とする。
【0017】
請求項8に記載の発明は、複数のフレーム画像データを有する一単位のコンテンツデータを複数に分割した分割コンテンツデータが、複数のノード装置に分散保存されたコンテンツ分散保存システムであって、各前記分割コンテンツデータには、固有の識別情報が割り当てられており、各前記ノード装置は、前記識別情報に基づいて前記分割コンテンツデータを取得可能としたコンテンツ分散保存システムであって、前記ノード装置は、少なくとも一つの前記分割コンテンツデータの前記識別情報と、各前記分割コンテンツデータ中の前記フレーム画像データのオフセット位置を示す情報を含むキーフレーム情報と、を有するコンテンツカタログ情報を記憶する記憶手段と、ユーザからの前記コンテンツデータの再生に関する指示を受け付ける指示受付手段と、前記指示に応じて再生すべき前記フレーム画像データに対応する前記キーフレーム情報と、当該再生すべき前記フレーム画像データが含まれる分割コンテンツデータの前記識別情報と、を前記コンテンツカタログ情報に基づいて特定する特定手段と、前記特定された前記キーフレーム情報及び前記識別情報に対応する前記フレーム画像データを取得するフレーム取得手段と、を備えることを特徴とする。
【発明の効果】
【0018】
本発明によれば、一単位のコンテンツデータが、複数に分割され、その分割された分割コンテンツデータが複数のノード装置に跨って分散保存される場合であっても、例えば早送り再生、巻き戻し再生、及びシーク再生等の特殊再生をスムーズに実行することができる。また、コンテンツカタログ情報は、コンテンツデータの再生以前に予め各ノード装置に配信されるようにしておけば、キーフレーム情報等を直ぐに取り出すことができ、分割されたコンテンツデータに対して、当該特殊再生をより効率良く実行することができる。
【発明を実施するための最良の形態】
【0019】
以下、本発明の最良の実施形態を図面に基づいて説明する。
【0020】
1.コンテンツ分散保存システムの構成等
始めに、図1等を参照して、本発明の一実施形態に係るコンテンツ分散保存システム通信システムの概要構成等について説明する。
【0021】
図1は、本実施形態に係るコンテンツ分散保存システムにおける各ノード装置の接続態様の一例を示す図である。
【0022】
図1の下部枠101内に示すように、IX(Internet eXchange)3、ISP(Internet Service Provider)4a,4b、DSL(Digital Subscriber Line)回線事業者(の装置)5a,5b、FTTH(Fiber To The Home)回線事業者(の装置)6、及び通信回線(例えば、電話回線や光ケーブル等)7等によって、インターネット等のネットワーク(現実世界の通信ネットワークであり)8が構築されている。なお、図1の例におけるネットワーク(通信ネットワーク)8には、データ(パケット)を転送するためのルータが、適宜挿入されているが図示を省略している。
【0023】
このようなネットワーク8には、複数のノード装置(以下、「ノード」という)Nn(n=1,2,3・・・)が接続されている。また、各ノードNnには、固有の製造番号およびIP(Internet Protocol)アドレスが割り当てられている。このような製造番号およびIPアドレスは、複数のノード間で重複しないものである。
【0024】
そして、本実施形態に係るコンテンツ分散保存システムSは、これらのノードNnのうち、図1の上部枠100内に示すように、何れか複数のノードNnの参加により形成されるピアツーピア方式のネットワークシステムとなっている。なお、図1の上部枠100内に示すネットワーク9は、既存のネットワーク8を用いて形成された仮想的なリンクを構成するオーバーレイネットワーク9(論理的なネットワーク)である。
【0025】
このようなコンテンツ分散保存システムSは、特定のアルゴリズム、例えば、DHT(Distributed Hash Table)を利用したアルゴリズムにより実現される。そして、コンテンツ分散保存システムSに参加している各ノードNnには、固有のノード識別情報であるノードIDが割り当てられており、当該ノードIDは、例えば、各ノードNnに個別に割り当てられたIPアドレス或いは製造番号を共通のハッシュ関数(例えば、SHA−1等)によりハッシュ化した値(例えば、bit長が160bit)であり、一つのID空間に偏りなく分散して配置されることになる。
【0026】
なお、コンテンツ分散保存システムSへの参加は、参加していないノードNn(例えば、ノードN8)が、参加している任意のノードNn(例えば、当該システムSに常時参加しているコンタクトノード)に対して参加要求を示す参加メッセージを送信することによって行われる。
【0027】
上記のように共通のハッシュ関数により求められた(ハッシュ化された)ノードIDは、当該IPアドレス或いは製造番号が異なれば、同じ値になる確率が極めて低いものである。また、このノードIDは、ノードの最大運用台数を収容できるだけのbit数を持たせる必要がある。例えば、128bitの番号とすれば、2^128=340×10^36台のノードを運用できる。なお、ハッシュ関数については公知であるので詳しい説明を省略する。
【0028】
また、各ノードNnは、夫々、DHTを保持している。このDHTは、コンテンツ分散保存システムS上における各種メッセージの転送先を規定しており、具体的には、ID空間内で適度に離れたノードNnのノードID、IPアドレス及びポート番号を含むノード情報(転送先ノード情報)が複数登録されている。
【0029】
コンテンツ分散保存システムSに参加している1台のノードNnは、該システムSに参加している全てのノードNnのうち、必要最低限のノードNnのノード情報をルーティングテーブルに登録しておき、ノード情報を知らない(記憶していない)ノードNnについては、各ノードNn間で互いに各種メッセージを転送し合って届けてもらうようになっている。
【0030】
1.1 DHTを用いたルーティングテーブル
ここで、図2及び図3を参照して、DHTを用いたルーティングテーブルについて詳しく説明する。
【0031】
図2は、ノードN2が保持するDHTを用いたルーティングテーブルの一例を示す図であり、図3は、DHTのID空間の一例を示す概念図である。
【0032】
なお、図2及び図3の例においては、説明の便宜上、ノードIDのbit長を2bit×3桁=6bitとし、各桁を4進数(0〜3の整数)で表している(実際には、もっと長いbit長を用い、各桁も例えば4bitに区切って0〜fの16進数で表現する)。
【0033】
図2の例において、DHTを用いたルーティングテーブルは、レベル1〜レベル3のテーブルからなり(複数のレベルに区分されており)、各レベルのテーブルエントリーには、エリア毎に、ノード情報として、ノードIDとこれに対応するノードNnのIPアドレス及びポート番号が対応付けられて登録されている。各レベルのテーブルにおける各エリアは、DHTのノードID空間を分割することにより得られるエリアである。例えば、図3に示すように、レベル1では、DHTのID空間全体が4分割され、“000”〜“033”のノードIDが存在するエリアを0XXのエリア、“100”〜“133” のノードIDが存在するエリアを1XXのエリア、“200”〜“233” のノードIDが存在するエリアを2XXのエリア、“300”〜“333” のノードIDが存在するエリアを3XXのエリアとする。また、レベル2では、レベル1のエリア(つまり、0XX〜3XXのエリア)が更に4分割、例えば1XXのエリアが4分割され、“100”〜“103” のノードIDが存在するエリアを10Xのエリア、“110”〜“113” のノードIDが存在するエリアを11Xのエリア、“120”〜“123” のノードIDが存在するエリアを12Xのエリア、“130”〜“133” のノードIDが存在するエリアを13Xのエリアとする。
【0034】
そして、例えば、ノードN2のノードIDが“122”とすると、図2に示すように、かかるノードN2のレベル1における1XXのエリア(自己(つまり、自ノード)が存在するエリア)のテーブルには、自己のノードID及びIPアドレス(IPアドレスは自分のものであるので、当該ルーティングテーブルに登録しなくても良い)等が登録され、自己が存在しないエリア(つまり、0XXのエリア、2XXのエリア、及び3XXのエリア)には、夫々、他の任意のノードNnのノードID及びIPアドレス等が登録されている。
【0035】
また、かかるノードN1のレベル2における12Xのエリア(自己が存在するエリア)のテーブルには、図2に示すように、自己のノードID及びIPアドレス(IPアドレスは自分のものであるので、当該ルーティングテーブルに登録しなくても良い)等が登録され、自己が存在しないエリア(つまり、10Xのエリア、11Xのエリア、及び13Xのエリア)等には、夫々、他の任意のノードNnのノードID及びIPアドレス等が登録されている。
【0036】
更に、かかるノードN2のレベル3には、図2に示すように、ノードIDが“120”〜“122”のノードID及びIPアドレス(IPアドレスは自分のものであるので、当該ルーティングテーブルに登録しなくても良い)等が登録されている。
【0037】
なお、図2及び図3の例では、ノードIDのbit長を3桁×2bitとしたので、レベル1〜3の3レベル分のテーブルで網羅できるが、ノードIDのbit長が増せば、その分のテーブルが必要となる(例えば、ノードIDのbit長を16桁×4bitとした場合、16レベル分のテーブルが必要となる)。
【0038】
このように、本実施形態におけるDHTを用いたルーティングテーブルでは、レベルが上がるほど、エリアが狭まっていくようになっている。
【0039】
また、このようなDHTは、例えば、未参加のノードがコンテンツ分散保存システムSに参加する際に与えられることになる。
【0040】
1.2 コンテンツデータの保存及び発見方法
次に、コンテンツ分散保存システムSにおいて取得可能なコンテンツデータの保存及び発見方法について説明する。
【0041】
コンテンツ分散保存システムSにおいては、様々なコンテンツ(例えば、映画や音楽等)データが複数のノードNnに分散して保存(格納)されている(言い換えれば、コンテンツデータが複製されその複製情報であるレプリカが分散保存されている)。
【0042】
また、本実施形態においては、複数のフレーム画像データ(映像データ)を有する一単位のコンテンツデータ(例えば、映画やテレビ番組等のデータサイズ(データ容量)の大きいコンテンツデータ)は、複数に分割(例えば、数Mbyte)され、その分割された分割コンテンツデータ(同じデータサイズずつ分割されても良いし、異なるデータサイズずつ分割されても良い)が複数のノードNn(以下、「コンテンツ保持ノード」という)に分散して保存(格納)されるようになっている。
【0043】
例えば、タイトルがXXXの映画のコンテンツデータAが、分割コンテンツデータA1〜A4の4つに分割されたとすると、分割コンテンツデータA1はノードN1及びN5に保存され、分割コンテンツデータA2はノードN3に保存され、分割コンテンツデータA3はノードN7に保存され、分割コンテンツデータA4はノードN8及びN10に保存される。なお、タイトルが異なる他の映画のコンテンツデータについても同様に分割され、複数のノードNnに保存されることになる。
【0044】
そして、これらの分割コンテンツデータA1〜A4には、夫々、コンテンツID(CID)(分割コンテンツデータ毎に固有の識別情報)が割り当てられている。このコンテンツIDは、例えば、コンテンツ名(コンテンツデータ毎に互いに異なる)+任意の値(或いは、分割コンテンツデータの先頭数バイトでも良い)が、上記ノードIDを得るときと共通のハッシュ関数によりハッシュ化されて生成される(ノードIDと同一のID空間に配置)。なお、上記任意の値は、分割コンテンツデータA1〜A4の間で互いに異なる値とするが、例えば、A1が“1”、A2が“2”、A3“3”、A4が“4というように規則性を有する値とする。また、システム運営者が、コンテンツ毎に一意のID値(ノードIDと同一ビット長)を付与しても良い。
【0045】
また、このように分散保存されている例えば分割コンテンツデータA1の所在、つまり、分割コンテンツデータA1を保存したノードNnのノード情報(例えば、IPアドレス及びポート番号等を含む)と当該分割コンテンツデータA1に対応するコンテンツID等の組が含まれるインデックス情報が、当該分割コンテンツデータA1の所在の管理元としてのノードNn(以下、「ルートノード」、又は「コンテンツ(コンテンツID)のルートノード」という)等により記憶(インデックスキャッシュに記憶)、管理されるようになっている(分割コンテンツデータA2〜A4についても同様)。
【0046】
例えば、分割コンテンツデータA1のインデックス情報は、そのコンテンツ(コンテンツID)のルートノードであるノードN4により管理され、分割コンテンツデータA2のインデックス情報は、そのコンテンツ(コンテンツID)のルートノードであるノードN6により管理される。
【0047】
つまり、分割コンテンツデータ毎にルートノードが分けられるので負荷分散が図らており、しかも、同一の分割コンテンツデータA1(コンテンツIDが同一)が、夫々、複数のコンテンツ保持ノードに保存されている場合であっても、かかる分割コンテンツデータA1のインデックス情報は、一つのルートノードで管理することができる。また、このようなルートノードは、例えば、コンテンツIDと最も近い(例えば、上位桁がより多く一致する)ノードIDを有するノードNnであるように定められる。
【0048】
そして、あるノードNnのユーザが、所望するコンテンツデータを取得したい場合、当該コンテンツデータの取得を望むノードNn(以下、「ユーザノード」という)は、当該ユーザにより選択(例えば、全てのノードNnに配信されているコンテンツカタログ情報(コンテンツリストともいう)から選択)されたコンテンツデータAを構成する例えば分割コンテンツデータA1のコンテンツID及び自己のノード情報を含むコンテンツ所在問合せ(検索)メッセージ(クエリ)を生成し、これを自己のDHTを用いたルーティングテーブルにしたがって他のノードNnに対して送出する。つまり、ユーザノードは、コンテンツ所在問合せ(検索)メッセージを、ルートノードに向けて送出する。これにより、コンテンツ所在問合せ(検索)メッセージは、コンテンツIDをキーとするDHTルーティングによって最終的にルートノードに到着することになる。
【0049】
なお、上記コンテンツ所在問合せ(検索)メッセージに含まれるコンテンツIDは、ユーザノードによって、コンテンツ名が上記共通のハッシュ関数によりハッシュ化されて生成されるようにしても良い。
【0050】
図4は、ユーザノードから送出されたコンテンツ所在問合せ(検索)メッセージの流れの一例を、DHTのID空間にて示した概念図である。
【0051】
図4の例において、例えば、ユーザノードであるノードN2は、自己のDHTのレベル1のテーブル(図2に示すDHTを用いたルーティングテーブルとは無関係)を参照して、コンテンツ所在問合せ(検索)メッセージに含まれるコンテンツIDと最も近い(例えば、上位桁がより多く一致する)ノードIDを有する例えばノードN3のノード情報に含まれるIPアドレス及びポート番号を取得し、そのIPアドレス及びポート番号宛てに、上記コンテンツ所在問合せ(検索)メッセージを送信する。
【0052】
これに対して、ノードN3は、当該コンテンツ所在問合せ(検索)メッセージを受信し、自己のDHTのレベル2のテーブルを参照して、当該コンテンツ所在問合せ(検索)メッセージに含まれるコンテンツIDと最も近い(例えば、上位桁がより多く一致する)ノードIDを有する例えばノードN4のノード情報に含まれるIPアドレス及びポート番号を取得し、そのIPアドレス及びポート番号宛てに、上記コンテンツ所在問合せ(検索)メッセージを転送する。
【0053】
これに対して、ノードN4は、当該コンテンツ所在問合せ(検索)メッセージを受信し、自己のDHTのレベル3のテーブルを参照して、当該コンテンツ所在問合せ(検索)メッセージに含まれるコンテンツIDと最も近い(例えば、上位桁がより多く一致する)ノードIDが自分である、つまり、自分がそのコンテンツIDのルートノードであることを認識すると、当該コンテンツ所在問合せ(検索)メッセージに含まれるコンテンツIDに対応するインデックス情報をインデックスキャッシュから取得して、当該インデックス情報を、該コンテンツ所在問合せメッセージの送信元であるユーザノードに対して返信する。これにより、ユーザノードは、所望のコンテンツデータAを構成する分割コンテンツデータA1を保存している上記コンテンツ保持ノードである例えばノードN5に対して、コンテンツ送信要求メッセージを送信し、そこから当該分割コンテンツデータA1の提供を受けることとなる(つまり、ユーザノードは、上記コンテンツIDに基づいて、その分割コンテンツデータA1を取得することができる)。例えば、コンテンツ保持ノードはユーザノードからの要求に応じて分割コンテンツデータA1のパケットデータをストリーミング配信し、ユーザノードは配信されてきた分割コンテンツデータA1のパケットデータを受信し再生(通常再生)することになる。
【0054】
或いは、ルートノードであるノードN4は、当該インデックス情報に含まれるノード情報に示されたコンテンツ保持ノードに対してコンテンツ送信要求メッセージ(ユーザノードのノード情報を含み、当該ユーザノードに対して分割コンテンツデータA1の送信要求を示す要求情報)を送信する。これにより、ユーザノードは、上記コンテンツ保持ノードである例えばノードN5から分割コンテンツデータA1の提供を受けることとなる。なお、上記ユーザノードは、コンテンツ所在問合せメッセージがルートノードに辿り着くまでの間に、当該ルートノードと同じインデックス情報をキャッシュしている中継ノード(例えば、ノードN3のキャッシュノード)から当該インデックス情報を取得(受信)することもできる。
【0055】
そして当該分割コンテンツデータA1の配信終了が近くなってきた所定のタイミングで、ユーザノードは、分割コンテンツデータA1に続く分割コンテンツデータA2のコンテンツID及び自己のノード情報を含むコンテンツ所在問合せ(検索)メッセージ(クエリ)を生成し、これを自己のDHTを用いたルーティングテーブルにしたがって他のノードNnに対して送出する。これにより、ユーザノードは、分割コンテンツデータA1と同様、コンテンツ保持ノードから分割コンテンツデータA2の提供を受けることとなる(分割コンテンツデータA3及びA4も同様)。
【0056】
1.3 コンテンツデータの特殊再生(トリックプレイ)方法
次に、コンテンツ分散保存システムSにおいて取得可能なコンテンツデータの特殊再生(トリックプレイ)方法について説明する。
【0057】
本実施形態においては、上述したように複数に分割され異なるノードNnに保存されたコンテンツデータについて、例えば早送り再生、巻戻し再生、又はシーク(ジャンプ)再生等の特殊再生(トリックプレイ)をスムーズに行うため、再生すべきフレーム画像データ(以下、「キーフレーム」という)がどの分割コンテンツデータに含まれるかを、ノードNnが迅速に特定できるように、少なくとも一つの分割コンテンツデータのコンテンツIDと、各分割コンテンツデータ中の各キーフレームのオフセット位置(例えば、先頭からの位置)及びデータサイズを示すキーフレーム情報と、がコンテンツカタログ情報中に記述されるようになっている。
【0058】
ここで、MPEGなどの画像圧縮方式では、例えば1/30秒ごとのフレーム情報を圧縮するようになっているが、1秒おきのフレーム画像は、その1枚のフレーム情報のみを使って圧縮しており、これをキーフレームという(フレーム内で圧縮が完結している)。この他の1/30秒おきのフレームは、キーフレームや前後のフレームとの差分情報のみを圧縮して記録する。特殊再生を行うには、例えば1秒おきのフレームを1/10秒間隔で表示すると、10倍速の早送り再生となるのだが、前記のような圧縮方式の場合には、ここでキーフレームを使わなければいけない。なぜならば、差分情報のフレームをデコーダに渡しても、そのフレームだけでは伸張ができないからである。そこで、早送り再生、巻き戻し再生をするためには、圧縮後のデータ中のキーフレームの位置とサイズを正確に知っておくことが重要になる。シーク再生の場合も、再生開始時から即座にフレームを表示するためには、デコーダにキーフレームからデータを渡し始めるのが良いので、キーフレームの位置を知っておくと良い。
【0059】
なお、コンテンツカタログ情報は、コンテンツカタログ情報を管理するノードNn、或いはサーバにより管理(更新等)されており、当該ノードNn或いはサーバから、コンテンツ分散保存システムSに参加している各ノードNnに配信されるようになっている。
【0060】
図5(A)乃至(C)は、夫々、コンテンツデータが分割され、各分割コンテンツデータ中の各キーフレームのキーフレーム情報等がコンテンツカタログ情報に記述される様子を示す概念図である。
【0061】
図5(A)の例では、各分割コンテンツデータのコンテンツIDと、各分割コンテンツデータ中の各キーフレームに対応するキーフレーム情報(オフセット位置(Offset)及びデータサイズ(Size)を示す)とが、別々にコンテンツカタログ情報に記述されるようになっている。この図5(A)の例の場合のコンテンツカタログ情報(構造例1)におけるデータ構造例を図6に示す。
【0062】
図6に示すコンテンツカタログ情報(構造例1)は、コンテンツ分散保存システムSにおいて各ノードNnが取得可能(利用可能)な各コンテンツデータ(A,B、C・・・)の固有情報を有する。各コンテンツデータ(A,B、C・・・)の固有情報には、コンテンツタイトル(コンテンツ名)、分割コンテンツ情報、及びキーフレーム情報が含まれている。そして、分割コンテンツ情報には、コンテンツデータの分割数、及び分割された1番目(先頭)〜m(mは自然数)番目までの各分割コンテンツデータのコンテンツID及びデータサイズが含まれている。また、キーフレーム情報には、キーフレームの数(当該コンテンツデータにおけるキーフレームの数)、及び1番目(先頭)〜j(jは自然数)番目までの各キーフレーム情報が含まれ、各キーフレーム情報には、当該キーフレームのオフセット位置(コンテンツデータの先頭からのオフセット位置)及び当該キーフレームのデータサイズが含まれている。なお、コンテンツカタログ情報(構造例1)によれば、各キーフレームがどの分割コンテンツデータに含まれるかを、ノードNnが計算により判別することになる。このコンテンツカタログ情報(構造例1)によれば、キーフレームのオフセット位置及びデータサイズと、当該キーフレームが含まれる分割コンテンツデータのコンテンツIDと、の対応関係を当該コンテンツカタログ情報中に規定しなくても、計算によって求めることができる。
【0063】
図5(B)の例では、各分割コンテンツデータのコンテンツIDは、各分割コンテンツデータ中の各キーフレームに対応するキーフレーム情報(オフセット位置(Offset)及びデータサイズ(Size)を示す)中に含まれ、且つ、オフセット位置等に対応付けられてコンテンツカタログ情報に記述されるようになっている。この図5(B)の例の場合のコンテンツカタログ情報(構造例2)におけるデータ構造例を図7に示す。
【0064】
図7に示すコンテンツカタログ情報(構造例2)は、図6に示すコンテンツカタログ情報(構造例1)と基本的な構造は同様であるが、分割コンテンツ情報には、コンテンツデータの分割数、及び分割された1番目(先頭)〜m(mは自然数)番目までの各分割コンテンツデータのコンテンツIDが含まれている(データサイズは含まれていない)。また、各キーフレーム情報には、キーフレームのオフセット位置(各分割コンテンツデータの先頭からのオフセット位置)及びデータサイズに対応付けられて、当該キーフレームが含まれる分割コンテンツデータのコンテンツIDが含まれている。このコンテンツカタログ情報(構造例2)によれば、各キーフレームがどの分割コンテンツデータに含まれるかを、ノードNnが計算により判別する必要が無く、より迅速に特定することができる。
【0065】
図5(C)の例では、1番目(先頭)の分割コンテンツデータのコンテンツIDのみと、各分割コンテンツデータ中の各キーフレームに対応するキーフレーム情報(オフセット位置(Offset)及びデータサイズ(Size)を示す)とが、コンテンツカタログ情報に記述されるようになっている。この図5(C)の例の場合のコンテンツカタログ情報(構造例3)におけるデータ構造例を図8に示す。
【0066】
図8に示すコンテンツカタログ情報(構造例3)は、図6に示すコンテンツカタログ情報(構造例1)と基本的な構造は同様であるが、分割コンテンツ情報には、コンテンツデータの分割数、1番目(先頭)の分割コンテンツデータのコンテンツID、及び分割データサイズが含まれている。つまり、コンテンツカタログ情報(構造例3)では、全ての分割コンテンツデータのコンテンツIDが含まれるのではなく、1番目(先頭)の分割コンテンツデータのコンテンツIDのみが含まれる。1番目(先頭)の分割コンテンツデータ以外のコンテンツIDについては、1番目(先頭)の分割コンテンツデータのコンテンツIDから計算によって求められる。分割データサイズは、コンテンツデータがどのようなデータサイズで分割されたかを示す情報である(各分割コンテンツデータのデータサイズは同一となる)。コンテンツカタログ情報(構造例3)によれば、全ての分割コンテンツデータのコンテンツIDが含まれなくとも良いのでデータ量を削減することができる。
【0067】
ここで、コンテンツカタログ情報を用いて、早送り再生が行われる場合の概要について、図9乃至図11を用いて説明する。
【0068】
図9は、上記図6に示すコンテンツカタログ情報(構造例1)を用いて、早送り再生が行われる場合の様子を示す図であり、図10は、上記図7に示すコンテンツカタログ情報(構造例2)を用いて、早送り再生が行われる場合の様子を示す図であり、図11は、上記図8に示すコンテンツカタログ情報(構造例3)を用いて、早送り再生が行われる場合の様子を示す図である。
【0069】
図9乃至図11の何れの例でも、ユーザノードは、ユーザからのコンテンツデータの早送り再生指示(再生に関する指示の一例)に応じて再生すべきキーフレームに対応するキーフレーム情報と、当該再生すべきキーフレームが含まれる分割コンテンツデータのコンテンツIDと、をコンテンツカタログ情報に基づいて特定し、当該特定したキーフレーム情報及びコンテンツIDに対応するキーフレームを、コンテンツ保持ノード(当該コンテンツ保持ノードは、当該ユーザノードが上記特定したコンテンツIDに対応する分割コンテンツデータを保存しており、当該コンテンツIDをキーとするDHTルーティングによってルートノードに問い合わされて特定される)から取得して再生(早送り再生)するようになっている。
【0070】
ここで、図9に示すように、コンテンツカタログ情報(構造例1)を用いる場合、再生すべきキーフレームが含まれる分割コンテンツデータ(コンテンツID)は、当該分割コンテンツデータのデータサイズと、再生すべきキーフレームのキーフレーム情報(オフセット位置及びデータサイズを示す)とに基づいて計算により判別される。一方、図10に示すように、コンテンツカタログ情報(構造例2)を用いる場合、再生すべきキーフレームが含まれる分割コンテンツデータ(コンテンツID)は、キーフレーム情報から特定される。また、図11に示すように、コンテンツカタログ情報(構造例3)を用いる場合、1番目(先頭)の分割コンテンツデータ以外のコンテンツIDは、1番目(先頭)の分割コンテンツデータのコンテンツIDから計算によって求められる。
【0071】
2.ノードNnの構成及び機能等
次に、図12を参照して、ノードNnの構成及び機能について説明する。
【0072】
図12は、ノードNnの概要構成例を示す図である。
【0073】
各ノードNnは、図12に示すように、演算機能を有するCPU,作業用RAM,各種データおよびプログラムを記憶するROM等から構成されたコンピュータとしての制御部11と、各種データ(例えば、分割コンテンツデータ、インデックス情報、DHT等)及び各種プログラム等を記憶保存(格納)するためのHD等から構成された記憶手段としての記憶部12と、受信された分割コンテンツデータ等を一時蓄積するバッファメモリ13と、分割コンテンツデータに含まれるエンコードされたビデオデータ(映像情報)およびオーディオデータ(音声情報)等をデコード(データ伸張や復号化等)するデコーダ部14と、当該デコードされたビデオデータ等に対して所定の描画処理を施しビデオ信号として出力する映像処理部15と、当該映像処理部15から出力されたビデオ信号に基づき映像表示するCRT,液晶ディスプレイ等の表示部16と、上記デコードされたオーディオデータをアナログオーディオ信号にD (Digital)/A(Analog)変換した後これをアンプにより増幅して出力する音声処理部17と、当該音声処理部17から出力されたオーディオ信号を音波として出力するスピーカ18と、ネットワーク8を通じて他のノードNn等との間の情報の通信制御を行うための通信部20と、ユーザからの指示を受け付け当該指示に応じた指示信号を制御部11に対して与える入力部(例えば、キーボード、マウス、或いは、操作パネル等)21と、を備えて構成され、制御部11、記憶部12、バッファメモリ13、デコーダ部14および通信部20はバス22を介して相互に接続されている。なお、ノードNnとしては、パーソナルコンピュータ、STB(Set Top Box)、或いは、TV受信機等を適用可能である。
【0074】
このような構成において、制御部11は、CPUが記憶部12等に記憶されたプログラムを読み出して実行することにより、全体を統括制御すると共に、コンテンツ分散保存システムSへの参加により上述したユーザノード、中継ノード、ルートノード、キャッシュノード、及びコンテンツ保持ノードの少なくとも何れか一つのノードとしての処理を行うようになっている。
【0075】
そして更に、コンテンツ分散保存システムSに参加しているノードNnにおける制御部11は、CPUが記憶部12等に記憶されたプログラム(本発明のノード処理プログラムを含む)を読み出して実行することにより、本発明の指示受付手段、特定手段、及びフレーム取得手段等として機能し、後述する処理を行うようになっている。なお、上記ノード処理プログラムは、例えば、ネットワーク8上の所定のサーバからダウンロードされるようにしてもよいし、例えば、CD−ROM等の記録媒体に記録されて当該記録媒体のドライブを介して読み込まれるようにしてもよい。
【0076】
3.ノードNnにおける特殊再生時の処理
次に、図13乃至図17等を参照して、ノードNnにおける特殊再生処理について説明する。
【0077】
図13は、ノードNnの制御部11における早送り再生又は巻戻し再生処理を示すフローチャートである。図14は、ノードNnの制御部11におけるシーク(ジャンプ)再生処理を示すフローチャートである。また、図15は、上記図6に示すコンテンツカタログ情報(構造例1)を用いた場合における、キーフレーム情報及びコンテンツID特定処理を示すフローチャートであり、図16は、上記図7に示すコンテンツカタログ情報(構造例2)を用いた場合における、キーフレーム情報及びコンテンツID特定処理を示すフローチャートであり、図17は、上記図8に示すコンテンツカタログ情報(構造例3)を用いた場合における、キーフレーム情報及びコンテンツID特定処理を示すフローチャートである。
【0078】
先ず、コンテンツ分散保存システムSに参加しているノードNn(ユーザノード)において、制御部11は、ユーザからの入力部21を介したコンテンツリスト表示指示を受け付けた場合、上述したコンテンツカタログ情報を記憶部12からRAMに読み込み、当該コンテンツカタログ情報に含まれる複数のコンテンツ名(コンテンツタイトル)が記述されたコンテンツリストを表示部16に表示させる。そして、当該表示されたコンテンツリストにおけるコンテンツ名のうちから、ユーザにより入力部21を介して一つのコンテンツ名が選択された場合、制御部11は、当該コンテンツ名に対応するコンテンツデータAを構成する分割コンテンツデータA1のコンテンツID及び自己のノード情報を含むコンテンツ所在問合せ(検索)メッセージ(クエリ)を生成し、これを自己のDHTを用いたルーティングテーブルにしたがって他のノードNnに対して送出する。これにより、コンテンツ所在問合せ(検索)メッセージは、コンテンツIDをキーとするDHTルーティングによって最終的にルートノードに到着し、当該ユーザノードは、当該ルートノードからコンテンツ保持ノードのノード情報を取得する。そして、ユーザノードの制御部11は、取得したノード情報にしたがって分割コンテンツデータA1を保存しているコンテンツ保持ノードに対して、コンテンツ送信要求をし、例えばストリーミング配信された分割コンテンツデータA1のパケットデータを受信し、デコーダ部14、映像処理部15、及び音声処理部17等を通じて再生(通常再生)する。こうして、上述したように、分割コンテンツデータA1→分割コンテンツデータA2→分割コンテンツデータA3・・・の順にストリーミング配信される対象が切り替わっていくことになる。
【0079】
また、図8に示すコンテンツカタログ情報(構造例3)を用いる場合、先頭の分割コンテンツデータのコンテンツIDしか含まれていないので、他の分割コンテンツデータのコンテンツIDは、例えば、その分割コンテンツデータの先頭からの順番と、先頭の分割コンテンツデータのコンテンツIDと、を所定の関数に代入することによって算出することになる。
【0080】
(早送り再生又は巻戻し再生)
このような通常再生中に、制御部11は、ユーザからの入力部21を介した早送り再生又は巻戻し再生(コンテンツデータの再生に関する指示の一例)開始指示を受け付けた場合、図13に示す処理を開始し、先ず、現在の分割コンテンツデータの再生位置に対応するキーフレームの番号(先頭からの順番)を取得し、これを“J”とする(ステップS1)。
【0081】
次いで、制御部11は、早送り再生の場合Jを1増加させ、一方、巻戻し再生の場合Jを1減少させる(ステップS2)。
【0082】
次いで、制御部11は、Jが所定値になったか否かを判別する(ステップS3)。具体的には、早送り再生の場合、制御部11は、コンテンツカタログ情報を参照して、Jがキーフレームの数になったか否かを判別し、キーフレームの数になった(J=キーフレームの数)場合には(ステップS3:Y)、当該再生位置に対応するキーフレームは最後のキーフレームであるので、当該処理を終了し、一方、キーフレームの数になっていない(J<キーフレームの数)場合には(ステップS3:N)には、ステップS4に移行する。
【0083】
一方、巻戻し再生の場合、制御部11は、コンテンツカタログ情報を参照して、Jが“1”になったか否かを判別し、“1”になった(J=1)場合には(ステップS3:Y)、当該再生位置に対応するキーフレームは最初のキーフレームであるので、当該処理を終了し、一方、“1”になっていない(J>1)場合には(ステップS3:N)には、ステップS4に移行する。
【0084】
ステップS4では、制御部11は、J番目のキーフレームに対応するキーフレーム情報と、当該J番目のキーフレームに対応する分割コンテンツデータ(つまり、当該キーフレームが含まれる分割コンテンツデータ)のコンテンツIDと、を特定する。なお、当該コンテンツID及びキーフレーム情報の特定処理は、コンテンツカタログ情報の構造例1〜3に応じて異なり、詳細については後述する。
【0085】
次いで、制御部11は、当該特定したコンテンツIDに対応する分割コンテンツデータに含まれるJ番目のキーフレームを取得する(ステップS5)。より具体的には、制御部11は、上記特定したコンテンツIDに対応する分割コンテンツデータを記憶しているか否かを判別し、記憶している場合には当該分割コンテンツデータから上記特定したキーフレーム情報に対応するキーフレームを取得する。一方、上記特定したコンテンツIDに対応する分割コンテンツデータを記憶していない場合には、制御部11は、当該コンテンツID及び自己のノード情報を含むキーフレーム所在問合せ(検索)メッセージ(クエリ)を生成し、これを自己のDHTを用いたルーティングテーブルにしたがって他のノードNnに対して送出する。これにより、キーフレーム所在問合せ(検索)メッセージは、コンテンツIDをキーとするDHTルーティングによって最終的にルートノードに到着し、当該ユーザノードの制御部11は、当該ルートノードからコンテンツ保持ノードのノード情報を取得する。そして、当該制御部11は、取得したノード情報にしたがって当該分割コンテンツデータを保存しているコンテンツ保持ノードに対して、上記特定したキーフレーム情報を指定してキーフレーム送信要求をし、これに応じて送信されたキーフレームを取得する。
【0086】
次いで、制御部11は、当該取得したキーフレームをデコーダ部14及び映像処理部15を通じて再生する(ステップS6)。
【0087】
次いで、制御部11は、ユーザからの入力部21を介した早送り再生又は巻戻し再生終了指示を受け付けたか否かを判別し(ステップS7)、受け付けた場合には(ステップS7:Y)、当該処理を終了し、受け付けていない場合には(ステップS7:N)、ステップS2に戻り、上記と同様の処理を行う。こうして、Jが所定値になるか、或いは、早送り再生又は巻戻し再生終了指示が受け付けられるまで、早送り再生又は巻戻し再生が行われることになる。
【0088】
(シーク(ジャンプ)再生)
一方、通常再生中に、制御部11は、ユーザからの入力部21を介したシーク(ジャンプ)再生(コンテンツデータの再生に関する指示の一例)開始指示を受け付けた場合、図14に示す処理を開始し、先ず、シーク(ジャンプ)しようとする分割コンテンツデータの再生位置に対応するキーフレームの番号(先頭からの順番)を取得し、これを“J”とする(ステップS11)。
【0089】
次いで、制御部11は、J番目のキーフレームに対応するキーフレーム情報と、当該J番目のキーフレームに対応する分割コンテンツデータのコンテンツIDと、を特定する(ステップS12)。なお、当該コンテンツID及びキーフレーム情報の特定処理は、早送り再生又は巻戻し再生処理におけるステップS4と同様であり、詳細については後述する。
【0090】
次いで、制御部11は、当該特定したコンテンツIDに対応する分割コンテンツデータに含まれるJ番目のキーフレームを取得し(ステップS13)、当該キーフレームから再生(ジャンプ再生)を開始し(ステップ14)、当該処理を終了する(これ以降は通常再生に戻る)。
【0091】
より具体的には、制御部11は、上記特定したコンテンツIDに対応する分割コンテンツデータを記憶しているか否かを判別し、記憶している場合には当該分割コンテンツデータから上記特定したキーフレーム情報に対応するキーフレームを取得し、当該キーフレームから再生を開始する。一方、上記特定したコンテンツIDに対応する分割コンテンツデータを記憶していない場合には、制御部11は、当該コンテンツID及び自己のノード情報を含むキーフレーム所在問合せ(検索)メッセージ(クエリ)を生成し、これを自己のDHTを用いたルーティングテーブルにしたがって他のノードNnに対して送出する。これにより、キーフレーム所在問合せ(検索)メッセージは、コンテンツIDをキーとするDHTルーティングによって最終的にルートノードに到着し、当該ユーザノードの制御部11は、当該ルートノードからコンテンツ保持ノードのノード情報を取得する。そして、当該制御部11は、取得したノード情報にしたがって当該分割コンテンツデータを保存しているコンテンツ保持ノードに対して、上記特定したキーフレーム情報を指定してキーフレームからの送信要求をし、これに応じて送信されたキーフレームを取得し、当該キーフレームから再生を開始し、以降は、キーフレームに続くデータのストリーミング配信を受け通常再生が行われる。
【0092】
次に、上記構造例1〜3の夫々のコンテンツカタログ情報を用いた場合の、上記ステップS4及びステップS12における当該コンテンツID及びキーフレーム情報の特定処理の詳細を説明する。
【0093】
(構造例1のコンテンツカタログ情報を用いた場合)
この場合、図15に示すように、先ず、制御部11は、図6に示すコンテンツカタログ情報を参照して、J番目のキーフレーム情報から、J番目のキーフレームのオフセット位置F0_OFFSET(コンテンツデータの先頭からのオフセット位置)及び当該キーフレームのデータサイズF_SIZEを取得する(ステップS51)。
【0094】
次いで、制御部11は、変数“M”を“1”とし(ステップS52)、図6に示すコンテンツカタログ情報を参照して、分割コンテンツ情報から、M番目(M=1の場合、先頭)の分割コンテンツデータのデータサイズC_SIZE及びコンテンツIDを取得し、当該M番目の分割コンテンツデータのオフセット位置C_OFFSET(M=1の場合、“0”)を算出する(ステップS53)。
【0095】
次いで、制御部11は、上記J番目のキーフレームが、M番目の分割コンテンツデータに含まれるか否かを判別する(ステップS54)。具体的には、F0_OFFSET<C_OFFSET+C_SIZEを満たすか(つまり、上記C_OFFSET+C_SIZEで示される位置(M番目の分割コンテンツデータの終了位置)が、J番目のキーフレームのオフセット位置F0_OFFSETより大きいか(後にあるか))否かが判別される。
【0096】
上記J番目のキーフレームが、M番目の分割コンテンツデータに含まれない場合(つまり、F0_OFFSET<C_OFFSET+C_SIZEを満たさない場合)には(ステップS54:N)、制御部11は、“M”に“1”を加算し(ステップS55)、ステップS53に戻り、当該M番目の分割コンテンツデータのオフセット位置C_OFFSETを算出、M番目の分割コンテンツデータのデータサイズC_SIZE及びコンテンツIDを取得し、上記と同様の処理を行う。このように、分割コンテンツデータのデータサイズC_SIZE、J番目のキーフレームのオフセット位置F0_OFFSET等に基づいて、J番目のキーフレームが含まれる分割コンテンツデータが判別されることになる。
【0097】
そして、上記J番目のキーフレームが、M番目の分割コンテンツデータに含まれる場合(つまり、F0_OFFSET<C_OFFSET+C_SIZEを満たす場合)には(ステップS54:Y)、制御部11は、M番目の分割コンテンツデータのコンテンツID(最後に取得したコンテンツID)を、上記J番目のキーフレームに対応する分割コンテンツデータのコンテンツIDとして特定する(ステップS56)。
【0098】
次いで、制御部11は、上記J番目のキーフレームのオフセット位置F_OFFSET(当該M番目の分割コンテンツデータの先頭からのオフセット位置)を算出(つまり、F_OFFSET=F0_OFFSET−C_OFFSETとなる)し(ステップS57)、当該算出したオフセット位置F_OFFSETと、上記ステップS51で取得したJ番目のキーフレームのデータサイズF_SIZEと、を当該J番目のキーフレームに対応するキーフレーム情報として特定する(ステップS58)。
【0099】
(構造例2のコンテンツカタログ情報を用いた場合)
この場合、図16に示すように、先ず、制御部11は、図7に示すコンテンツカタログ情報を参照して、J番目のキーフレーム情報から、分割コンテンツデータのコンテンツID、J番目のキーフレームのオフセット位置F_OFFSET(分割コンテンツデータの先頭からのオフセット位置)及びデータサイズF_SIZEを取得し(ステップS61)、当該取得したコンテンツIDをJ番目のキーフレームに対応する分割コンテンツデータのコンテンツIDとして特定し、当該取得したJ番目のキーフレームのオフセット位置F_OFFSET及びデータサイズF_SIZEをJ番目のキーフレームに対応するキーフレーム情報として特定する(ステップS62)。
【0100】
(構造例3のコンテンツカタログ情報を用いた場合)
この場合、図17に示すように、先ず、制御部11は、図8に示すコンテンツカタログ情報を参照して、J番目のキーフレーム情報から、J番目のキーフレームのオフセット位置F0_OFFSET(コンテンツデータの先頭からのオフセット位置)及び当該キーフレームのデータサイズF_SIZEを取得する(ステップS71)。
【0101】
次いで、制御部11は、変数“M”を“1”とした後、図8に示すコンテンツカタログ情報を参照して、分割コンテンツ情報から、分割データサイズC_SIZE及び先頭の分割コンテンツデータのコンテンツIDを取得する(ステップS72)。
【0102】
次いで、制御部11は、M番目(M=1の場合、先頭)の分割コンテンツデータのオフセット位置C_OFFSET(M=1の場合、“0”)を算出する(ステップS73)。
【0103】
次いで、制御部11は、上記J番目のキーフレームが、M番目の分割コンテンツデータに含まれるか否かを判別する(ステップS74)。上記ステップS54と同様、具体的には、F0_OFFSET<C_OFFSET+C_SIZEを満たすか否かが判別される。
【0104】
上記J番目のキーフレームが、M番目の分割コンテンツデータに含まれない場合(つまり、F0_OFFSET<C_OFFSET+C_SIZEを満たさない場合)には(ステップS74:N)、制御部11は、“M”に“1”を加算した後、M番目の分割コンテンツデータのコンテンツIDを、所定の規則にしたがって先頭の分割コンテンツデータのコンテンツIDから算出し、(ステップS75)、ステップS73に戻る。
【0105】
ここで、一単位のコンテンツデータを構成する複数の分割コンテンツデータのコンテンツIDを互いに規則性を持つように定めておけば、先頭の分割コンテンツデータ以外のコンテンツIDは、その分割コンテンツデータの先頭からの順番Mと、先頭の分割コンテンツデータのコンテンツIDと、を所定の関数に代入することによって算出することができる(簡単な例で言えば、先頭(M=1)のコンテンツIDに、M×A(Aは任意の値)を加算した値が、M番目(M≧2)の分割コンテンツデータのコンテンツIDとなる)。
【0106】
そして、上記J番目のキーフレームが、M番目の分割コンテンツデータに含まれる場合(つまり、F0_OFFSET<C_OFFSET+C_SIZEを満たす場合)には(ステップS74:Y)、制御部11は、M番目の分割コンテンツデータのコンテンツID(最後に取得又は算出したコンテンツID)を、上記J番目のキーフレームに対応する分割コンテンツデータのコンテンツIDとして特定する(ステップS76)。
【0107】
次いで、制御部11は、上記J番目のキーフレームのオフセット位置F_OFFSET(当該M番目の分割コンテンツデータの先頭からのオフセット位置)を算出(つまり、F_OFFSET=F0_OFFSET−C_OFFSETとなる)し(ステップS77)、当該算出したオフセット位置F_OFFSETと、上記ステップS71で取得したJ番目のキーフレームのデータサイズF_SIZEと、を当該J番目のキーフレームに対応するキーフレーム情報として特定する(ステップS78)。
【0108】
以上説明したように、上記実施形態によれば、ユーザノードがユーザからのコンテンツデータの特殊再生指示に応じて、再生すべきキーフレームに対応するキーフレーム情報と、当該キーフレームが含まれる分割コンテンツデータのコンテンツIDと、をコンテンツカタログ情報に基づいて特定し、当該特定したキーフレーム情報及びコンテンツIDに基づいて当該キーフレームを、これを保存しているコンテンツ保持ノードから取得し、再生するようにしたので、一単位のコンテンツデータが、複数に分割され、その分割された分割コンテンツデータが複数のノードNnに跨って分散保存される場合であっても、特殊再生をスムーズに実行することができる。
【0109】
また、コンテンツカタログ情報は、コンテンツデータの再生以前に予め各ノードNnに配信されるので、キーフレーム情報等を直ぐに取り出すことができ、分割されたコンテンツデータに対して、特殊再生をより効率良く実行することができる。
【0110】
なお、上記実施形態におけるコンテンツ分散保存システムSは、DHTを利用したアルゴリズムによって形成されることを前提として説明したが、本発明はこれに限定されるものではない。例えば、各ノードNnは特殊再生する際に、全ての分割コンテンツデータのコンテンツID(上述したようにハッシュ関数により求めるかどうかは問わない)及び当該コンテンツIDに対応するノード情報(つまり、当該コンテンツIDに対応するコンテンツデータを保存するコンテンツ保持ノードのIPアドレス及びポート番号)を管理する管理サーバに対して、コンテンツカタログ情報から特定したコンテンツIDを送信し、これに応じて当該管理サーバから当該コンテンツIDに対応するノード情報を取得し、そのコンテンツ保持ノードに対してキーフレームを要求するように構成しても良い。
【図面の簡単な説明】
【0111】
【図1】本実施形態に係るコンテンツ分散保存システムにおける各ノード装置の接続態様の一例を示す図である。
【図2】ノードN2が保持するDHTを用いたルーティングテーブルの一例を示す図である。
【図3】DHTのID空間の一例を示す概念図である。
【図4】ユーザノードから送出されたコンテンツ所在問合せ(検索)メッセージの流れの一例を、DHTのID空間にて示した概念図である。
【図5】コンテンツデータが分割され、各分割コンテンツデータ中の各キーフレームのキーフレーム情報等がコンテンツカタログ情報に記述される様子を示す概念図である。
【図6】図5(A)の例の場合のコンテンツカタログ情報(構造例1)におけるデータ構造例を示す図である。
【図7】図5(B)の例の場合のコンテンツカタログ情報(構造例2)におけるデータ構造例を示す図である。
【図8】図5(C)の例の場合のコンテンツカタログ情報(構造例3)におけるデータ構造例を示す図である。
【図9】図6に示すコンテンツカタログ情報(構造例1)を用いて、早送り再生が行われる場合の様子を示す図である。
【図10】図7に示すコンテンツカタログ情報(構造例2)を用いて、早送り再生が行われる場合の様子を示す図である。
【図11】図8に示すコンテンツカタログ情報(構造例3)を用いて、早送り再生が行われる場合の様子を示す図である。
【図12】ノードNnの概要構成例を示す図である。
【図13】ノードNnの制御部11における早送り再生又は巻戻し再生処理を示すフローチャートである。
【図14】ノードNnの制御部11におけるシーク(ジャンプ)再生処理を示すフローチャートである。
【図15】図6に示すコンテンツカタログ情報(構造例1)を用いた場合における、キーフレーム情報及びコンテンツID特定処理を示すフローチャートである。
【図16】図7に示すコンテンツカタログ情報(構造例2)を用いた場合における、キーフレーム情報及びコンテンツID特定処理を示すフローチャートである。
【図17】図8に示すコンテンツカタログ情報(構造例3)を用いた場合における、キーフレーム情報及びコンテンツID特定処理を示すフローチャートである。
【符号の説明】
【0112】
8 ネットワーク
9 オーバーレイネットワーク
10 放送局装置
11 制御部
12 記憶部
13 バッファメモリ
14 デコーダ部
15 映像処理部
16 表示部
17 音声処理部
18 スピーカ
20 通信部
21 入力部
22 バス
Nn ノード
S コンテンツ分散保存システム

【特許請求の範囲】
【請求項1】
複数のフレーム画像データを有する一単位のコンテンツデータを複数に分割した分割コンテンツデータが、複数のノード装置に分散保存されたコンテンツ分散保存システムであって、各前記分割コンテンツデータには、固有の識別情報が割り当てられており、各前記ノード装置は、前記識別情報に基づいて前記分割コンテンツデータを取得可能としたコンテンツ分散保存システムに含まれる前記ノード装置であって、
少なくとも一つの前記分割コンテンツデータの前記識別情報と、各前記分割コンテンツデータ中の前記フレーム画像データのオフセット位置を示す情報を含むキーフレーム情報と、を有するコンテンツカタログ情報を記憶する記憶手段と、
ユーザからの前記コンテンツデータの再生に関する指示を受け付ける指示受付手段と、
前記指示に応じて再生すべき前記フレーム画像データに対応する前記キーフレーム情報と、当該再生すべき前記フレーム画像データが含まれる分割コンテンツデータの前記識別情報と、を前記コンテンツカタログ情報に基づいて特定する特定手段と、
前記特定された前記キーフレーム情報及び前記識別情報に対応する前記フレーム画像データを取得するフレーム取得手段と、
を備えることを特徴とするノード装置。
【請求項2】
請求項1に記載のノード装置において、
前記再生に関する指示は、早送り再生、巻き戻し再生、及びシーク再生のうちの何れかを含む再生指示であることを特徴とするノード装置。
【請求項3】
請求項1又は2に記載のノード装置において、
前記コンテンツカタログ情報は、全ての前記分割コンテンツデータの前記識別情報と、さらに当該全ての分割コンテンツデータのデータサイズを示す情報とを有し、
前記キーフレーム情報には、さらに前記フレーム画像データのデータサイズを示す情報が含まれており、
前記特定手段は、前記分割コンテンツデータのデータサイズを示す情報と、前記キーフレーム情報とに基づいて、前記再生すべきフレーム画像データが含まれる分割コンテンツデータを判別することを特徴とするノード装置。
【請求項4】
請求項1又は2に記載のノード装置において、
前記コンテンツカタログ情報は、全ての前記分割コンテンツデータの前記識別情報を有し、且つ、当該識別情報と前記キーフレーム情報とは対応付けられていることを特徴とするノード装置。
【請求項5】
請求項1又は2に記載のノード装置において、
前記識別情報は、所定の規則に従って前記分割コンテンツデータに割り当てられ、
前記コンテンツカタログ情報は、先頭の前記分割コンテンツデータの前記識別情報のみを有しており、
前記特定手段は、前記先頭の分割コンテンツデータ以外の分割コンテンツデータの前記識別情報を、前記所定の規則にしたがって前記先頭の分割コンテンツデータの前記識別情報から算出することを特徴とするノード装置。
【請求項6】
コンピュータを、請求項1乃至5の何れか一項に記載のノード装置として機能させることを特徴とするノード処理プログラム。
【請求項7】
複数のフレーム画像データを有する一単位のコンテンツデータを複数に分割した分割コンテンツデータが、複数のノード装置に分散保存されたコンテンツ分散保存システムであって、各前記分割コンテンツデータには、固有の識別情報が割り当てられており、各前記ノード装置は、前記識別情報に基づいて前記分割コンテンツデータを取得可能としたコンテンツ分散保存システムにおけるフレーム画像取得方法であって、
前記ノード装置は、
少なくとも一つの前記分割コンテンツデータの前記識別情報と、各前記分割コンテンツデータ中の前記フレーム画像データのオフセット位置を示す情報を含むキーフレーム情報と、を有するコンテンツカタログ情報を記憶する工程と、
ユーザからの前記コンテンツデータの再生に関する指示を受け付ける工程と、
前記指示に応じて再生すべき前記フレーム画像データに対応する前記キーフレーム情報と、当該再生すべき前記フレーム画像データが含まれる分割コンテンツデータの前記識別情報と、を前記コンテンツカタログ情報に基づいて特定する工程と、
前記特定された前記キーフレーム情報及び前記識別情報に対応する前記フレーム画像データを取得する工程と、
を備えることを特徴とするフレーム画像取得方法。
【請求項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

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate


【公開番号】特開2008−48350(P2008−48350A)
【公開日】平成20年2月28日(2008.2.28)
【国際特許分類】
【出願番号】特願2006−224485(P2006−224485)
【出願日】平成18年8月21日(2006.8.21)
【出願人】(000005267)ブラザー工業株式会社 (13,856)
【Fターム(参考)】