(57)【要約】      （修正有）【課題】一単位のコンテンツデータが、複数に分割され、複数のノード装置に跨って分散保存される場合であっても、特殊再生をスムーズに実行することが可能なコンテンツ分散保存システム、フレーム画像取得方法、及びノード装置等を提供する。【解決手段】ノード装置は、キーフレーム情報を含んでいる分割コンテンツデータから当該キーフレーム情報を取得するキーフレーム情報取得手段と、ユーザからのコンテンツデータの再生に関する指示を受け付ける指示受付手段と、指示に応じて再生すべきフレーム画像データに対応する前記キーフレーム情報を前記取得したキーフレーム情報から特定し、当該再生すべき前記フレーム画像データが含まれる分割コンテンツデータの識別情報を特定する特定手段と、前記特定された前記キーフレーム情報及び前記識別情報に対応する前記フレーム画像データを取得するフレーム取得手段と、を備える。【選択図】図９
2008048351.tif 000002
【特許請求の範囲】
【請求項１】
複数のフレーム画像データを有する一単位のコンテンツデータを複数に分割した分割コンテンツデータが、複数のノード装置に分散保存されたコンテンツ分散保存システムであって、各前記分割コンテンツデータには、固有の識別情報が割り当てられ、且つ、少なくとも一つの前記分割コンテンツデータ中には、前記各分割コンテンツデータ中の前記フレーム画像データのオフセット位置を示す情報を含むキーフレーム情報が含まれており、各前記ノード装置は、前記識別情報に基づいて前記分割コンテンツデータを取得可能としたコンテンツ分散保存システムに含まれる前記ノード装置であって、
前記キーフレーム情報を含んでいる前記分割コンテンツデータから当該キーフレーム情報を取得するキーフレーム情報取得手段と、
ユーザからの前記コンテンツデータの再生に関する指示を受け付ける指示受付手段と、
前記指示に応じて再生すべき前記フレーム画像データに対応する前記キーフレーム情報を前記取得したキーフレーム情報から特定し、且つ、当該再生すべき前記フレーム画像データが含まれる分割コンテンツデータの前記識別情報を特定する特定手段と、
前記特定された前記キーフレーム情報及び前記識別情報に対応する前記フレーム画像データを取得するフレーム取得手段と、
を備えることを特徴とするノード装置。
【請求項２】
請求項１に記載のノード装置において、
前記再生に関する指示は、早送り再生、巻き戻し再生、シーク再生のうちの何れかを含む再生指示であることを特徴とするノード装置。
【請求項３】
請求項１又は２に記載のノード装置において、
全ての前記分割コンテンツデータの前記識別情報と、当該全ての分割コンテンツデータのデータサイズを示す情報と、を有するコンテンツカタログ情報を記憶する記憶手段を更に備え、
前記キーフレーム情報には、さらに前記フレーム画像データのデータサイズを示す情報が含まれており、
前記特定手段は、前記分割コンテンツデータのデータサイズを示す情報と、前記キーフレーム情報とに基づいて、前記再生すべきフレーム画像データが含まれる分割コンテンツデータを判別することを特徴とするノード装置。
【請求項４】
請求項１又は２に記載のノード装置において、
前記キーフレーム情報には、前記分割コンテンツデータの前記識別情報が対応付けられており、
前記特定手段は、前記特定されたキーフレーム情報に対応付けられた、前記分割コンテンツデータの前記識別情報を特定することを特徴とするノード装置。
【請求項５】
請求項１又は２に記載のノード装置において、
前記識別情報は、所定の規則に従って前記分割コンテンツデータに割り当てられており、
前記特定手段は、先頭の前記分割コンテンツデータの前記識別情報を、前記複数のノード装置に対して配信されたコンテンツカタログ情報から取得し、前記先頭の分割コンテンツデータ以外の分割コンテンツデータの前記識別情報を、前記所定の規則にしたがって前記先頭の分割コンテンツデータの前記識別情報から算出することを特徴とするノード装置。
【請求項６】
請求項１又は２に記載のノード装置において、
前記キーフレーム情報は、全ての前記分割コンテンツデータ中に含まれることを特徴とするノード装置。
【請求項７】
請求項１又は２に記載のノード装置において、
前記キーフレーム情報は、先頭の前記分割コンテンツデータ中にのみ含まれることを特徴とするノード装置。
【請求項８】
コンピュータを、請求項１乃至７の何れか一項に記載のノード装置として機能させることを特徴とするノード処理プログラム。
【請求項９】
複数のフレーム画像データを有する一単位のコンテンツデータを複数に分割した分割コンテンツデータが、複数のノード装置に分散保存されたコンテンツ分散保存システムであって、各前記分割コンテンツデータには、固有の識別情報が割り当てられ、且つ、少なくとも一つの前記分割コンテンツデータ中には、前記各分割コンテンツデータ中の前記フレーム画像データのオフセット位置を示す情報を含むキーフレーム情報が含まれており、各前記ノード装置は、前記識別情報に基づいて前記分割コンテンツデータを取得可能としたコンテンツ分散保存システムにおけるフレーム画像取得方法であって、
前記キーフレーム情報を含んでいる前記分割コンテンツデータから当該キーフレーム情報を取得する工程と、
ユーザからの前記コンテンツデータの再生に関する指示を受け付ける工程と、
前記指示に応じて再生すべき前記フレーム画像データに対応する前記キーフレーム情報を前記取得したキーフレーム情報から特定し、且つ、当該再生すべき前記フレーム画像データが含まれる分割コンテンツデータの前記識別情報を特定する工程と、
前記特定された前記キーフレーム情報及び前記識別情報に対応する前記フレーム画像データを取得する工程と、
を備えることを特徴とするフレーム画像取得方法。
【請求項１０】
複数のフレーム画像データを有する一単位のコンテンツデータを複数に分割した分割コンテンツデータが、複数のノード装置に分散保存されたコンテンツ分散保存システムであって、各前記分割コンテンツデータには、固有の識別情報が割り当てられ、且つ、少なくとも一つの前記分割コンテンツデータ中には、前記各分割コンテンツデータ中の前記フレーム画像データのオフセット位置を示す情報を含むキーフレーム情報が含まれており、各前記ノード装置は、前記識別情報に基づいて前記分割コンテンツデータを取得可能としたコンテンツ分散保存システムであって、
前記ノード装置は、
前記キーフレーム情報を含んでいる前記分割コンテンツデータから当該キーフレーム情報を取得するキーフレーム情報取得手段と、
ユーザからの前記コンテンツデータの再生に関する指示を受け付ける指示受付手段と、
前記指示に応じて再生すべき前記フレーム画像データに対応する前記キーフレーム情報を前記取得したキーフレーム情報から特定し、且つ、当該再生すべき前記フレーム画像データが含まれる分割コンテンツデータの前記識別情報を特定する特定手段と、
前記特定された前記キーフレーム情報及び前記識別情報に対応する前記フレーム画像データを取得するフレーム取得手段と、
を備えることを特徴とするコンテンツ分散保存システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワークを介して互いに通信可能な複数のノード装置を備えたピアツーピア（Peer to Peer（P2P））型の通信システムの技術分野に関する。
【背景技術】
【０００２】
この種のピアツーピア型の通信システムにおいて、コンテンツデータを複数のノード装置に分散配置（分散保存）させておくコンテンツ分散保存システムが知られており、これにより、対故障性やアクセスの分散性を高められている。このように分散保存されたコンテンツデータの所在は、例えば特許文献１に開示されるような分散ハッシュテーブル（以下、ＤＨＴ（Distributed Hash Table）という）を利用して効率良く検索可能になっている。当該ＤＨＴは、各ノード装置に記憶されており、当該ＤＨＴには、各種メッセージの転送先となるべき複数のノード装置を示すノード情報（例えば、ＩＰアドレス及びポート番号を含む）が登録されている。
【０００３】
そして、コンテンツ分散保存システムに参加しているノード装置は、所望のコンテンツデータの取得を望む場合、当該コンテンツデータの所在を検索（発見）するためのメッセージ（クエリ）を他のノード装置に送出することにより、当該メッセージは、上記ＤＨＴにしたがって、複数の中継のノード装置により当該コンテンツデータの所在の管理元のノード装置に向かって転送され、最終的に当該メッセージが辿り着く上記管理元のノード装置からノード情報を取得することになる。これにより、当該メッセージを送出したノード装置は、上記検索に係るコンテンツデータを保存しているノード装置に対して、当該コンテンツデータを要求し、当該コンテンツデータの提供を受けることができる。
【特許文献１】特開２００６−１９７４００号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
ところで、今後、一単位のコンテンツデータが、複数に分割され、その分割された分割コンテンツデータが複数のノード装置に跨って分散保存される場合が考えられる。しかしながら、分割されたコンテンツデータに対して早送り再生、巻き戻し再生、及びシーク再生等の特殊再生を行う場合、順次再生すべきフレーム画像データが含まれる分割コンテンツデータは複数のノード装置に跨る場合があるので、スムーズな特殊再生を実現することが困難になる可能性がある。
【０００５】
本発明は、以上の点等に鑑みてなされたものであり、一単位のコンテンツデータが、複数に分割され、その分割された分割コンテンツデータが複数のノード装置に跨って分散保存される場合であっても、特殊再生をスムーズに実行することが可能なコンテンツ分散保存システム、フレーム画像取得方法、及びノード装置等を提供することを課題とする。
【課題を解決するための手段】
【０００６】
上記課題を解決するために、請求項１に記載の発明は、複数のフレーム画像データを有する一単位のコンテンツデータを複数に分割した分割コンテンツデータが、複数のノード装置に分散保存されたコンテンツ分散保存システムであって、各前記分割コンテンツデータには、固有の識別情報が割り当てられ、且つ、少なくとも一つの前記分割コンテンツデータ中には、前記各分割コンテンツデータ中の前記フレーム画像データのオフセット位置を示す情報を含むキーフレーム情報が含まれており、各前記ノード装置は、前記識別情報に基づいて前記分割コンテンツデータを取得可能としたコンテンツ分散保存システムに含まれる前記ノード装置であって、前記キーフレーム情報を含んでいる前記分割コンテンツデータから当該キーフレーム情報を取得するキーフレーム情報取得手段と、ユーザからの前記コンテンツデータの再生に関する指示を受け付ける指示受付手段と、前記指示に応じて再生すべき前記フレーム画像データに対応する前記キーフレーム情報を前記取得したキーフレーム情報から特定し、且つ、当該再生すべき前記フレーム画像データが含まれる分割コンテンツデータの前記識別情報を特定する特定手段と、前記特定された前記キーフレーム情報及び前記識別情報に対応する前記フレーム画像データを取得するフレーム取得手段と、を備えることを特徴とする。
【０００７】
この発明によれば、少なくとも一つの前記分割コンテンツデータ中に前記各分割コンテンツデータ中の前記フレーム画像データのオフセット位置を示す情報を含むキーフレーム情報を含ませておき、上記ノード装置が、前記キーフレーム情報を含んでいる前記分割コンテンツデータから当該キーフレーム情報を取得し、ユーザからの前記コンテンツデータの再生に関する指示に応じて再生すべき前記フレーム画像データに対応する前記キーフレーム情報を前記取得したキーフレーム情報から特定し、且つ、当該再生すべき前記フレーム画像データが含まれる分割コンテンツデータの前記識別情報を特定し、前記特定された前記キーフレーム情報及び前記識別情報に対応する前記フレーム画像データを取得するように構成したので、一単位のコンテンツデータが、複数に分割され、その分割された分割コンテンツデータが複数のノード装置に跨って分散保存される場合であっても、例えば早送り再生、巻き戻し再生、及びシーク再生等の特殊再生をスムーズに実行することができる。また、分割コンテンツデータからキーフレーム情報等を直ぐに取り出すことができ、分割されたコンテンツデータに対して、当該特殊再生をより効率良く実行することができる。
【０００８】
請求項２に記載の発明は、請求項１に記載のノード装置において、前記再生に関する指示は、早送り再生、巻き戻し再生、及びシーク再生のうちの何れかを含む再生指示であることを特徴とする。
【０００９】
請求項３に記載の発明は、請求項１又は２に記載のノード装置において、全ての前記分割コンテンツデータの前記識別情報と、当該全ての分割コンテンツデータのデータサイズを示す情報と、を有するコンテンツカタログ情報を記憶する記憶手段を更に備え、前記キーフレーム情報には、さらに前記フレーム画像データのデータサイズを示す情報が含まれており、前記特定手段は、前記分割コンテンツデータのデータサイズを示す情報と、前記キーフレーム情報とに基づいて、前記再生すべきフレーム画像データが含まれる分割コンテンツデータを判別することを特徴とする。
【００１０】
この発明によれば、フレーム画像データのキーフレーム情報と、当該フレーム画像データが含まれる分割コンテンツデータの識別情報と、の対応関係を当該分割コンテンツデータ中に規定しなくても再生すべきフレーム画像データが含まれる分割コンテンツデータを判別することができる。
【００１１】
請求項４に記載の発明は、請求項１又は２に記載のノード装置において、前記キーフレーム情報には、前記分割コンテンツデータの前記識別情報が対応付けられており、前記特定手段は、前記特定されたキーフレーム情報に対応付けられた、前記分割コンテンツデータの前記識別情報を特定することを特徴とする。
【００１２】
この発明によれば、各フレーム画像データがどの分割コンテンツデータに含まれるかを、ノード装置が計算により判別する必要が無く、より迅速に特定することができる。
【００１３】
請求項５に記載の発明は、請求項１又は２に記載のノード装置において、前記識別情報は、所定の規則に従って前記分割コンテンツデータに割り当てられており、前記特定手段は、先頭の前記分割コンテンツデータの前記識別情報を、前記複数のノード装置に対して配信されたコンテンツカタログ情報から取得し、前記先頭の分割コンテンツデータ以外の分割コンテンツデータの前記識別情報を、前記所定の規則にしたがって前記先頭の分割コンテンツデータの前記識別情報から算出することを特徴とする。
【００１４】
この発明によれば、全ての分割コンテンツデータの識別情報がコンテンツカタログ情報中に含まれなくとも良いので、コンテンツカタログ情報のデータ量を削減することができる。
【００１５】
請求項６に記載の発明は、請求項１又は２に記載のノード装置において、前記キーフレーム情報は、全ての前記分割コンテンツデータ中に含まれることを特徴とする。
【００１６】
請求項７に記載の発明は、請求項１又は２に記載のノード装置において、前記キーフレーム情報は、先頭の前記分割コンテンツデータ中にのみ含まれることを特徴とする。
【００１７】
請求項８に記載のノード処理プログラムは、コンピュータを、請求項１乃至７の何れか一項に記載のノード装置として機能させることを特徴とする。
【００１８】
請求項９に記載の発明は、複数のフレーム画像データを有する一単位のコンテンツデータを複数に分割した分割コンテンツデータが、複数のノード装置に分散保存されたコンテンツ分散保存システムであって、各前記分割コンテンツデータには、固有の識別情報が割り当てられ、且つ、少なくとも一つの前記分割コンテンツデータ中には、前記各分割コンテンツデータ中の前記フレーム画像データのオフセット位置を示す情報を含むキーフレーム情報が含まれており、各前記ノード装置は、前記識別情報に基づいて前記分割コンテンツデータを取得可能としたコンテンツ分散保存システムにおけるフレーム画像取得方法であって、前記キーフレーム情報を含んでいる前記分割コンテンツデータから当該キーフレーム情報を取得する工程と、ユーザからの前記コンテンツデータの再生に関する指示を受け付ける工程と、前記指示に応じて再生すべき前記フレーム画像データに対応する前記キーフレーム情報を前記取得したキーフレーム情報から特定し、且つ、当該再生すべき前記フレーム画像データが含まれる分割コンテンツデータの前記識別情報を特定する工程と、前記特定された前記キーフレーム情報及び前記識別情報に対応する前記フレーム画像データを取得する工程と、を備えることを特徴とする。
【００１９】
請求項１０に記載の発明は、複数のフレーム画像データを有する一単位のコンテンツデータを複数に分割した分割コンテンツデータが、複数のノード装置に分散保存されたコンテンツ分散保存システムであって、各前記分割コンテンツデータには、固有の識別情報が割り当てられ、且つ、少なくとも一つの前記分割コンテンツデータ中には、前記各分割コンテンツデータ中の前記フレーム画像データのオフセット位置を示す情報を含むキーフレーム情報が含まれており、各前記ノード装置は、前記識別情報に基づいて前記分割コンテンツデータを取得可能としたコンテンツ分散保存システムであって、前記ノード装置は、前記キーフレーム情報を含んでいる前記分割コンテンツデータから当該キーフレーム情報を取得するキーフレーム情報取得手段と、ユーザからの前記コンテンツデータの再生に関する指示を受け付ける指示受付手段と、前記指示に応じて再生すべき前記フレーム画像データに対応する前記キーフレーム情報を前記取得したキーフレーム情報から特定し、且つ、当該再生すべき前記フレーム画像データが含まれる分割コンテンツデータの前記識別情報を特定する特定手段と、前記特定された前記キーフレーム情報及び前記識別情報に対応する前記フレーム画像データを取得するフレーム取得手段と、を備えることを特徴とする。
【発明の効果】
【００２０】
本発明によれば、一単位のコンテンツデータが、複数に分割され、その分割された分割コンテンツデータが複数のノード装置に跨って分散保存される場合であっても、例えば早送り再生、巻き戻し再生、及びシーク再生等の特殊再生をスムーズに実行することができる。また、分割コンテンツデータからキーフレーム情報等を直ぐに取り出すことができ、分割されたコンテンツデータに対して、当該特殊再生をより効率良く実行することができる。
【発明を実施するための最良の形態】
【００２１】
以下、本発明の最良の実施形態を図面に基づいて説明する。
【００２２】
［１．コンテンツ分散保存システムの構成等］
始めに、図１等を参照して、本発明の一実施形態に係るコンテンツ分散保存システム通信システムの概要構成等について説明する。
【００２３】
図１は、本実施形態に係るコンテンツ分散保存システムにおける各ノード装置の接続態様の一例を示す図である。
【００２４】
図１の下部枠１０１内に示すように、ＩＸ（Internet eＸchange）３、ＩＳＰ（Internet Service Provider）４ａ,４ｂ、ＤＳＬ（Digital Subscriber Line）回線事業者（の装置）５ａ,５ｂ、ＦＴＴＨ（Fiber To The Home）回線事業者（の装置）６、及び通信回線（例えば、電話回線や光ケーブル等）７等によって、インターネット等のネットワーク（現実世界の通信ネットワークであり）８が構築されている。なお、図１の例におけるネットワーク（通信ネットワーク）８には、データ（パケット）を転送するためのルータが、適宜挿入されているが図示を省略している。
【００２５】
このようなネットワーク８には、複数のノード装置（以下、「ノード」という）Ｎｎ（ｎ＝１，２，３・・・）が接続されている。また、各ノードＮｎには、固有の製造番号およびＩＰ（Internet Protocol）アドレスが割り当てられている。このような製造番号およびＩＰアドレスは、複数のノード間で重複しないものである。
【００２６】
そして、本実施形態に係るコンテンツ分散保存システムＳは、これらのノードＮｎのうち、図１の上部枠１００内に示すように、何れか複数のノードＮｎの参加により形成されるピアツーピア方式のネットワークシステムとなっている。なお、図１の上部枠１００内に示すネットワーク９は、既存のネットワーク８を用いて形成された仮想的なリンクを構成するオーバーレイネットワーク９（論理的なネットワーク）である。
【００２７】
このようなコンテンツ分散保存システムＳは、特定のアルゴリズム、例えば、ＤＨＴ（Distributed Hash Table）を利用したアルゴリズムにより実現される。そして、コンテンツ分散保存システムＳに参加している各ノードＮｎには、固有のノード識別情報であるノードＩＤが割り当てられており、当該ノードＩＤは、例えば、各ノードＮｎに個別に割り当てられたＩＰアドレス或いは製造番号を共通のハッシュ関数（例えば、ＳＨＡ−１等）によりハッシュ化した値（例えば、ｂｉｔ長が１６０ｂｉｔ）であり、一つのＩＤ空間に偏りなく分散して配置されることになる。
【００２８】
なお、コンテンツ分散保存システムＳへの参加は、参加していないノードＮｎ（例えば、ノードＮ８）が、参加している任意のノードＮｎ（例えば、当該システムＳに常時参加しているコンタクトノード）に対して参加要求を示す参加メッセージを送信することによって行われる。
【００２９】
上記のように共通のハッシュ関数により求められた（ハッシュ化された）ノードＩＤは、当該ＩＰアドレス或いは製造番号が異なれば、同じ値になる確率が極めて低いものである。また、このノードＩＤは、ノードの最大運用台数を収容できるだけのｂｉｔ数を持たせる必要がある。例えば、１２８ｂｉｔの番号とすれば、2＾128＝340×10＾36台のノードを運用できる。なお、ハッシュ関数については公知であるので詳しい説明を省略する。
【００３０】
また、各ノードＮｎは、夫々、ＤＨＴを保持している。このＤＨＴは、コンテンツ分散保存システムＳ上における各種メッセージの転送先を規定しており、具体的には、ＩＤ空間内で適度に離れたノードＮｎのノードＩＤ、ＩＰアドレス及びポート番号を含むノード情報（転送先ノード情報）が複数登録されている。
【００３１】
コンテンツ分散保存システムＳに参加している１台のノードＮｎは、該システムＳに参加している全てのノードＮｎのうち、必要最低限のノードＮｎのノード情報をルーティングテーブルに登録しておき、ノード情報を知らない（記憶していない）ノードＮｎについては、各ノードＮｎ間で互いに各種メッセージを転送し合って届けてもらうようになっている。
【００３２】
［１．１  ＤＨＴを用いたルーティングテーブル］
ここで、図２及び図３を参照して、ＤＨＴを用いたルーティングテーブルについて詳しく説明する。
【００３３】
図２は、ノードＮ２が保持するＤＨＴを用いたルーティングテーブルの一例を示す図であり、図３は、ＤＨＴのＩＤ空間の一例を示す概念図である。
【００３４】
なお、図２及び図３の例においては、説明の便宜上、ノードＩＤのｂｉｔ長を２ｂｉｔ×３桁＝６ｂｉｔとし、各桁を４進数（０〜３の整数）で表している（実際には、もっと長いｂｉｔ長を用い、各桁も例えば４ｂｉｔに区切って０〜ｆの１６進数で表現する）。
【００３５】
図２の例において、ＤＨＴを用いたルーティングテーブルは、レベル１〜レベル３のテーブルからなり（複数のレベルに区分されており）、各レベルのテーブルエントリーには、エリア毎に、ノード情報として、ノードＩＤとこれに対応するノードＮｎのＩＰアドレス及びポート番号が対応付けられて登録されている。各レベルのテーブルにおける各エリアは、ＤＨＴのノードＩＤ空間を分割することにより得られるエリアである。例えば、図３に示すように、レベル１では、ＤＨＴのＩＤ空間全体が４分割され、“０００”〜“０３３”のノードＩＤが存在するエリアを０ＸＸのエリア、“１００”〜“１３３” のノードＩＤが存在するエリアを１ＸＸのエリア、“２００”〜“２３３” のノードＩＤが存在するエリアを２ＸＸのエリア、“３００”〜“３３３” のノードＩＤが存在するエリアを３ＸＸのエリアとする。また、レベル２では、レベル１のエリア（つまり、０ＸＸ〜３ＸＸのエリア）が更に４分割、例えば１ＸＸのエリアが４分割され、“１００”〜“１０３” のノードＩＤが存在するエリアを１０Ｘのエリア、“１１０”〜“１１３” のノードＩＤが存在するエリアを１１Ｘのエリア、“１２０”〜“１２３” のノードＩＤが存在するエリアを１２Ｘのエリア、“１３０”〜“１３３” のノードＩＤが存在するエリアを１３Ｘのエリアとする。
【００３６】
そして、例えば、ノードＮ２のノードＩＤが“１２２”とすると、図２に示すように、かかるノードＮ２のレベル１における１ＸＸのエリア（自己（つまり、自ノード）が存在するエリア）のテーブルには、自己のノードＩＤ及びＩＰアドレス（ＩＰアドレスは自分のものであるので、当該ルーティングテーブルに登録しなくても良い）等が登録され、自己が存在しないエリア（つまり、０ＸＸのエリア、２ＸＸのエリア、及び３ＸＸのエリア）には、夫々、他の任意のノードＮｎのノードＩＤ及びＩＰアドレス等が登録されている。
【００３７】
また、かかるノードＮ１のレベル２における１２Ｘのエリア（自己が存在するエリア）のテーブルには、図２に示すように、自己のノードＩＤ及びＩＰアドレス（ＩＰアドレスは自分のものであるので、当該ルーティングテーブルに登録しなくても良い）等が登録され、自己が存在しないエリア（つまり、１０Ｘのエリア、１１Ｘのエリア、及び１３Ｘのエリア）等には、夫々、他の任意のノードＮｎのノードＩＤ及びＩＰアドレス等が登録されている。
【００３８】
更に、かかるノードＮ２のレベル３には、図２に示すように、ノードＩＤが“１２０”〜“１２２”のノードＩＤ及びＩＰアドレス（ＩＰアドレスは自分のものであるので、当該ルーティングテーブルに登録しなくても良い）等が登録されている。
【００３９】
なお、図２及び図３の例では、ノードＩＤのｂｉｔ長を３桁×２ｂｉｔとしたので、レベル１〜３の３レベル分のテーブルで網羅できるが、ノードＩＤのｂｉｔ長が増せば、その分のテーブルが必要となる（例えば、ノードＩＤのｂｉｔ長を１６桁×４ｂｉｔとした場合、１６レベル分のテーブルが必要となる）。
【００４０】
このように、本実施形態におけるＤＨＴを用いたルーティングテーブルでは、レベルが上がるほど、エリアが狭まっていくようになっている。
【００４１】
また、このようなＤＨＴは、例えば、未参加のノードがコンテンツ分散保存システムＳに参加する際に与えられることになる。
【００４２】
［１．２  コンテンツデータの保存及び発見方法］
次に、コンテンツ分散保存システムＳにおいて取得可能なコンテンツデータの保存及び発見方法について説明する。
【００４３】
コンテンツ分散保存システムＳにおいては、様々なコンテンツ（例えば、映画や音楽等）データが複数のノードＮｎに分散して保存（格納）されている（言い換えれば、コンテンツデータが複製されその複製情報であるレプリカが分散保存されている）。
【００４４】
また、本実施形態においては、複数のフレーム画像データ（映像データ）を有する一単位のコンテンツデータ（例えば、映画やテレビ番組等のデータサイズ（データ容量）の大きいコンテンツデータ）は、複数に分割（例えば、数Mbyte）され、その分割された分割コンテンツデータ（同じデータサイズずつ分割されても良いし、異なるデータサイズずつ分割されても良い）が複数のノードＮｎ（以下、「コンテンツ保持ノード」という）に分散して保存（格納）されるようになっている。
【００４５】
例えば、タイトルがＸＸＸの映画のコンテンツデータＡが、分割コンテンツデータＡ１〜Ａ４の４つに分割されたとすると、分割コンテンツデータＡ１はノードＮ１及びＮ５に保存され、分割コンテンツデータＡ２はノードＮ３に保存され、分割コンテンツデータＡ３はノードＮ７に保存され、分割コンテンツデータＡ４はノードＮ８及びＮ１０に保存される。なお、タイトルが異なる他の映画のコンテンツデータについても同様に分割され、複数のノードＮｎに保存されることになる。
【００４６】
そして、これらの分割コンテンツデータＡ１〜Ａ４には、夫々、コンテンツＩＤ（ＣＩＤ）（分割コンテンツデータ毎に固有の識別情報）が割り当てられている。このコンテンツＩＤは、例えば、コンテンツ名（コンテンツデータ毎に互いに異なる）＋任意の値（或いは、分割コンテンツデータの先頭数バイトでも良い）が、上記ノードＩＤを得るときと共通のハッシュ関数によりハッシュ化されて生成される（ノードＩＤと同一のＩＤ空間に配置）。なお、上記任意の値は、分割コンテンツデータＡ１〜Ａ４の間で互いに異なる値とするが、例えば、Ａ１が“１”、Ａ２が“２”、Ａ３“３”、Ａ４が“４というように規則性を有する値とする。また、システム運営者が、コンテンツ毎に一意のＩＤ値（ノードＩＤと同一ビット長）を付与しても良い。
【００４７】
また、このように分散保存されている例えば分割コンテンツデータＡ１の所在、つまり、分割コンテンツデータＡ１を保存したノードＮｎのノード情報（例えば、ＩＰアドレス及びポート番号等を含む）と当該分割コンテンツデータＡ１に対応するコンテンツＩＤ等の組が含まれるインデックス情報が、当該分割コンテンツデータＡ１の所在の管理元としてのノードＮｎ（以下、「ルートノード」、又は「コンテンツ（コンテンツＩＤ）のルートノード」という）等により記憶（インデックスキャッシュに記憶）、管理されるようになっている（分割コンテンツデータＡ２〜Ａ４についても同様）。
【００４８】
例えば、分割コンテンツデータＡ１のインデックス情報は、そのコンテンツ（コンテンツＩＤ）のルートノードであるノードＮ４により管理され、分割コンテンツデータＡ２のインデックス情報は、そのコンテンツ（コンテンツＩＤ）のルートノードであるノードＮ６により管理される。
【００４９】
つまり、分割コンテンツデータ毎にルートノードが分けられるので負荷分散が図らており、しかも、同一の分割コンテンツデータＡ１（コンテンツＩＤが同一）が、夫々、複数のコンテンツ保持ノードに保存されている場合であっても、かかる分割コンテンツデータＡ１のインデックス情報は、一つのルートノードで管理することができる。また、このようなルートノードは、例えば、コンテンツＩＤと最も近い（例えば、上位桁がより多く一致する）ノードＩＤを有するノードＮｎであるように定められる。
【００５０】
そして、あるノードＮｎのユーザが、所望するコンテンツデータを取得したい場合、当該コンテンツデータの取得を望むノードＮｎ（以下、「ユーザノード」という）は、当該ユーザにより選択（例えば、全てのノードＮｎに配信されているコンテンツカタログ情報（コンテンツリストともいう）から選択）されたコンテンツデータＡを構成する例えば分割コンテンツデータＡ１のコンテンツＩＤ及び自己のノード情報を含むコンテンツ所在問合せ（検索）メッセージ（クエリ）を生成し、これを自己のＤＨＴを用いたルーティングテーブルにしたがって他のノードＮｎに対して送出する。つまり、ユーザノードは、コンテンツ所在問合せ（検索）メッセージを、ルートノードに向けて送出する。これにより、コンテンツ所在問合せ（検索）メッセージは、コンテンツＩＤをキーとするＤＨＴルーティングによって最終的にルートノードに到着することになる。
【００５１】
なお、上記コンテンツ所在問合せ（検索）メッセージに含まれるコンテンツＩＤは、ユーザノードによって、コンテンツ名が上記共通のハッシュ関数によりハッシュ化されて生成されるようにしても良い。
【００５２】
また、コンテンツカタログ情報は、コンテンツカタログ情報を管理するノードＮｎ、或いはサーバにより管理（更新等）されており、当該ノードＮｎ或いはサーバから、コンテンツ分散保存システムＳに参加している各ノードＮｎに配信されるようになっている。
【００５３】
図４は、ユーザノードから送出されたコンテンツ所在問合せ（検索）メッセージの流れの一例を、ＤＨＴのＩＤ空間にて示した概念図である。
【００５４】
図４の例において、例えば、ユーザノードであるノードＮ２は、自己のＤＨＴのレベル１のテーブル（図２に示すＤＨＴを用いたルーティングテーブルとは無関係）を参照して、コンテンツ所在問合せ（検索）メッセージに含まれるコンテンツＩＤと最も近い（例えば、上位桁がより多く一致する）ノードＩＤを有する例えばノードＮ３のノード情報に含まれるＩＰアドレス及びポート番号を取得し、そのＩＰアドレス及びポート番号宛てに、上記コンテンツ所在問合せ（検索）メッセージを送信する。
【００５５】
これに対して、ノードＮ３は、当該コンテンツ所在問合せ（検索）メッセージを受信し、自己のＤＨＴのレベル２のテーブルを参照して、当該コンテンツ所在問合せ（検索）メッセージに含まれるコンテンツＩＤと最も近い（例えば、上位桁がより多く一致する）ノードＩＤを有する例えばノードＮ４のノード情報に含まれるＩＰアドレス及びポート番号を取得し、そのＩＰアドレス及びポート番号宛てに、上記コンテンツ所在問合せ（検索）メッセージを転送する。
【００５６】
これに対して、ノードＮ４は、当該コンテンツ所在問合せ（検索）メッセージを受信し、自己のＤＨＴのレベル３のテーブルを参照して、当該コンテンツ所在問合せ（検索）メッセージに含まれるコンテンツＩＤと最も近い（例えば、上位桁がより多く一致する）ノードＩＤが自分である、つまり、自分がそのコンテンツＩＤのルートノードであることを認識すると、当該コンテンツ所在問合せ（検索）メッセージに含まれるコンテンツＩＤに対応するインデックス情報をインデックスキャッシュから取得して、当該インデックス情報を、該コンテンツ所在問合せメッセージの送信元であるユーザノードに対して返信する。これにより、ユーザノードは、所望のコンテンツデータＡを構成する分割コンテンツデータＡ１を保存している上記コンテンツ保持ノードである例えばノードＮ５に対して、コンテンツ送信要求メッセージを送信し、そこから当該分割コンテンツデータＡ１の提供を受けることとなる（つまり、ユーザノードは、上記コンテンツＩＤに基づいて、その分割コンテンツデータＡ１を取得することができる）。例えば、コンテンツ保持ノードはユーザノードからの要求に応じて分割コンテンツデータＡ１のパケットデータをストリーミング配信し、ユーザノードは配信されてきた分割コンテンツデータＡ１のパケットデータを受信し再生（通常再生）することになる。
【００５７】
或いは、ルートノードであるノードＮ４は、当該インデックス情報に含まれるノード情報に示されたコンテンツ保持ノードに対してコンテンツ送信要求メッセージ（ユーザノードのノード情報を含み、当該ユーザノードに対して分割コンテンツデータＡ１の送信要求を示す要求情報）を送信する。これにより、ユーザノードは、上記コンテンツ保持ノードである例えばノードＮ５から分割コンテンツデータＡ１の提供を受けることとなる。なお、上記ユーザノードは、コンテンツ所在問合せメッセージがルートノードに辿り着くまでの間に、当該ルートノードと同じインデックス情報をキャッシュしている中継ノード（例えば、ノードＮ３のキャッシュノード）から当該インデックス情報を取得（受信）することもできる。
【００５８】
そして当該分割コンテンツデータＡ１の配信終了が近くなってきた所定のタイミングで、ユーザノードは、分割コンテンツデータＡ１に続く分割コンテンツデータＡ２のコンテンツＩＤ及び自己のノード情報を含むコンテンツ所在問合せ（検索）メッセージ（クエリ）を生成し、これを自己のＤＨＴを用いたルーティングテーブルにしたがって他のノードＮｎに対して送出する。これにより、ユーザノードは、分割コンテンツデータＡ１と同様、コンテンツ保持ノードから分割コンテンツデータＡ２の提供を受けることとなる（分割コンテンツデータＡ３及びＡ４も同様）。
【００５９】
［１．３  コンテンツデータの特殊再生（トリックプレイ）方法］
次に、コンテンツ分散保存システムＳにおいて取得可能なコンテンツデータの特殊再生（トリックプレイ）方法について説明する。
【００６０】
本実施形態においては、上述したように複数に分割され異なるノードＮｎに保存されたコンテンツデータについて、例えば早送り再生、巻戻し再生、又はシーク(ジャンプ)再生等の特殊再生（トリックプレイ）をスムーズに行うため、再生すべきフレーム画像データ（以下、「キーフレーム」という）がどの分割コンテンツデータに含まれるかを、ノードＮｎが迅速に特定できるように、各分割コンテンツデータ中の各キーフレームのオフセット位置（例えば、先頭からの位置）及びデータサイズを示すキーフレーム情報が、少なくとも一つの分割コンテンツデータ中（例えば、当該分割コンテンツデータのヘッダ内）に含まれる（記述される）ようになっている。分割コンテンツデータのヘッダ内にキーフレーム情報を含めることで、ノードＮｎは当該キーフレーム情報を迅速に取得し易い。
【００６１】
ここで、MPEGなどの画像圧縮方式では、例えば1/30秒ごとのフレーム情報を圧縮するようになっているが、１秒おきのフレーム画像は、その１枚のフレーム情報のみを使って圧縮しており、これをキーフレームという（フレーム内で圧縮が完結している）。この他の1/30秒おきのフレームは、キーフレームや前後のフレームとの差分情報のみを圧縮して記録する。特殊再生を行うには、例えば１秒おきのフレームを1/10秒間隔で表示すると、10倍速の早送り再生となるのだが、前記のような圧縮方式の場合には、ここでキーフレームを使わなければいけない。なぜならば、差分情報のフレームをデコーダに渡しても、そのフレームだけでは伸張ができないからである。そこで、早送り再生、巻き戻し再生をするためには、圧縮後のデータ中のキーフレームの位置とサイズを正確に知っておくことが重要になる。シーク再生の場合も、再生開始時から即座にフレームを表示するためには、デコーダにキーフレームからデータを渡し始めるのが良いので、キーフレームの位置を知っておくと良い。
【００６２】
図５（Ａ）乃至（Ｃ）は、夫々、コンテンツデータが分割され、各分割コンテンツデータ中の各キーフレームのキーフレーム情報等が先頭の分割コンテンツデータのヘッダ内に記述される様子を示す概念図である。
【００６３】
図５（Ａ）の例では、各分割コンテンツデータ中の各キーフレームに対応するキーフレーム情報（オフセット位置（Offset）及びデータサイズ(Size)を示す）が、先頭の分割コンテンツデータのヘッダに記述されるようになっている。この図５（Ａ）の例の場合のコンテンツカタログ情報及び分割コンテンツデータのヘッダ（構造例１）におけるデータ構造例を図６に示す。
【００６４】
図６に示すコンテンツカタログ情報（構造例１）は、コンテンツ分散保存システムＳにおいて各ノードＮｎが取得可能（利用可能）な各コンテンツデータ（Ａ，Ｂ、Ｃ・・・）の固有情報を有する。各コンテンツデータ（Ａ，Ｂ、Ｃ・・・）の固有情報には、コンテンツタイトル（コンテンツ名）及び分割コンテンツ情報が含まれている。そして、分割コンテンツ情報には、コンテンツデータの分割数及び分割された１番目（先頭）〜ｍ（ｍは自然数）番目までの各分割コンテンツデータのコンテンツＩＤ及びデータサイズが含まれている。
【００６５】
また、図６に示す分割コンテンツデータのヘッダ（構造例１）には、キーフレーム情報が含まれており、当該キーフレーム情報には、キーフレームの数（当該コンテンツデータにおけるキーフレームの数）、及び１番目（先頭）〜ｊ（ｊは自然数）番目までの各キーフレーム情報が含まれ、各キーフレーム情報には、当該キーフレームのオフセット位置（コンテンツデータの先頭からのオフセット位置）及び当該キーフレームのデータサイズが含まれている。なお、分割コンテンツデータのヘッダ（構造例１）によれば、各キーフレームがどの分割コンテンツデータに含まれるかを、ノードＮｎが計算により判別することになる。この分割コンテンツデータのヘッダ（構造例１）によれば、キーフレームのオフセット位置及びデータサイズと、当該キーフレームが含まれる分割コンテンツデータのコンテンツＩＤと、の対応関係を当該分割コンテンツデータのヘッダ中に規定しなくても、計算によって求めることができる。
【００６６】
図５（Ｂ）の例では、各分割コンテンツデータのコンテンツＩＤは、各分割コンテンツデータ中の各キーフレームに対応するキーフレーム情報（オフセット位置（Offset）及びデータサイズ(Size)を示す）中に含まれ、且つ、オフセット位置等に対応付けられて分割コンテンツデータのヘッダに記述されるようになっている。この図５（Ｂ）の例の場合のコンテンツカタログ情報及び分割コンテンツデータのヘッダ（構造例２）におけるデータ構造例を図７に示す。
【００６７】
図７に示すコンテンツカタログ情報（構造例２）は、図６に示すコンテンツカタログ情報（構造例１）と基本的な構造は同様であるが、分割コンテンツ情報には、コンテンツデータの分割数、及び分割された１番目（先頭）〜ｍ（ｍは自然数）番目までの各分割コンテンツデータのコンテンツＩＤが含まれている（データサイズは含まれていない）。
【００６８】
また、図７に示す分割コンテンツデータのヘッダ（構造例２）における各キーフレーム情報には、キーフレームのオフセット位置（各分割コンテンツデータの先頭からのオフセット位置）及びデータサイズに対応付けられて、当該キーフレームが含まれる分割コンテンツデータのコンテンツＩＤが含まれている。この分割コンテンツデータのヘッダ（構造例２）によれば、各キーフレームがどの分割コンテンツデータに含まれるかを、ノードＮｎが計算により判別する必要が無く、より迅速に特定することができる。
【００６９】
図５（Ｃ）の例では、図５（Ａ）の例と同様、各分割コンテンツデータ中の各キーフレームに対応するキーフレーム情報（オフセット位置（Offset）及びデータサイズ(Size)を示す）が、先頭の分割コンテンツデータのヘッダに記述されるようになっている。この図５（Ｃ）の例の場合のコンテンツカタログ情報及び分割コンテンツデータのヘッダ（構造例３）におけるデータ構造例を図８に示す。
【００７０】
図８に示すコンテンツカタログ情報（構造例３）は、図６に示すコンテンツカタログ情報（構造例１）と基本的な構造は同様であるが、分割コンテンツ情報には、コンテンツデータの分割数、１番目（先頭）の分割コンテンツデータのコンテンツＩＤ、及び分割データサイズが含まれている。つまり、コンテンツカタログ情報（構造例３）では、全ての分割コンテンツデータのコンテンツＩＤが含まれるのではなく、１番目（先頭）の分割コンテンツデータのコンテンツＩＤのみが含まれる。１番目（先頭）の分割コンテンツデータ以外のコンテンツＩＤについては、１番目（先頭）の分割コンテンツデータのコンテンツＩＤから計算によって求められる。分割データサイズは、コンテンツデータがどのようなデータサイズで分割されたかを示す情報である（各分割コンテンツデータのデータサイズは同一となる）。これにより、全ての分割コンテンツデータのコンテンツＩＤが含まれなくとも良いのでデータ量を削減することができる。
【００７１】
また、図８に示す分割コンテンツデータのヘッダ（構造例３）における各キーフレーム情報の内容は、図６に示す分割コンテンツデータのヘッダ（構造例１）における各キーフレーム情報の内容と同様である。
【００７２】
なお、図５（Ａ）乃至（Ｃ）の例では、キーフレーム情報等が先頭の分割コンテンツデータのヘッダ中にのみ含まれるようにしたが、別の例として、キーフレーム情報等が全ての分割コンテンツデータのヘッダ中に含まれるように構成しても良く、このように構成すれば、例えば、コンテンツデータの再生が途中で停止され、先頭以外の分割コンテンツデータがノードＮｎ内に蓄積されているとき、先頭の分割コンテンツデータが無くとも、キーフレーム情報を取得することができ、よりスムーズに特殊再生を実行することができる。
【００７３】
ここで、コンテンツカタログ情報を用いて、早送り再生が行われる場合の概要について、図９乃至図１１を用いて説明する。
【００７４】
図９は、上記図６に示すコンテンツカタログ情報及び分割コンテンツデータのヘッダ（構造例１）を用いて、早送り再生が行われる場合の様子を示す図であり、図１０は、上記図７に示すコンテンツカタログ情報及び分割コンテンツデータのヘッダ（構造例２）を用いて、早送り再生が行われる場合の様子を示す図であり、図１１は、上記図８に示すコンテンツカタログ情報及び分割コンテンツデータのヘッダ（構造例３）を用いて、早送り再生が行われる場合の様子を示す図である。
【００７５】
図９乃至図１１の何れの例でも、ユーザノードは、キーフレーム情報を含んでいる分割コンテンツデータ（この例では、先頭の分割コンテンツデータ）から当該キーフレーム情報を取得し、ユーザからのコンテンツデータの早送り再生指示（再生に関する指示の一例）に応じて再生すべきキーフレームに対応するキーフレーム情報を上記取得したキーフレーム情報から特定し、且つ、当該再生すべきキーフレームが含まれる分割コンテンツデータのコンテンツＩＤを例えばコンテンツカタログ情報等から特定し、当該特定したキーフレーム情報及びコンテンツＩＤに対応するキーフレームを、コンテンツ保持ノード（当該コンテンツ保持ノードは、当該ユーザノードが上記特定したコンテンツＩＤに対応する分割コンテンツデータを保存しており、当該コンテンツＩＤをキーとするＤＨＴルーティングによってルートノードに問い合わされて特定される）から取得して再生（早送り再生）するようになっている。
【００７６】
ここで、図９の場合、再生すべきキーフレームが含まれる分割コンテンツデータ（コンテンツＩＤ）は、当該分割コンテンツデータのデータサイズと、再生すべきキーフレームのキーフレーム情報（オフセット位置及びデータサイズを示す）とに基づいて計算により判別される。一方、図１０の場合、再生すべきキーフレームが含まれる分割コンテンツデータ（コンテンツＩＤ）は、キーフレーム情報から特定される。また、図１１の場合、１番目（先頭）の分割コンテンツデータ以外のコンテンツＩＤは、１番目（先頭）の分割コンテンツデータのコンテンツＩＤから計算によって求められる。
【００７７】
［２．ノードＮｎの構成及び機能等］
次に、図１２を参照して、ノードＮｎの構成及び機能について説明する。
【００７８】
図１２は、ノードＮｎの概要構成例を示す図である。
【００７９】
各ノードＮｎは、図１２に示すように、演算機能を有するＣＰＵ，作業用ＲＡＭ，各種データおよびプログラムを記憶するＲＯＭ等から構成されたコンピュータとしての制御部１１と、各種データ（例えば、分割コンテンツデータ、インデックス情報、ＤＨＴ等）及び各種プログラム等を記憶保存（格納）するためのＨＤ等から構成された記憶手段としての記憶部１２と、受信された分割コンテンツデータ等を一時蓄積するバッファメモリ１３と、分割コンテンツデータに含まれるエンコードされたビデオデータ（映像情報）およびオーディオデータ（音声情報）等をデコード（データ伸張や復号化等）するデコーダ部１４と、当該デコードされたビデオデータ等に対して所定の描画処理を施しビデオ信号として出力する映像処理部１５と、当該映像処理部１５から出力されたビデオ信号に基づき映像表示するＣＲＴ，液晶ディスプレイ等の表示部１６と、上記デコードされたオーディオデータをアナログオーディオ信号にＤ （Digital）／Ａ（Analog）変換した後これをアンプにより増幅して出力する音声処理部１７と、当該音声処理部１７から出力されたオーディオ信号を音波として出力するスピーカ１８と、ネットワーク８を通じて他のノードＮｎ等との間の情報の通信制御を行うための通信部２０と、ユーザからの指示を受け付け当該指示に応じた指示信号を制御部１１に対して与える入力部（例えば、キーボード、マウス、或いは、操作パネル等）２１と、を備えて構成され、制御部１１、記憶部１２、バッファメモリ１３、デコーダ部１４および通信部２０はバス２２を介して相互に接続されている。なお、ノードＮｎとしては、パーソナルコンピュータ、ＳＴＢ（Set Top Box）、或いは、ＴＶ受信機等を適用可能である。
【００８０】
このような構成において、制御部１１は、ＣＰＵが記憶部１２等に記憶されたプログラムを読み出して実行することにより、全体を統括制御すると共に、コンテンツ分散保存システムＳへの参加により上述したユーザノード、中継ノード、ルートノード、キャッシュノード、及びコンテンツ保持ノードの少なくとも何れか一つのノードとしての処理を行うようになっている。
【００８１】
そして更に、コンテンツ分散保存システムＳに参加しているノードＮｎにおける制御部１１は、ＣＰＵが記憶部１２等に記憶されたプログラム（本発明のノード処理プログラムを含む）を読み出して実行することにより、本発明のキーフレーム情報取得手段、指示受付手段、特定手段、及びフレーム取得手段等として機能し、後述する処理を行うようになっている。なお、上記ノード処理プログラムは、例えば、ネットワーク８上の所定のサーバからダウンロードされるようにしてもよいし、例えば、ＣＤ−ＲＯＭ等の記録媒体に記録されて当該記録媒体のドライブを介して読み込まれるようにしてもよい。
【００８２】
［３．ノードＮｎにおける特殊再生時の処理］
次に、図１３乃至図１７等を参照して、ノードＮｎにおける特殊再生処理について説明する。
【００８３】
図１３は、ノードＮｎの制御部１１における早送り再生又は巻戻し再生処理を示すフローチャートである。図１４は、ノードＮｎの制御部１１におけるシーク(ジャンプ）再生処理を示すフローチャートである。また、図１５は、上記図６に示すコンテンツカタログ情報及び分割コンテンツデータのヘッダ（構造例１）を用いた場合における、キーフレーム情報及びコンテンツＩＤ特定処理を示すフローチャートであり、図１６は、上記図７に示すコンテンツカタログ情報及び分割コンテンツデータのヘッダ（構造例２）を用いた場合における、キーフレーム情報及びコンテンツＩＤ特定処理を示すフローチャートであり、図１７は、上記図８に示すコンテンツカタログ情報及び分割コンテンツデータのヘッダ（構造例３）を用いた場合における、キーフレーム情報及びコンテンツＩＤ特定処理を示すフローチャートである。
【００８４】
先ず、コンテンツ分散保存システムＳに参加しているノードＮｎ（ユーザノード）において、制御部１１は、ユーザからの入力部２１を介したコンテンツリスト表示指示を受け付けた場合、上述したコンテンツカタログ情報を記憶部１２からＲＡＭに読み込み、当該コンテンツカタログ情報に含まれる複数のコンテンツ名（コンテンツタイトル）が記述されたコンテンツリストを表示部１６に表示させる。そして、当該表示されたコンテンツリストにおけるコンテンツ名のうちから、ユーザにより入力部２１を介して一つのコンテンツ名が選択された場合、制御部１１は、当該コンテンツ名に対応するコンテンツデータＡを構成する分割コンテンツデータＡ１のコンテンツＩＤ及び自己のノード情報を含むコンテンツ所在問合せ（検索）メッセージ（クエリ）を生成し、これを自己のＤＨＴを用いたルーティングテーブルにしたがって他のノードＮｎに対して送出する。これにより、コンテンツ所在問合せ（検索）メッセージは、コンテンツＩＤをキーとするＤＨＴルーティングによって最終的にルートノードに到着し、当該ユーザノードは、当該ルートノードからコンテンツ保持ノードのノード情報を取得する。そして、ユーザノードは、取得したノード情報にしたがって分割コンテンツデータＡ１を保存しているコンテンツ保持ノードに対して、コンテンツ送信要求をし、例えばストリーミング配信された分割コンテンツデータＡ１のパケットデータを受信し、当該分割コンテンツデータＡ１のヘッダに含まれるキーフレーム情報を取得（例えばＲＡＭに記憶）し、且つ、デコーダ部１４、映像処理部１５、及び音声処理部１７等を通じて再生（通常再生）する。こうして、上述したように、分割コンテンツデータＡ１→分割コンテンツデータＡ２→分割コンテンツデータＡ３・・・の順にストリーミング配信される対象が切り替わっていくことになる。
【００８５】
なお、ユーザノードは、コンテンツ保持ノードに対してコンテンツ送信要求をして分割コンテンツデータＡ１の配信を受ける前に、当該分割コンテンツデータＡ１のヘッダに含まれるキーフレーム情報の送信要求をし、当該キーフレーム情報をコンテンツ保持ノードからダウンロードして記憶するように構成しても良い。
【００８６】
また、図８に示すコンテンツカタログ情報及び分割コンテンツデータのヘッダ（構造例３）を用いる場合、先頭の分割コンテンツデータのコンテンツＩＤしか含まれていないので、他の分割コンテンツデータのコンテンツＩＤは、例えば、その分割コンテンツデータの先頭からの順番と、先頭の分割コンテンツデータのコンテンツＩＤと、を所定の関数に代入することによって算出することになる。
【００８７】
（早送り再生又は巻戻し再生）
このような通常再生中に、制御部１１は、ユーザからの入力部２１を介した早送り再生又は巻戻し再生（コンテンツデータの再生に関する指示の一例）開始指示を受け付けた場合、図１３に示す処理を開始し、先ず、現在の分割コンテンツデータの再生位置に対応するキーフレームの番号（先頭からの順番）を取得し、これを“Ｊ”とする（ステップＳ１）。
【００８８】
次いで、制御部１１は、早送り再生の場合Ｊを１増加させ、一方、巻戻し再生の場合Ｊを１減少させる（ステップＳ２）。
【００８９】
次いで、制御部１１は、Ｊが所定値になったか否かを判別する（ステップＳ３）。具体的には、早送り再生の場合、制御部１１は、上記取得したキーフレーム情報を参照して、Ｊがキーフレームの数になったか否かを判別し、キーフレームの数になった（Ｊ＝キーフレームの数）場合には（ステップＳ３：Ｙ）、当該再生位置に対応するキーフレームは最後のキーフレームであるので、当該処理を終了し、一方、キーフレームの数になっていない（Ｊ＜キーフレームの数）場合には（ステップＳ３：Ｎ）には、ステップＳ４に移行する。
【００９０】
一方、巻戻し再生の場合、制御部１１は、上記取得したキーフレーム情報を参照して、Ｊが“１”になったか否かを判別し、“１”になった（Ｊ＝１）場合には（ステップＳ３：Ｙ）、当該再生位置に対応するキーフレームは最初のキーフレームであるので、当該処理を終了し、一方、“１”になっていない（Ｊ＞１）場合には（ステップＳ３：Ｎ）には、ステップＳ４に移行する。
【００９１】
ステップＳ４では、制御部１１は、Ｊ番目のキーフレームに対応するキーフレーム情報と、当該Ｊ番目のキーフレームに対応する分割コンテンツデータ（つまり、当該キーフレームが含まれる分割コンテンツデータ）のコンテンツＩＤと、を特定する。なお、当該コンテンツＩＤ及びキーフレーム情報の特定処理は、コンテンツカタログ情報の構造例１〜３に応じて異なり、詳細については後述する。
【００９２】
次いで、制御部１１は、当該特定したコンテンツＩＤに対応する分割コンテンツデータに含まれるＪ番目のキーフレームを取得する（ステップＳ５）。より具体的には、制御部１１は、上記特定したコンテンツＩＤに対応する分割コンテンツデータを記憶しているか否かを判別し、記憶している場合には当該分割コンテンツデータから上記特定したキーフレーム情報に対応するキーフレームを取得する。一方、上記特定したコンテンツＩＤに対応する分割コンテンツデータを記憶していない場合には、制御部１１は、当該コンテンツＩＤ及び自己のノード情報を含むキーフレーム所在問合せ（検索）メッセージ（クエリ）を生成し、これを自己のＤＨＴを用いたルーティングテーブルにしたがって他のノードＮｎに対して送出する。これにより、キーフレーム所在問合せ（検索）メッセージは、コンテンツＩＤをキーとするＤＨＴルーティングによって最終的にルートノードに到着し、当該ユーザノードの制御部１１は、当該ルートノードからコンテンツ保持ノードのノード情報を取得する。そして、当該制御部１１は、取得したノード情報にしたがって当該分割コンテンツデータを保存しているコンテンツ保持ノードに対して、上記特定したキーフレーム情報を指定してキーフレーム送信要求をし、これに応じて送信されたキーフレームを取得する。
【００９３】
次いで、制御部１１は、当該取得したキーフレームをデコーダ部１４及び映像処理部１５を通じて再生する（ステップＳ６）。
【００９４】
次いで、制御部１１は、ユーザからの入力部２１を介した早送り再生又は巻戻し再生終了指示を受け付けたか否かを判別し（ステップＳ７）、受け付けた場合には（ステップＳ７：Ｙ）、当該処理を終了し、受け付けていない場合には（ステップＳ７：Ｎ）、ステップＳ２に戻り、上記と同様の処理を行う。こうして、Ｊが所定値になるか、或いは、早送り再生又は巻戻し再生終了指示が受け付けられるまで、早送り再生又は巻戻し再生が行われることになる。
【００９５】
（シーク（ジャンプ）再生）
一方、通常再生中に、制御部１１は、ユーザからの入力部２１を介したシーク（ジャンプ）再生（コンテンツデータの再生に関する指示の一例）開始指示を受け付けた場合、図１４に示す処理を開始し、先ず、シーク（ジャンプ）しようとする分割コンテンツデータの再生位置に対応するキーフレームの番号（先頭からの順番）を取得し、これを“Ｊ”とする（ステップＳ１１）。
【００９６】
次いで、制御部１１は、Ｊ番目のキーフレームに対応するキーフレーム情報と、当該Ｊ番目のキーフレームに対応する分割コンテンツデータのコンテンツＩＤと、を特定する（ステップＳ１２）。なお、当該コンテンツＩＤ及びキーフレーム情報の特定処理は、早送り再生又は巻戻し再生処理におけるステップＳ４と同様であり、詳細については後述する。
【００９７】
次いで、制御部１１は、当該特定したコンテンツＩＤに対応する分割コンテンツデータに含まれるＪ番目のキーフレームを取得し（ステップＳ１３）、当該キーフレームから再生（ジャンプ再生）を開始し（ステップ１４）、当該処理を終了する（これ以降は通常再生に戻る）。
【００９８】
より具体的には、制御部１１は、上記特定したコンテンツＩＤに対応する分割コンテンツデータを記憶しているか否かを判別し、記憶している場合には当該分割コンテンツデータから上記特定したキーフレーム情報に対応するキーフレームを取得し、当該キーフレームから再生を開始する。一方、上記特定したコンテンツＩＤに対応する分割コンテンツデータを記憶していない場合には、制御部１１は、当該コンテンツＩＤ及び自己のノード情報を含むキーフレーム所在問合せ（検索）メッセージ（クエリ）を生成し、これを自己のＤＨＴを用いたルーティングテーブルにしたがって他のノードＮｎに対して送出する。これにより、キーフレーム所在問合せ（検索）メッセージは、コンテンツＩＤをキーとするＤＨＴルーティングによって最終的にルートノードに到着し、当該ユーザノードの制御部１１は、当該ルートノードからコンテンツ保持ノードのノード情報を取得する。そして、当該制御部１１は、取得したノード情報にしたがって当該分割コンテンツデータを保存しているコンテンツ保持ノードに対して、上記特定したキーフレーム情報を指定してキーフレームからの送信要求をし、これに応じて送信されたキーフレームを取得し、当該キーフレームから再生を開始し、以降は、キーフレームに続くデータのストリーミング配信を受け通常再生が行われる。
【００９９】
次に、上記構造例１〜３の夫々のコンテンツカタログ情報及び分割コンテンツデータのヘッダを用いた場合の、上記ステップＳ４及びステップＳ１２における当該コンテンツＩＤ及びキーフレーム情報の特定処理の詳細を説明する。
【０１００】
（構造例１のコンテンツカタログ情報及び分割コンテンツデータのヘッダを用いた場合）
この場合、図１５に示すように、先ず、制御部１１は、上記取得したキーフレーム情報を参照して、Ｊ番目のキーフレーム情報から、Ｊ番目のキーフレームのオフセット位置F0_OFFSET（コンテンツデータの先頭からのオフセット位置）及び当該キーフレームのデータサイズF_SIZEを取得する（ステップＳ５１）。
【０１０１】
次いで、制御部１１は、変数“Ｍ”を“１”とし（ステップＳ５２）、図６に示すコンテンツカタログ情報を参照して、分割コンテンツ情報から、Ｍ番目（Ｍ＝１の場合、先頭）の分割コンテンツデータのデータサイズC_SIZE及びコンテンツＩＤを取得し、当該Ｍ番目の分割コンテンツデータのオフセット位置C_OFFSET（Ｍ＝１の場合、“０”）を算出する（ステップＳ５３）。
【０１０２】
次いで、制御部１１は、上記Ｊ番目のキーフレームが、Ｍ番目の分割コンテンツデータに含まれるか否かを判別する（ステップＳ５４）。具体的には、F0_OFFSET<C_OFFSET+C_SIZEを満たすか（つまり、上記C_OFFSET+C_SIZEで示される位置（Ｍ番目の分割コンテンツデータの終了位置）が、Ｊ番目のキーフレームのオフセット位置F0_OFFSETより大きいか（後にあるか））否かが判別される。
【０１０３】
上記Ｊ番目のキーフレームが、Ｍ番目の分割コンテンツデータに含まれない場合（つまり、F0_OFFSET<C_OFFSET+C_SIZEを満たさない場合）には（ステップＳ５４：Ｎ）、制御部１１は、“Ｍ”に“１”を加算し（ステップＳ５５）、ステップＳ５３に戻り、当該M番目の分割コンテンツデータのオフセット位置C_OFFSETを算出し、Ｍ番目の分割コンテンツデータのデータサイズC_SIZE及びコンテンツＩＤを取得し、上記と同様の処理を行う。このように、分割コンテンツデータのデータサイズC_SIZE、Ｊ番目のキーフレームのオフセット位置F0_OFFSET等に基づいて、Ｊ番目のキーフレームが含まれる分割コンテンツデータが判別されることになる。
【０１０４】
そして、上記Ｊ番目のキーフレームが、Ｍ番目の分割コンテンツデータに含まれる場合（つまり、 F0_OFFSET<C_OFFSET+C_SIZEを満たす場合）には（ステップＳ５４：Ｙ）、制御部１１は、Ｍ番目の分割コンテンツデータのコンテンツＩＤ（最後に取得したコンテンツＩＤ）を、上記Ｊ番目のキーフレームに対応する分割コンテンツデータのコンテンツＩＤとして特定する（ステップＳ５６）。
【０１０５】
次いで、制御部１１は、上記Ｊ番目のキーフレームのオフセット位置F_OFFSET（当該Ｍ番目の分割コンテンツデータの先頭からのオフセット位置）を算出（つまり、F_OFFSET＝F0_OFFSET−C_OFFSETとなる）し（ステップＳ５７）、当該算出したオフセット位置F_OFFSETと、上記ステップＳ５１で取得したＪ番目のキーフレームのデータサイズF_SIZEと、を当該Ｊ番目のキーフレームに対応するキーフレーム情報として特定する（ステップＳ５８）。
【０１０６】
（構造例２のコンテンツカタログ情報及び分割コンテンツデータのヘッダを用いた場合）
この場合、図１６に示すように、先ず、制御部１１は、上記取得したキーフレーム情報を参照して、Ｊ番目のキーフレーム情報から、分割コンテンツデータのコンテンツＩＤ、Ｊ番目のキーフレームのオフセット位置F_OFFSET（分割コンテンツデータの先頭からのオフセット位置）及びデータサイズF_SIZEを取得し（ステップＳ６１）、当該取得したコンテンツＩＤをＪ番目のキーフレームに対応する分割コンテンツデータのコンテンツＩＤとして特定し、当該取得したＪ番目のキーフレームのオフセット位置F_OFFSET及びデータサイズF_SIZEをＪ番目のキーフレームに対応するキーフレーム情報として特定する（ステップＳ６２）。
【０１０７】
（構造例３のコンテンツカタログ情報及び分割コンテンツデータのヘッダを用いた場合）
この場合、図１７に示すように、先ず、制御部１１は、上記取得したキーフレーム情報を参照して、Ｊ番目のキーフレーム情報から、Ｊ番目のキーフレームのオフセット位置F0_OFFSET（コンテンツデータの先頭からのオフセット位置）及び当該キーフレームのデータサイズF_SIZEを取得する（ステップＳ７１）。
【０１０８】
次いで、制御部１１は、変数“Ｍ”を“１”とした後、図８に示すコンテンツカタログ情報を参照して、分割コンテンツ情報から、分割データサイズC_SIZE及び先頭の分割コンテンツデータのコンテンツＩＤを取得する（ステップＳ７２）。
【０１０９】
次いで、制御部１１は、Ｍ番目（Ｍ＝１の場合、先頭）の分割コンテンツデータのオフセット位置C_OFFSET（Ｍ＝１の場合、“０”）を算出する（ステップＳ７３）。
【０１１０】
次いで、制御部１１は、上記Ｊ番目のキーフレームが、Ｍ番目の分割コンテンツデータに含まれるか否かを判別する（ステップＳ７４）。上記ステップＳ５４と同様、具体的には、F0_OFFSET<C_OFFSET+C_SIZEを満たすか否かが判別される。
【０１１１】
上記Ｊ番目のキーフレームが、Ｍ番目の分割コンテンツデータに含まれない場合（つまり、 F0_OFFSET<C_OFFSET+C_SIZEを満たさない場合）には（ステップＳ７４：Ｎ）、制御部１１は、“Ｍ”に“１”を加算した後、Ｍ番目の分割コンテンツデータのコンテンツＩＤを、所定の規則にしたがって先頭の分割コンテンツデータのコンテンツＩＤから算出し、（ステップＳ７５）、ステップＳ７３に戻る。
【０１１２】
ここで、一単位のコンテンツデータを構成する複数の分割コンテンツデータのコンテンツＩＤを互いに規則性を持つように定めておけば、先頭の分割コンテンツデータ以外のコンテンツＩＤは、その分割コンテンツデータの先頭からの順番Ｍと、先頭の分割コンテンツデータのコンテンツＩＤと、を所定の関数に代入することによって算出することができる（簡単な例で言えば、先頭（Ｍ＝１）のコンテンツＩＤに、Ｍ×Ａ（Ａは任意の値）を加算した値が、Ｍ番目（Ｍ≧２）の分割コンテンツデータのコンテンツＩＤとなる）。
【０１１３】
そして、上記Ｊ番目のキーフレームが、Ｍ番目の分割コンテンツデータに含まれる場合（つまり、 F0_OFFSET<C_OFFSET+C_SIZEを満たす場合）には（ステップＳ７４：Ｙ）、制御部１１は、Ｍ番目の分割コンテンツデータのコンテンツＩＤ（最後に取得又は算出したコンテンツＩＤ）を、上記Ｊ番目のキーフレームに対応する分割コンテンツデータのコンテンツＩＤとして特定する（ステップＳ７６）。
【０１１４】
次いで、制御部１１は、上記Ｊ番目のキーフレームのオフセット位置F_OFFSET（当該Ｍ番目の分割コンテンツデータの先頭からのオフセット位置）を算出（つまり、F_OFFSET＝F0_OFFSET−C_OFFSETとなる）し（ステップＳ７７）、当該算出したオフセット位置F_OFFSETと、上記ステップＳ７１で取得したＪ番目のキーフレームのデータサイズF_SIZEと、を当該Ｊ番目のキーフレームに対応するキーフレーム情報として特定する（ステップＳ７８）。
【０１１５】
以上説明したように、上記実施形態によれば、一単位のコンテンツデータを構成する少なくとも一つの分割コンテンツデータのヘッダ中に各分割コンテンツデータ中のキーフレームのオフセット位置を示す情報を含むキーフレーム情報を含ませておき、ユーザノードがユーザからのコンテンツデータの特殊再生指示に応じて、再生すべきキーフレームに対応するキーフレーム情報を特定し、且つ、当該再生すべきキーフレームが含まれる分割コンテンツデータのコンテンツＩＤを特定し、当該特定したキーフレーム情報及びコンテンツＩＤに基づいて当該キーフレームを、これを保存しているコンテンツ保持ノードから取得し、再生するようにしたので、一単位のコンテンツデータが、複数に分割され、その分割された分割コンテンツデータが複数のノード装置に跨って分散保存される場合であっても、例えば早送り再生、巻き戻し再生、及びシーク再生等の特殊再生をスムーズに実行することができる。また、分割コンテンツデータのヘッダからキーフレーム情報等を直ぐに取り出すことができ、分割されたコンテンツデータに対して、当該特殊再生をより効率良く実行することができる。
【０１１６】
また、コンテンツカタログ情報にキーフレーム情報を含ませる方法も考えられ、この方法では、コンテンツ数が増えるにしたがってコンテンツカタログ情報のデータサイズが大きくなりノードＮｎにおいて大きな記憶容量が必要になるが、分割コンテンツデータのヘッダにキーフレーム情報を含ませておけば、ノードＮｎにおける記憶容量を抑えることができる。
【０１１７】
上記実施形態において、図１３乃至図１７を参照して説明したノードＮｎにおける特殊再生処理は、先頭の分割コンテンツデータから再生される場合を前提にして説明したが、先頭の分割コンテンツデータ以外の分割コンテンツデータから途中再生が行われる場合についても当該特殊再生処理は同様に行われる。ただし、キーフレーム情報が先頭の分割コンテンツデータのヘッダに含まれる場合と、キーフレーム情報が全ての分割コンテンツデータのヘッダに含まれる場合と、で途中再生処理が若干異なるので、図１８及び図１９を参照して、双方の場合を比較しつつ説明する。
【０１１８】
図１８は、キーフレーム情報が先頭の分割コンテンツデータのヘッダ中にのみ含まれる場合の、ノードＮｎの制御部１１における途中再生処理を示すフローチャートであり、図１９は、キーフレーム情報が全ての分割コンテンツデータのヘッダ中に含まれる場合の、ノードＮｎの制御部１１における途中再生処理を示すフローチャートである。
【０１１９】
双方の場合共、ノードＮｎ（ユーザノード）において、制御部１１は、ユーザからの入力部２１を介してコンテンツリスト表示指示を受け付けた場合、上述したコンテンツカタログ情報を記憶部１２からＲＡＭに読み込み、当該コンテンツカタログ情報に含まれる複数のコンテンツ名（コンテンツタイトル）が記述されたコンテンツリストを表示部１６に表示させる。
【０１２０】
キーフレーム情報が先頭の分割コンテンツデータのヘッダ中にのみ含まれる場合、図１８に示すように、当該表示されたコンテンツリストにおけるコンテンツ名のうちから、ユーザにより入力部２１を介して一つのコンテンツ名が選択され、且つそのコンテンツデータＡの途中再生すべき位置が指定された場合、ユーザノードの制御部１１は、当該コンテンツ名に対応するコンテンツデータＡを構成する先頭の分割コンテンツデータＡ１のコンテンツＩＤを取得し（ステップＳ１０１）、当該取得したコンテンツＩＤ及び自己のノード情報を含むコンテンツ所在問合せ（検索）メッセージ（クエリ）を生成し、これを自己のＤＨＴを用いたルーティングテーブルにしたがって他のノードＮｎに対して送出する。これにより、コンテンツ所在問合せ（検索）メッセージは、コンテンツＩＤをキーとするＤＨＴルーティングによって最終的にルートノードに到着し、当該ユーザノードは、当該ルートノードからコンテンツ保持ノードのノード情報を取得する。
【０１２１】
そして、ユーザノードの制御部１１は、取得したノード情報にしたがって分割コンテンツデータＡ１を保存しているコンテンツ保持ノードに対して、当該分割コンテンツデータＡ１のヘッダに含まれるキーフレーム情報の送信要求をし、当該キーフレーム情報をコンテンツ保持ノードからダウンロードして記憶する（ステップＳ１０２）。
【０１２２】
次いで、ユーザノードの制御部１１は、上記コンテンツデータＡの途中再生すべき位置に対応する分割コンテンツデータ（Ａ１以外の例えばＡ３）のコンテンツＩＤを取得し、当該取得したコンテンツＩＤ及び自己のノード情報を含むコンテンツ所在問合せ（検索）メッセージ（クエリ）を生成し、これを自己のＤＨＴを用いたルーティングテーブルにしたがって他のノードＮｎに対して送出する。これにより、コンテンツ所在問合せ（検索）メッセージは、コンテンツＩＤをキーとするＤＨＴルーティングによって最終的にルートノードに到着し、当該ユーザノードは、当該ルートノードからコンテンツ保持ノードのノード情報を取得する。そして、ユーザノードの制御部１１は、上記分割コンテンツデータＡ３を保存しているコンテンツ保持ノードに対して、コンテンツ送信要求をし、当該コンテンツ保持ノードから配信されてきた分割コンテンツデータＡ３を受信し、途中再生が行われる（ステップＳ１０３）。
【０１２３】
一方、キーフレーム情報が全ての分割コンテンツデータのヘッダ中に含まれる場合、図１９に示すように、当該表示されたコンテンツリストにおけるコンテンツ名のうちから、ユーザにより入力部２１を介して一つのコンテンツ名が選択され、且つそのコンテンツデータＡの途中再生すべき位置が指定された場合、ユーザノードの制御部１１は、当該コンテンツ名に対応するコンテンツデータＡの途中再生すべき位置に対応する分割コンテンツデータ（Ａ１以外の例えばＡ３）のコンテンツＩＤを取得し（ステップＳ２０１）、当該取得したコンテンツＩＤ及び自己のノード情報を含むコンテンツ所在問合せ（検索）メッセージ（クエリ）を生成し、これを自己のＤＨＴを用いたルーティングテーブルにしたがって他のノードＮｎに対して送出する。これにより、コンテンツ所在問合せ（検索）メッセージは、コンテンツＩＤをキーとするＤＨＴルーティングによって最終的にルートノードに到着し、当該ユーザノードは、当該ルートノードからコンテンツ保持ノードのノード情報を取得する。
【０１２４】
そして、ユーザノードの制御部１１は、取得したノード情報にしたがって分割コンテンツデータＡ３を保存しているコンテンツ保持ノードに対して、当該分割コンテンツデータＡ３のヘッダに含まれるキーフレーム情報の送信要求をし、当該キーフレーム情報をコンテンツ保持ノードからダウンロードして記憶する（ステップＳ２０２）。
【０１２５】
次いで、ユーザノードの制御部１１は、上記分割コンテンツデータＡ３を保存しているコンテンツ保持ノードに対して、コンテンツ送信要求をし、当該コンテンツ保持ノードから配信されてきた分割コンテンツデータＡ３を受信し、途中再生が行われる（ステップＳ２０３）。
【０１２６】
以上のように、キーフレーム情報が先頭の分割コンテンツデータのヘッダ中にのみ含まれるようにしておけばコンテンツデータ全体のデータサイズを小さくすることができる等の利点があるが、途中再生が行われる場合、キーフレーム情報が全ての分割コンテンツデータのヘッダ中に含まれている方が、わざわざ先頭の分割コンテンツデータを保存するコンテンツ保持ノードからキーフレーム情報を取得する必要がなく、迅速にキーフレーム情報を取得することができるので、当該コンテンツデータの特殊再生をスムーズに実行することができる。
【０１２７】
なお、上記実施形態におけるコンテンツ分散保存システムＳは、ＤＨＴを利用したアルゴリズムによって形成されることを前提として説明したが、本発明はこれに限定されるものではない。例えば、各ノードＮｎは特殊再生する際に、全ての分割コンテンツデータのコンテンツＩＤ（上述したようにハッシュ関数により求めるかどうかは問わない）及び当該コンテンツＩＤに対応するノード情報（つまり、当該コンテンツＩＤに対応するコンテンツデータを保存するコンテンツ保持ノードのＩＰアドレス及びポート番号）を管理する管理サーバに対して、コンテンツカタログ情報から特定したコンテンツＩＤを送信し、これに応じて当該管理サーバから当該コンテンツＩＤに対応するノード情報を取得し、そのコンテンツ保持ノードに対してキーフレームを要求するように構成しても良い。
【０１２８】
また、上記実施形態においては、キーフレーム情報を分割コンテンツデータのヘッダに含まれる場合を例にとって説明したが、これに限定されるものではなく、ヘッダ以外の場所に含まれるようにしても構わない。
【図面の簡単な説明】
【０１２９】
【図１】本実施形態に係るコンテンツ分散保存システムにおける各ノード装置の接続態様の一例を示す図である。
【図２】ノードＮ２が保持するＤＨＴを用いたルーティングテーブルの一例を示す図である。
【図３】ＤＨＴのＩＤ空間の一例を示す概念図である。
【図４】ユーザノードから送出されたコンテンツ所在問合せ（検索）メッセージの流れの一例を、ＤＨＴのＩＤ空間にて示した概念図である。
【図５】コンテンツデータが分割され、各分割コンテンツデータ中の各キーフレームのキーフレーム情報等がコンテンツカタログ情報に記述される様子を示す概念図である。
【図６】図５（Ａ）の例の場合のコンテンツカタログ情報及び分割コンテンツデータのヘッダ（構造例１）におけるデータ構造例を示す図である。
【図７】図５（Ｂ）の例の場合のコンテンツカタログ情報及び分割コンテンツデータのヘッダ（構造例２）におけるデータ構造例を示す図である。
【図８】図５（Ｃ）の例の場合のコンテンツカタログ情報及び分割コンテンツデータのヘッダ（構造例３）におけるデータ構造例を示す図である。
【図９】図６に示すコンテンツカタログ情報及び分割コンテンツデータのヘッダ（構造例１）を用いて、早送り再生が行われる場合の様子を示す図である。
【図１０】図７に示すコンテンツカタログ情報及び分割コンテンツデータのヘッダ（構造例２）を用いて、早送り再生が行われる場合の様子を示す図である。
【図１１】図８に示すコンテンツカタログ情報及び分割コンテンツデータのヘッダ（構造例３）を用いて、早送り再生が行われる場合の様子を示す図である。
【図１２】ノードＮｎの概要構成例を示す図である。
【図１３】ノードＮｎの制御部１１における早送り再生又は巻戻し再生処理を示すフローチャートである。
【図１４】ノードＮｎの制御部１１におけるシーク(ジャンプ）再生処理を示すフローチャートである。
【図１５】図６に示すコンテンツカタログ情報及び分割コンテンツデータのヘッダ（構造例１）を用いた場合における、キーフレーム情報及びコンテンツＩＤ特定処理を示すフローチャートである。
【図１６】図７に示すコンテンツカタログ情報及び分割コンテンツデータのヘッダ（構造例２）を用いた場合における、キーフレーム情報及びコンテンツＩＤ特定処理を示すフローチャートである。
【図１７】図８に示すコンテンツカタログ情報及び分割コンテンツデータのヘッダ（構造例３）を用いた場合における、キーフレーム情報及びコンテンツＩＤ特定処理を示すフローチャートである。
【図１８】キーフレーム情報が先頭の分割コンテンツデータのヘッダ中にのみ含まれる場合の、ノードＮｎの制御部１１における途中再生処理を示すフローチャートである。
【図１９】キーフレーム情報が全ての分割コンテンツデータのヘッダ中に含まれる場合の、ノードＮｎの制御部１１における途中再生処理を示すフローチャートである。
【符号の説明】
【０１３０】
８  ネットワーク
９  オーバーレイネットワーク
１０  放送局装置
１１  制御部
１２  記憶部
１３  バッファメモリ
１４  デコーダ部
１５  映像処理部
１６  表示部
１７  音声処理部
１８  スピーカ
２０  通信部
２１  入力部
２２  バス
Ｎｎ  ノード
Ｓ  コンテンツ分散保存システム
【図１】
2008048351.tif 000003
【図２】
2008048351.tif 000004
【図３】
2008048351.tif 000005
【図４】
2008048351.tif 000006
【図５】
2008048351.tif 000007
【図６】
2008048351.tif 000008
【図７】
2008048351.tif 000009
【図８】
2008048351.tif 000010
【図９】
2008048351.tif 000011
【図１０】
2008048351.tif 000012
【図１１】
2008048351.tif 000013
【図１２】
2008048351.tif 000014
【図１３】
2008048351.tif 000015
【図１４】
2008048351.tif 000016
【図１５】
2008048351.tif 000017
【図１６】
2008048351.tif 000018
【図１７】
2008048351.tif 000019
【図１８】
2008048351.tif 000020
【図１９】
2008048351.tif 000021