(57)【要約】【課題】記憶容量の利用効率の低下を抑えてメディアデータに対する分散処理を可能にすること。【解決手段】処理部１２は、メディアデータ５０を所定サイズ単位に分割した複数の分割データを取得する。処理部１２は、オフセット情報６０に基づき、分割データの先頭に最も近いキーフレームの第１の位置と、分割データの末尾に最も近いキーフレームの第２の位置とを分割データ毎に特定し、先頭と第１の位置との間のデータを示す第１の差分情報と、末尾と第２の位置との間のデータを示す第２の差分情報とを分割データ毎に生成する。処理部１２は、第１の差分情報と第２の差分情報とを分割データに適用して得られる部分メディアデータの復号に用いられるメタデータを、分割データ毎に生成する。処理部１２は、複数の分割データを複数のノードに配置し、分割データに対応する第１の差分情報と第２の差分情報とメタデータとを当該分割データと同じノードに配置する。【選択図】図１
2020086747.tif 000002
【特許請求の範囲】
【請求項１】
時系列に符号化された複数のフレームを含むメディアデータのうちのキーフレームの位置を示すオフセット情報を記憶する記憶部と、
前記メディアデータを所定サイズ単位に分割した複数の分割データを取得し、前記オフセット情報に基づいて、分割データの先頭位置に最も近いキーフレームの第１の位置と、前記分割データの末尾位置に最も近いキーフレームの第２の位置と、を分割データ毎に特定し、前記先頭位置と前記第１の位置との間のデータを示す第１の差分情報と、前記末尾位置と前記第２の位置との間のデータを示す第２の差分情報と、を分割データ毎に生成し、前記第１の差分情報と前記第２の差分情報とを前記分割データに適用して得られる部分メディアデータの復号に用いられるメタデータを、分割データ毎に生成し、前記複数の分割データを複数のノードに配置し、前記分割データに対応する前記第１の差分情報と前記第２の差分情報と前記メタデータとを当該分割データと同じノードに配置する処理部と、
を有する情報処理装置。
【請求項２】
前記処理部は、前記メディアデータの分析指示を受け付けると、自ノードに配置された前記分割データと前記第１の差分情報と前記第２の差分情報と前記メタデータとに基づく前記部分メディアデータの生成および前記部分メディアデータの分析を前記複数のノードに実行させ、前記複数のノードから前記分析の結果を取得する、
請求項１記載の情報処理装置。
【請求項３】
前記処理部は、前記メディアデータの取得指示を受け付けると、前記複数のノードから前記複数の分割データを取得し、前記複数の分割データを結合することで前記メディアデータを復元する、
請求項２記載の情報処理装置。
【請求項４】
前記第１の差分情報は、前記メディアデータにおける前記分割データの前記先頭位置が前記第１の位置よりも前の場合、前記先頭位置から前記第１の位置の直前までの削除対象データのサイズであり、前記先頭位置が前記第１の位置よりも後の場合、前記メディアデータのうち前記第１の位置から前記先頭位置の直前までの追加対象データである、
請求項１乃至３の何れか１項に記載の情報処理装置。
【請求項５】
前記第２の差分情報は、前記メディアデータにおける前記分割データの前記末尾位置が前記第２の位置よりも前の場合、前記メディアデータのうち前記末尾位置の直後から前記第２の位置の直前までの追加対象データであり、前記末尾位置が前記第２の位置よりも後の場合、前記第２の位置から前記末尾位置までの削除対象データのサイズである、
請求項１乃至４の何れか１項に記載の情報処理装置。
【請求項６】
前記第２の差分情報は、前記分割データの前記末尾位置が前記メディアデータの末尾に対応する場合、当該分割データの前記末尾位置に対して、差分のデータなしを示す、
請求項１乃至５の何れか１項に記載の情報処理装置。
【請求項７】
コンピュータに、
時系列に符号化された複数のフレームを含むメディアデータを所定サイズ単位に分割した複数の分割データを取得し、
前記メディアデータのうちのキーフレームの位置を示すオフセット情報に基づいて、分割データの先頭位置に最も近いキーフレームの第１の位置と、前記分割データの末尾位置に最も近いキーフレームの第２の位置と、を分割データ毎に特定し、
前記先頭位置と前記第１の位置との間のデータを示す第１の差分情報と、前記末尾位置と前記第２の位置との間のデータを示す第２の差分情報と、を分割データ毎に生成し、
前記第１の差分情報と前記第２の差分情報とを前記分割データに適用して得られる部分メディアデータの復号に用いられるメタデータを、分割データ毎に生成し、
前記複数の分割データを複数のノードに配置し、前記分割データに対応する前記第１の差分情報と前記第２の差分情報と前記メタデータとを当該分割データと同じノードに配置する、
処理を実行させる情報処理プログラム。
【請求項８】
情報処理装置が、
時系列に符号化された複数のフレームを含むメディアデータを所定サイズ単位に分割した複数の分割データを取得し、
前記メディアデータのうちのキーフレームの位置を示すオフセット情報に基づいて、分割データの先頭位置に最も近いキーフレームの第１の位置と、前記分割データの末尾位置に最も近いキーフレームの第２の位置と、を分割データ毎に特定し、
前記先頭位置と前記第１の位置との間のデータを示す第１の差分情報と、前記末尾位置と前記第２の位置との間のデータを示す第２の差分情報と、を分割データ毎に生成し、
前記第１の差分情報と前記第２の差分情報とを前記分割データに適用して得られる部分メディアデータの復号に用いられるメタデータを、分割データ毎に生成し、
前記複数の分割データを複数のノードに配置し、前記分割データに対応する前記第１の差分情報と前記第２の差分情報と前記メタデータとを当該分割データと同じノードに配置し、
前記複数のノードのそれぞれが、
自ノードに配置された前記分割データと前記第１の差分情報と前記第２の差分情報と前記メタデータとに基づいて、復号可能な前記部分メディアデータを生成し、前記部分メディアデータに対する分析を行う、
分析方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は情報処理装置、情報処理プログラムおよび分析方法に関する。
【背景技術】
【０００２】
大規模データに対する分析などの処理を行う情報処理システムが利用されている。処理対象となる大規模データとして、例えば動画や音声などを含むメディアデータが挙げられる。例えば、情報処理システムは、動画データを分析することで、動画データを再生した際に描画される物体の形状の認識や動きの認識を行うことがある。
【０００３】
ところで、情報処理システムではデータを複数のノードに分散して格納することがある。例えば、分割しても意味が損なわれない意味的に分割可能なデータをストレージから読み出して分割し、分割された分割データのそれぞれを別々のノードに格納させる分散格納システムの提案がある。
【０００４】
また、複数のデータを含む複数のファイルの各々を、複数のグリッドコンピュータに配置することによって、ファイルを処理するジョブをグリッドコンピュータに実行させるジョブ管理計算機の提案もある。
【０００５】
なお、現ファイルと新ファイルで異なる部分だけを差分ファイルとして抽出して、これをバックアップファイルとして保存することにより、ディスク領域の増大を防止するとともに、旧版ファイルのファイルを復元可能とするファイル管理装置の提案もある。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００９−２５９００７号公報
【特許文献２】特開２０１１−１０３１０６号公報
【特許文献３】特開２００１−１４１９４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
複数のノードにメディアデータを分割して配置するとともに、複数のノードのそれぞれにより、メディアデータの各部に対し、分析などの所定処理を分散して実行可能にすることが考えられる。ただし、メディアデータは、先頭や末尾などの所定位置に復号用のメタデータを備えていることがあり、単純に分割しただけでは部分単位での復号を行えないことがある。
【０００８】
そこで、メディアデータを、単独で復号可能な形式の複数のサブメディアデータ（メディアデータを幾つかの時間間隔で分割し、分割後のデータに復号用メタデータを付与したもの）に予め編集し、複数のノードに配置することが考えられる。しかし、この場合、元のメディアデータを得たいときは、各サブメディアデータから復号用メタデータを除去するなどの編集処理を行い、当該編集処理後の各データを結合して元のメディアデータを復元することになる。このため、元のメディアデータを得るまでに時間がかかる。
【０００９】
一方、上記複数のサブメディアデータとともに、元のメディアデータを単純に分割した分割データを、複数のノードに配置しておくことも考えられる。この場合、元のメディアデータを得るには、各分割データを結合すればよく、復号用メタデータの除去などの編集処理を実行しなくてよいので、元のメディアデータを取得するための時間の短縮が見込める。しかし、この方法では、各ノードは、サブメディアデータと分割データとを両方保持することになり、各ノードの記憶容量の利用効率が低下する。
【００１０】
１つの側面では、本発明は、記憶容量の利用効率の低下を抑えてメディアデータに対する分散処理を可能にする情報処理装置、情報処理プログラムおよび分析方法を提供することを目的とする。
【課題を解決するための手段】
【００１１】
１つの態様では、情報処理装置が提供される。この情報処理装置は、記憶部と処理部とを有する。記憶部は、時系列に符号化された複数のフレームを含むメディアデータのうちのキーフレームの位置を示すオフセット情報を記憶する。処理部は、メディアデータを所定サイズ単位に分割した複数の分割データを取得し、オフセット情報に基づいて、分割データの先頭位置に最も近いキーフレームの第１の位置と、分割データの末尾位置に最も近いキーフレームの第２の位置と、を分割データ毎に特定し、先頭位置と第１の位置との間のデータを示す第１の差分情報と、末尾位置と第２の位置との間のデータを示す第２の差分情報と、を分割データ毎に生成し、第１の差分情報と第２の差分情報とを分割データに適用して得られる部分メディアデータの復号に用いられるメタデータを、分割データ毎に生成し、複数の分割データを複数のノードに配置し、分割データに対応する第１の差分情報と第２の差分情報とメタデータとを当該分割データと同じノードに配置する。
【００１２】
また、１つの態様では、コンピュータによって実行される情報処理プログラムが提供される。
また、１つの態様では、分析方法が提供される。この分析方法では、情報処理装置が、時系列に符号化された複数のフレームを含むメディアデータを所定サイズ単位に分割した複数の分割データを取得し、メディアデータのうちのキーフレームの位置を示すオフセット情報に基づいて、分割データの先頭位置に最も近いキーフレームの第１の位置と、分割データの末尾位置に最も近いキーフレームの第２の位置と、を分割データ毎に特定し、先頭位置と第１の位置との間のデータを示す第１の差分情報と、末尾位置と第２の位置との間のデータを示す第２の差分情報と、を分割データ毎に生成し、第１の差分情報と第２の差分情報とを分割データに適用して得られる部分メディアデータの復号に用いられるメタデータを、分割データ毎に生成し、複数の分割データを複数のノードに配置し、分割データに対応する第１の差分情報と第２の差分情報とメタデータとを当該分割データと同じノードに配置する。複数のノードのそれぞれが、自ノードに配置された分割データと第１の差分情報と第２の差分情報とメタデータとに基づいて、復号可能な部分メディアデータを生成し、部分メディアデータに対する分析を行う。
【発明の効果】
【００１３】
１つの側面では、記憶容量の利用効率の低下を抑えてメディアデータに対する分散処理を可能にできる。
【図面の簡単な説明】
【００１４】
【図１】第１の実施の形態の情報処理装置を示す図である。
【図２】第２の実施の形態の情報処理システムの例を示す図である。
【図３】クライアントのハードウェア例を示すブロック図である。
【図４】クライアントの機能例を示す図である。
【図５】データ管理ノードの機能例を示す図である。
【図６】データノードの機能例を示す図である。
【図７】動画データの例を示す図である。
【図８】オフセット情報の例を示す図である。
【図９】動画データの分割例を示す図である。
【図１０】配置データ管理テーブルの例を示す図である。
【図１１】データ管理テーブルの例を示す図である。
【図１２】データノードに対するデータ配置例を示す図である。
【図１３】データ保存の例を示すフローチャートである。
【図１４】差分データ生成の例を示すフローチャートである。
【図１５】動画データ取得の例を示すフローチャートである。
【図１６】データ分析の例を示すフローチャートである。
【図１７】データノード処理の例を示すフローチャートである。
【発明を実施するための形態】
【００１５】
以下、本実施の形態について図面を参照して説明する。
［第１の実施の形態］
第１の実施の形態を説明する。
【００１６】
図１は、第１の実施の形態の情報処理装置を示す図である。
情報処理装置１０は、ノード２０，３０，４０に接続されている。情報処理装置１０およびノード２０，３０，４０は、ネットワーク（図示を省略している）に接続されてもよい。ノード２０，３０，４０は、メディアデータ５０の格納および分析に用いられる。
【００１７】
ここで、メディアデータ５０は、例えば動画データであり、時系列に符号化された複数のフレームを含む。メディアデータ５０は音声データを含んでもよい。メディアデータ５０では、フレーム間予測によりデータが圧縮されている。エンコード形式として、例えばＨ．２６４（H.264/MPEG-4 AVC）やＨ．２６５（H.265/MPEG-H HEVC）などが挙げられる。メディアデータ５０に含まれるフレームには次の種類がある。
【００１８】
１つ目は、キーフレームである。キーフレームはＩフレームと呼ばれることもある。キーフレームは、フレーム間予測の基準となるフレームで、自フレーム単体で復号可能なフレーム（他のフレームを参照しなくても復号可能なフレーム）である。２つ目は、Ｐフレームである。Ｐフレームは、自フレームよりも前のフレームに対する差分のフレームである。３つ目は、Ｂフレームである。Ｂフレームは、自フレームの前後のフレームに対する差分のフレームである。
【００１９】
メディアデータ５０の所定位置（例えば、先頭または末尾）には、メタデータｍ０が付加されている。メタデータｍ０は、メディアデータ５０の復号に用いられるデータであり、データ形式、フレームオフセット、フレームレートなどの情報を含む。下記の例では、メタデータｍ０がメディアデータ５０の先頭に付加されている場合を示す。ただし、メタデータｍ０は、メディアデータ５０の末尾に付加されてもよい。なお、図中、メタデータを「メタ」と略記することがある。
【００２０】
例えば、ノード２０，３０，４０は、メディアデータ５０を分析することで、メディアデータ５０により動画を再生した際に描画される物体の形状の認識や動きの認識を行う。これにより、例えば、監視エリアにおける異常や不審人物の検知などを可能にする。
【００２１】
情報処理装置１０は、メディアデータ５０を複数の分割データに分割し、複数の分割データをノード２０，３０，４０に格納する。情報処理装置１０は、メディアデータ５０を取得する場合、ノード２０，３０，４０に格納された複数の分割データを取得し、複数の分割データを結合することで、メディアデータ５０を復元する。更に、情報処理装置１０は、ノード２０，３０，４０のそれぞれにより、メディアデータ５０の部分単位の分析を分散して実行させる機能を提供する。
【００２２】
情報処理装置１０は、記憶部１１および処理部１２を有する。
記憶部１１は、ＲＡＭ（Random Access Memory）などの揮発性記憶装置でもよいし、ＨＤＤ（Hard Disk Drive）やフラッシュメモリなどの不揮発性記憶装置でもよい。処理部１２は、ＣＰＵ（Central Processing Unit）、ＤＳＰ（Digital Signal Processor）、ＡＳＩＣ（Application Specific Integrated Circuit）、ＦＰＧＡ（Field Programmable Gate Array）などを含み得る。処理部１２はプログラムを実行するプロセッサでもよい。ここでいう「プロセッサ」には、複数のプロセッサの集合（マルチプロセッサ）も含まれ得る。
【００２３】
記憶部１１は、オフセット情報６０を含む。オフセット情報６０は、メディアデータ５０に含まれるキーフレームの位置（メディアデータ５０の先頭位置ｐ０からのオフセット（例えば、バイト（Bytes）の単位で表される）を示す情報である。例えば、オフセット情報６０は、メタデータｍ０に基づいて、処理部１２により生成され、記憶部１１に格納される。一例として、オフセット情報６０は、キーフレームの位置ｋ１，ｋ２，…，ｋ９を含む。
【００２４】
処理部１２は、ノード２０，３０，４０への格納対象であるメディアデータ５０を取得すると、メディアデータ５０を記憶部１１に格納し、次のように分割する。
処理部１２は、メディアデータ５０を所定サイズ単位に分割し、複数の分割データを取得する。例えば、格納先のノード２０，３０，４０が３つなので、処理部１２は、メディアデータ５０を所定サイズ毎に３つの分割データＤ１，Ｄ２，Ｄ３に分割する。分割位置をｄ１，ｄ２とする。分割データＤ１，Ｄ２，Ｄ３のサイズは同じでもよい。または、分割データＤ１，Ｄ２のサイズは同じであるが末尾の分割データＤ３のサイズは分割データＤ１，Ｄ２のサイズより小さくてもよい。
【００２５】
このとき、分割データＤ１の先頭位置はｐ０であり、末尾位置は（ｄ１−１）である。（ｄ１−１）は、位置ｄ１の直前の位置を示す。分割データＤ２の先頭位置は（分割位置）ｄ１であり、末尾位置は（ｄ２−１）である。（ｄ２−１）は、位置ｄ２の直前の位置を示す。分割データＤ３の先頭位置は（分割位置）ｄ２であり、末尾位置はｐ１である。
【００２６】
処理部１２は、記憶部１１に記憶されたオフセット情報６０に基づいて、分割データの先頭位置に最も近いキーフレームの第１の位置と、分割データの末尾位置に最も近いキーフレームの第２の位置とを、分割データ毎に特定する。
【００２７】
例えば、分割データＤ１に対して、処理部１２は、分割データＤ１の先頭位置ｐ０に最も近いキーフレームの位置ｋ１と、分割データＤ１の末尾位置（ｄ１−１）に最も近いキーフレームの位置ｋ５を特定する。
【００２８】
また、分割データＤ２に対して、処理部１２は、分割データＤ２の先頭位置ｄ１に最も近いキーフレームの位置ｋ５と、分割データＤ２の末尾位置（ｄ２−１）に最も近いキーフレームの位置ｋ８を特定する。
【００２９】
更に、分割データＤ３に対して、処理部１２は、分割データＤ３の先頭位置ｄ２に最も近いキーフレームの位置ｋ８を特定する。分割データＤ３の末尾位置ｐ１は、メディアデータ５０の末尾位置ｐ１に一致するので、処理部１２は、分割データＤ３に対して、末尾位置ｐ１に最も近いキーフレームの位置を特定しなくてよい。
【００３０】
処理部１２は、分割フレームの先頭位置と第１の位置との間のデータを示す第１の差分情報と、当該分割フレームの末尾位置と第２の位置との間のデータを示す第２の差分情報と、を分割データ毎に生成する。なお、図中、差分情報を「差分」と略記することがある。
【００３１】
第１の差分情報は、メディアデータ５０における分割データの先頭位置が第１の位置よりも前の場合、当該先頭位置から第１の位置の直前までに相当する削除対象データのサイズである。第１の差分情報は、当該先頭位置が第１の位置よりも後の場合、メディアデータ５０のうち第１の位置から当該先頭位置の直前までに相当する追加対象データである。なお、分割データの先頭位置が第１の位置に一致する場合、第１の差分情報は、当該分割データの先頭位置に対して差分のデータなしを示す。
【００３２】
第２の差分情報は、メディアデータ５０における分割データの末尾位置が第２の位置よりも前の場合、メディアデータ５０のうち当該末尾位置の直後から第２の位置の直前までに相当する追加対象データである。第２の差分情報は、当該末尾位置が第２の位置よりも後の場合、第２の位置から当該末尾位置までに相当する削除対象データのサイズである。なお、分割データの末尾位置が第２の位置に一致する場合、第２の差分情報は、当該分割データの末尾フレームのサイズ（削除対象データのサイズ）を示す。また、分割データの末尾位置がメディアデータ５０の末尾に対応する場合、第２の差分情報は、当該分割データの末尾位置に対して、差分のデータなしを示す。
【００３３】
例えば、分割データＤ１に対して、処理部１２は、先頭位置ｐ０とキーフレーム位置ｋ１との間のデータを示す差分情報Δ１２と、末尾位置（ｄ１−１）とキーフレーム位置ｋ５との間のデータを示す差分情報Δ２１とを生成する。ここで、ｐ０≦ｋ１である。この場合、差分情報Δ１２は、分割データＤ１から除去するデータに相当し、例えば、先頭位置ｐ０とキーフレーム位置ｋ１との間のデータ（キーフレーム位置ｋ１のデータを含まない）のサイズを示す。また、（ｄ１−１）＜ｋ５である。この場合、差分情報Δ２１は、分割データＤ１に追加するデータに相当し、例えば、末尾位置（ｄ１−１）とキーフレーム位置ｋ５との間のデータ（末尾位置（ｄ１−１）のデータと、キーフレーム位置ｋ５のデータを含まない）である。
【００３４】
また、分割データＤ２に対して、処理部１２は、先頭位置ｄ１とキーフレーム位置ｋ５との間のデータを示す差分情報Δ２２と、末尾位置（ｄ２−１）とキーフレーム位置ｋ８との間のデータを示す差分情報Δ３１とを生成する。ｄ１≦ｋ５である。この場合、差分情報Δ２２は、分割データＤ２から除去するデータに相当し、例えば、先頭位置ｄ１とキーフレーム位置ｋ５との間のデータ（キーフレーム位置ｋ５のデータを含まない）のサイズを示す。また、（ｄ２−１）＜ｋ８である。この場合、差分情報Δ３１は、分割データＤ２に追加するデータに相当し、例えば、末尾位置（ｄ２−１）とキーフレーム位置ｋ８との間のデータ（末尾位置（ｄ２−１）のデータと、キーフレーム位置ｋ８のデータを含まない）である。
【００３５】
更に、分割データＤ３に対して、処理部１２は、先頭位置ｄ２とキーフレーム位置ｋ８との間のデータを示す差分情報Δ３２を生成する。ｄ２≦ｋ８である。この場合、差分情報Δ３２は、分割データＤ３から除去するデータに相当し、例えば、先頭位置ｄ２とキーフレーム位置ｋ８との間のデータ（キーフレーム位置ｋ８のデータを含まない）のサイズを示す。
【００３６】
なお、上記の例では、ある分割データに対して、（先頭位置）≦（先頭位置から最も近いキーフレーム位置）となる場合を主に説明した。一方、（先頭位置）＞（先頭位置から最も近いキーフレーム位置）となることもある。この場合、第１の差分情報は、当該分割データに追加するデータに相当し、（先頭位置から最も近いキーフレーム位置）と（先頭位置）との間のデータ（先頭位置のデータを含まない）である。
【００３７】
また、上記の例では、ある分割データに対して、（末尾位置）＜（末尾位置から最も近いキーフレーム位置）となる場合を主に説明した。一方、（末尾位置）≧（末尾位置から最も近いキーフレーム位置）となることもある。この場合、第２の差分情報は、当該分割データから除去するデータに相当し、（末尾位置から最も近いキーフレーム位置）と（末尾位置）との間のデータのサイズを示す。
【００３８】
処理部１２は、第１の差分情報と第２の差分情報とを分割データに適用して得られる部分メディアデータの復号に用いられるメタデータを、分割データ毎に生成する。
例えば、分割データＤ１に対して、処理部１２は、差分情報Δ１２，Δ２１を分割データＤ１に適用して得られる部分メディアデータの復号に用いられるメタデータｍ１を生成する。また、分割データＤ２に対して、処理部１２は、差分情報Δ２２，Δ３１を分割データＤ２に適用して得られる部分メディアデータの復号に用いられるメタデータｍ２を生成する。更に、分割データＤ３に対して、処理部１２は、差分情報Δ３２を分割データＤ３に適用して得られる部分メディアデータの復号に用いられるメタデータｍ３を生成する。なお、メタデータｍ１，ｍ２，ｍ３のサイズは、分割データに比べて非常に小さい。
【００３９】
処理部１２は、複数の分割データを複数のノードに配置する。また、処理部１２は、分割データに対応する第１の差分情報と第２の差分情報とメタデータとを当該分割データと同じノードに配置する。
【００４０】
例えば、処理部１２は、分割データＤ１をノード２０に、分割データＤ２をノード３０に、分割データＤ３をノード４０に、それぞれ配置する。また、処理部１２は、分割データＤ１に対応する差分情報Δ１２，Δ２１とメタデータｍ１とをノード２０に配置する。処理部１２は、分割データＤ２に対応する差分情報Δ２２，Δ３１とメタデータｍ２とをノード３０に配置する。処理部１２は、分割データＤ３に対応する差分情報Δ３２とメタデータｍ３とをノード４０に配置する。
【００４１】
情報処理装置１０によれば、メディアデータを所定サイズ単位に分割した複数の分割データが取得される。オフセット情報に基づいて、分割データの先頭位置に最も近いキーフレームの第１の位置と、分割データの末尾位置に最も近いキーフレームの第２の位置と、が分割データ毎に特定される。先頭位置と第１の位置との間のデータを示す第１の差分情報と、末尾位置と第２の位置との間のデータを示す第２の差分情報と、が分割データ毎に生成される。第１の差分情報と第２の差分情報とを分割データに適用して得られる部分メディアデータの復号に用いられるメタデータが、分割データ毎に生成される。複数の分割データが複数のノードに配置される。分割データに対応する第１の差分情報と第２の差分情報とメタデータとが当該分割データと同じノードに配置される。
【００４２】
これにより、記憶容量の利用効率の低下を抑えてメディアデータに対する分散処理が可能になる。具体的には、次の通りである。
ノード２０，３０，４０は、メディアデータ５０の格納用途にも用いられる。このため、ユーザがメディアデータ５０を取得したいときには、メディアデータ５０を高速に取得可能にすることが好ましい。この点、情報処理装置１０は、メディアデータ５０を所定サイズ単位に単純に分割した分割データＤ１，Ｄ２，Ｄ３を、ノード２０，３０，４０に格納する。このため、情報処理装置１０は、ノード２０，３０，４０に格納された分割データＤ１，Ｄ２，Ｄ３を取得して、分割順と同じ順に結合すればよく、その他の編集処理を行わなくてよいため、メディアデータ５０を高速に取得可能である。
【００４３】
また、ノード２０，３０，４０は、ノード２０，３０，４０に配置した差分情報およびメタデータを分割データに適用して部分メディアデータを生成できる。このため、メディアデータ５０の分析を行う場合、ノード２０，３０，４０のそれぞれは、生成した部分メディアデータに対して、分析などの処理を分散して行える。ノード２０，３０，４０の各自が保持する分割データに対する差分情報の適用方法は、情報処理装置１０により指示される。例えば、情報処理装置１０は、分析処理を実行させるためのプログラムを送信してもよい。この場合、ノード２０，３０，４０は、当該プログラムを実行することで、自ノードが保持する部分メディアデータに対する分析を行う。
【００４４】
このように、複数のノードのそれぞれは、自ノードに配置された分割データと第１の差分情報と第２の差分情報とメタデータとに基づいて、復号可能な部分メディアデータを生成し、部分メディアデータに対する分析を行う。例えば、何れかのノードに各分割データを集めて結合し、当該ノードによりメディアデータ５０の全体に対して分析処理を行うことも考えられるが、この方法では処理に時間がかかる。一方、情報処理装置１０は、メディアデータ５０に対する分析などの処理をノード２０，３０，４０により分散実行可能にすることで、処理の高速化を図れる。例えば、メディアデータ５０を３つのノード２０，３０，４０で分散処理することで、１つのノードで処理するよりも概ね１／３の時間に処理時間を短縮可能である。
【００４５】
また、データを保持する各ノードにより処理を実行する手法は近傍処理と呼ばれることがある。近傍処理により、対象データを保持する各ノードにより処理を分散実行させることで、分析のためのノード間、または、各ノードと情報処理装置１０との間の通信を削減でき、処理を一層高速化できる。
【００４６】
特に、ノード２０，３０，４０には、分割データから部分メディアデータを生成するために用いられる差分情報と部分メディアデータの復元用のメタデータとを配置すればよく、部分メディアデータの全てを配置しなくてよい。すなわち、分割データと、部分メディアデータのうちの差分情報のみと、当該部分メディアデータを復号するためのメタデータとをノード２０，３０，４０に配置すればよい。したがって、分割データと、部分メディアデータとの両方を各ノードに配置するよりも、各ノードにおいて使用される記憶容量を低減できる。こうして、各ノードによる記憶容量の利用効率の低下を抑えてメディアデータに対する分散処理が可能になる。
【００４７】
［第２の実施の形態］
次に、第２の実施の形態を説明する。
図２は、第２の実施の形態の情報処理システムの例を示す図である。
【００４８】
第２の実施の形態の情報処理システムは、クライアント１００、データ管理ノード２００およびデータノード３００，４００，５００を有する。クライアント１００、データ管理ノード２００およびデータノード３００，４００，５００は、ネットワーク７０に接続されている。ネットワーク７０は、例えば、ＬＡＮ（Local Area Network）である。
【００４９】
クライアント１００は、データノード３００，４００，５００にメディアデータを分割して格納するクライアントコンピュータである。ただし、クライアント１００の機能は、図示を省略しているクライアント端末の要求を受け付けて、データノード３００，４００，５００にメディアデータを分割して格納するサービスを提供するサーバコンピュータ（フロントエンドサーバ）により実現されてもよい。クライアント１００は、第１の実施の形態の情報処理装置１０の一例である。
【００５０】
データ管理ノード２００は、メディアデータの名称と、当該メディアデータを分割した分割データの格納先のデータノードとを対応付ける情報を管理するサーバコンピュータである。例えば、データ管理ノード２００は、メディアデータの名称（例えば、ファイル名）を含む問い合わせをクライアント１００から受信する。すると、データ管理ノード２００は、当該メディアデータの名称に対応する分割データの格納先のパス（データノードを示す情報を含む）を、クライアント１００に提供する。
【００５１】
データノード３００，４００，５００は、メディアデータを分割した分割データを分散して保持する。データノード３００，４００，５００は、第１の実施の形態のノード２０，３０，４０の一例である。なお、データノード３００，４００，５００の数は、３つに限らず、２つまたは４以上でもよい。
【００５２】
例えば、第２の実施の形態の情報処理システムにおける分散処理のフレームワークの一例として、Ｈａｄｏｏｐ（登録商標）が挙げられる。Ｈａｄｏｏｐでは、ＨＤＦＳ（Hadoop Distributed File System）と呼ばれる分散ファイルシステムを用意し、データが保存されているノードで処理を行うようにすることで、特定の処理ノードへのデータ転送時間を削減し、処理を高速化する。
【００５３】
図３は、クライアントのハードウェア例を示すブロック図である。
クライアント１００は、ＣＰＵ１０１、ＲＡＭ１０２、ＨＤＤ１０３、画像信号処理部１０４、入力信号処理部１０５、媒体リーダ１０６および通信ＩＦ（InterFace）１０７を有する。なお、ＣＰＵ１０１は、第１の実施の形態の処理部１２に対応する。ＲＡＭ１０２またはＨＤＤ１０３は、第１の実施の形態の記憶部１１に対応する。
【００５４】
ＣＰＵ１０１は、プログラムの命令を実行するプロセッサである。ＣＰＵ１０１は、ＨＤＤ１０３に記憶されたプログラムやデータの少なくとも一部をＲＡＭ１０２にロードし、プログラムを実行する。なお、ＣＰＵ１０１は複数のプロセッサコアを含んでもよい。また、クライアント１００は複数のプロセッサを有してもよい。以下で説明する処理は複数のプロセッサまたはプロセッサコアを用いて並列に実行されてもよい。また、複数のプロセッサの集合を「マルチプロセッサ」または単に「プロセッサ」と言うことがある。
【００５５】
ＲＡＭ１０２は、ＣＰＵ１０１が実行するプログラムやＣＰＵ１０１が演算に用いるデータを一時的に記憶する揮発性の半導体メモリである。なお、クライアント１００は、ＲＡＭ以外の種類のメモリを備えてもよく、複数個のメモリを備えてもよい。
【００５６】
ＨＤＤ１０３は、ＯＳ（Operating System）やミドルウェアやアプリケーションソフトウェアなどのソフトウェアのプログラム、および、データを記憶する不揮発性の記憶装置である。なお、クライアント１００は、フラッシュメモリやＳＳＤ（Solid State Drive）などの他の種類の記憶装置を備えてもよく、複数の不揮発性の記憶装置を備えてもよい。
【００５７】
画像信号処理部１０４は、ＣＰＵ１０１からの命令に従って、クライアント１００に接続されたディスプレイ１１１に画像を出力する。ディスプレイ１１１としては、ＣＲＴ（Cathode Ray Tube）ディスプレイ、液晶ディスプレイ（ＬＣＤ：Liquid Crystal Display）、プラズマディスプレイ、有機ＥＬ（ＯＥＬ：Organic Electro-Luminescence）ディスプレイなど、任意の種類のディスプレイを用いることができる。
【００５８】
入力信号処理部１０５は、クライアント１００に接続された入力デバイス１１２から入力信号を取得し、ＣＰＵ１０１に出力する。入力デバイス１１２としては、マウス・タッチパネル・タッチパッド・トラックボールなどのポインティングデバイス、キーボード、リモートコントローラ、ボタンスイッチなどを用いることができる。また、クライアント１００に、複数の種類の入力デバイスが接続されていてもよい。
【００５９】
媒体リーダ１０６は、記録媒体１１３に記録されたプログラムやデータを読み取る読み取り装置である。記録媒体１１３として、例えば、磁気ディスク、光ディスク、光磁気ディスク（ＭＯ：Magneto-Optical disk）、半導体メモリなどを使用できる。磁気ディスクには、フレキシブルディスク（ＦＤ：Flexible Disk）やＨＤＤが含まれる。光ディスクには、ＣＤ（Compact Disc）やＤＶＤ（Digital Versatile Disc）が含まれる。
【００６０】
媒体リーダ１０６は、例えば、記録媒体１１３から読み取ったプログラムやデータを、ＲＡＭ１０２やＨＤＤ１０３などの他の記録媒体にコピーする。読み取られたプログラムは、例えば、ＣＰＵ１０１によって実行される。なお、記録媒体１１３は可搬型記録媒体であってもよく、プログラムやデータの配布に用いられることがある。また、記録媒体１１３やＨＤＤ１０３を、コンピュータ読み取り可能な記録媒体と言うことがある。
【００６１】
通信ＩＦ１０７は、ネットワーク７０に接続され、ネットワーク７０を介して他のコンピュータと通信を行うインタフェースである。通信ＩＦ１０７は、例えば、スイッチやルータなどの通信装置とケーブルで接続される。
【００６２】
なお、データ管理ノード２００およびデータノード３００，４００，５００も、クライアント１００と同様のハードウェアにより実現される。
図４は、クライアントの機能例を示す図である。
【００６３】
クライアント１００は、配置制御部１２０、動画データ取得部１３０および分析制御部１４０を有する。配置制御部１２０、動画データ取得部１３０および分析制御部１４０の機能は、ＣＰＵ１０１がＲＡＭ１０２に記憶されたプログラムを実行することで実現される。
【００６４】
配置制御部１２０は、メディアデータを分割し、データノード３００，４００，５００に分散して配置する。以下では、メディアデータとして動画データを例示して説明する。配置制御部１２０は、動画データ記憶部１２１、オフセット情報記憶部１２２、配置データ記憶部１２３、キーフレームオフセット取得部１２４、動画データ分割部１２５、近傍キーフレーム取得部１２６、メタデータ生成部１２７、差分データ生成部１２８およびデータ配置部１２９を有する。動画データ記憶部１２１、オフセット情報記憶部１２２および配置データ記憶部１２３は、ＲＡＭ１０２またはＨＤＤ１０３に確保された記憶領域により実現される。
【００６５】
動画データ記憶部１２１は、データノード３００，４００，５００に配置する動画データを記憶する。
オフセット情報記憶部１２２は、オフセット情報を記憶する。オフセット情報は、動画データに含まれるキーフレームの先頭からのオフセットを示す。以下では「オフセット」という場合、動画データの先頭からのオフセットを示す。
【００６６】
動画データ分割部１２５は、動画データ記憶部１２１に記憶された動画データを所定サイズ単位（例えば、１２８ＭＢ（Mega Bytes））に分割して分割データを生成し、配置データ記憶部１２３に格納する。
【００６７】
近傍キーフレーム取得部１２６は、近傍キーフレームの先頭位置を取得する。近傍キーフレームは、分割データの先頭オフセットに最も近いキーフレーム、または、分割データの末尾オフセットに最も近いキーフレームである。
【００６８】
メタデータ生成部１２７は、部分動画データの復号に用いられるメタデータを生成する。部分動画データは、分割データに対して差分データを適用することで生成される動画データの一部分である。差分データは、差分データ生成部１２８により生成される。メタデータ生成部１２７は、該当の分割データに対応付けて、生成したメタデータを配置データ記憶部１２３に格納する。
【００６９】
差分データ生成部１２８は、分割データに対する、復号可能な部分動画データとの差分である差分データを生成する。差分データは、分割データの先頭または末尾に追加すべきデータそのもの（バイナリデータ）であることがある。差分データは、分割データの先頭または末尾から削除すべきデータのサイズを示すことがある。差分データ生成部１２８は、該当の分割データに対応付けて、生成した差分データを配置データ記憶部１２３に格納する。
【００７０】
データ配置部１２９は、配置データ記憶部１２３に記憶された配置データを、データノード３００，４００，５００に配置する。データ配置部１２９は、分割データと、当該分割データに対応する差分データとメタデータとを同一のデータノードに送信し、保持させる。データ配置部１２９は、動画データのファイル名と、当該動画データに対応する分割データの配置先のデータノードを示す情報を、データ管理ノード２００に送信する。データ配置部１２９は、各分割データを複数のデータノードに分散配置すると、動画データ記憶部１２１に格納された動画データを削除する。
【００７１】
動画データ取得部１３０は、ユーザにより取得対象の動画データのファイル名が入力されると、当該ファイル名に対応する動画データを取得する。具体的には、動画データ取得部１３０は、該当のファイル名をデータ管理ノード２００に問い合わせることで、各分割データの格納先を特定する。そして、動画データ取得部１３０は、データノード３００，４００，５００から分割データを取得し、各分割データを結合することで動画データを取得する。動画データ取得部１３０により取得された動画データは、例えば、所定の動画再生用のソフトウェアにより再生することができる。
【００７２】
分析制御部１４０は、ユーザにより分析対象の動画データのファイル名が入力されると、当該ファイル名に対応する分割データの分析をデータノード３００，４００，５００に実行させる。具体的には、分析制御部１４０は、該当のファイル名をデータ管理ノード２００に問い合わせることで、各分割データの格納先を特定する。分析制御部１４０は、データノード３００，４００，５００に分析を実行させるためのプログラムを送信する。分析制御部１４０は、当該プログラムを実行させることで、データノード３００，４００，５００により部分動画データを生成させ、部分動画データに対する分析を分散実行させる。分析制御部１４０は、データノード３００，４００，５００のそれぞれによる分析結果を取得し、各分析結果を統合して、ユーザに提供する。
【００７３】
図５は、データ管理ノードの機能例を示す図である。
データ管理ノード２００は、管理データ記憶部２１０およびデータ格納先提供部２２０を有する。管理データ記憶部２１０は、データ管理ノード２００が備えるＲＡＭやＨＤＤなどの記憶領域を用いて実現される。データ格納先提供部２２０は、データ管理ノード２００が備えるＣＰＵが、データ管理ノード２００が備えるＲＡＭに記憶されたプログラムを実行することで実現される。
【００７４】
管理データ記憶部２１０は、データ管理テーブルを記憶する。データ管理テーブルは、動画データのファイル名と、動画データを分割した分割データの配置先のパスとを管理するためのデータである。
【００７５】
データ格納先提供部２２０は、管理データ記憶部２１０に記憶されたデータ管理テーブルに、動画データのファイル名と、分割データの配置先のパスとを登録する。データ格納先提供部２２０は、クライアント１００から動画データのファイル名を受け付けると、当該ファイル名に対応する分割データの配置先のパスをクライアント１００に提供する。
【００７６】
図６は、データノードの機能例を示す図である。
データノード３００は、データ記憶部３１０、データ取得部３２０およびデータ処理部３３０を有する。データ記憶部３１０は、データノード３００が備えるＨＤＤなどの補助記憶装置により実現される。データ取得部３２０およびデータ処理部３３０は、データノード３００が備えるＣＰＵが、データノード３００が備えるＲＡＭに記憶されたプログラムを実行することで実現される。データノード４００，５００もデータノード３００と同様の機能を有する。
【００７７】
データ記憶部３１０は、分割データ、分割データに対する差分データおよびメタデータを記憶する。
データ取得部３２０は、分割データ、分割データに対する差分データおよびメタデータをクライアント１００から取得し、データ記憶部３１０に格納する。また、データ取得部３２０は、クライアント１００から指定された分割データを、データ記憶部３１０から読み出し、クライアント１００に送信する。
【００７８】
データ処理部３３０は、クライアント１００から送信されたプログラムに応じた処理を実行する。具体的には、データ処理部３３０は、分割データに対して差分データを適用し、メタデータを付加することで、部分動画データを生成し、部分動画データを復号して、部分動画データにより描画される動画に含まれる物体の形状や物体の動きの認識を行う。データ処理部３３０は、例えば、当該認識により物体の特定を行い、特定した物体を示す情報をクライアント１００に送信する。
【００７９】
図７は、動画データの例を示す図である。
動画データ６００は、動画データ記憶部１２１に記憶される。一例として、動画データは、ＭＰ４コンテナにＨ．２６４エンコード形式で保存されているものとする。ただし、動画データの形式は上記形式に限らず、下記に示す動画データの構成と同様の構成が用いられる他の形式（例えば、Ｈ．２６５など）でもよい。
【００８０】
動画データ６００は、メタデータセグメント６１０およびメディアセグメント６２０を含む。
メタデータセグメント６１０は、復号用のメタデータを含むセグメントである。メタデータセグメント６１０は、動画データ６００の先頭にある。ただし、メタデータセグメント６１０は、動画データ６００の末尾でもよい。メタデータセグメント６１０は、ｆｔｙｐおよびｍｏｏｖを含む。ｆｔｙｐは、ファイル形式を示すデータである。ｍｏｏｖは、動画データ６００の先頭位置からの各フレームのオフセットやフレームレートなどを示すデータである。
【００８１】
メディアセグメント６２０は、時系列に符号化された複数のフレームのデータ（ｍｄａｔ）を含むセグメントである。図７では、図面の左側から右側へ向かう方向が、時間の正方向である。複数のフレームは、Ｉフレーム（キーフレーム）、ＰフレームおよびＢフレームを含む。
【００８２】
図８は、オフセット情報の例を示す図である。
オフセット情報１２２ａは、オフセット情報記憶部１２２に記憶される。オフセット情報１２２ａは、動画データ６００の先頭位置に対するキーフレームのオフセットを示す。オフセットの単位は、例えば、バイト（Bytes）である。オフセット情報１２２ａは、キーフレームオフセット取得部１２４により動画データ６００に含まれるメタデータセグメント６１０に基づいて生成され、オフセット情報記憶部１２２に格納される。
【００８３】
例えば、オフセット情報１２２ａには、キーフレームのオフセットとして、１８５９７５（Bytes）、２１３２６０（Bytes）、３５０８１６（Bytes）、…という情報が含まれる。
【００８４】
図９は、動画データの分割例を示す図である。
第２の実施の形態の例では、動画データ６００をデータノード３００，４００，５００の３つに分散して配置する。このため、動画データ分割部１２５は、動画データ６００を固定サイズ単位に３つの分割データＤ１１，Ｄ１２，Ｄ１３に分割する。分割データＤ１１，Ｄ１２，Ｄ１３のサイズは同一でもよい。分割データＤ１１，Ｄ１２のサイズは同じであるが、分割データＤ１３のサイズは、分割データＤ１１，Ｄ１２のサイズより小さくてもよい。
【００８５】
分割データＤ１１の先頭位置は、動画データ６００の先頭位置に相当する。分割データＤ１２の先頭位置は、１つ目の分割位置ｄ１１に相当する。分割データＤ１３の先頭位置は、２つ目の分割位置ｄ１２に相当する。分割データＤ１１の末尾位置は、（ｄ１１−１）である。分割データＤ１２の末尾位置は、（ｄ１２−１）である。
【００８６】
分割データＤ１１，Ｄ１２，Ｄ１３は、それぞれが動画として成り立たないファイルとなる。分割データＤ１２，Ｄ１３は、ｆｔｙｐやｍｏｏｖの存在しないファイルとなり復号できない。また、分割データＤ１１は、ｆｔｙｐとｍｏｏｖが存在し、ｂｏｘと呼ばれる一組のデータが揃っているものの、当該ｍｏｏｖは、動画データ６００の全体（元のｍｄａｔ）に対して生成されたデータであり、分割データＤ１１に対して生成されたものではない。このため、分割データＤ１１も単独で復号することはできない。
【００８７】
差分データ生成部１２８は、オフセット情報１２２ａを参照して、分割データＤ１１，Ｄ１２，Ｄ１３のそれぞれに対して差分データを生成し、分割データＤ１１，Ｄ１２，Ｄ１３のそれぞれから単独で復号可能な部分動画データを生成可能にする。差分データ生成部１２８による差分データの生成方法は、第１の実施の形態で例示した処理部１２による分割データに対する第１および第２の差分情報の生成方法と同様である。
【００８８】
すなわち、差分データ生成部１２８は、ある分割データの先頭位置に対する近傍キーフレーム位置が当該分割データの先頭位置よりも前の場合、近傍キーフレーム位置から先頭位置の直前までのデータを追加対象の差分データとする。また、差分データ生成部１２８は、分割データの先頭位置に対する近傍キーフレーム位置が当該先頭位置よりも後の場合、先頭位置から近傍キーフレーム位置の直前までのデータのサイズを削除対象の差分データとする。
【００８９】
更に、差分データ生成部１２８は、ある分割データの末尾位置に対する近傍キーフレーム位置が当該末尾位置よりも前の場合、近傍キーフレーム位置から末尾位置までのデータのサイズを削除対象の差分データとする。また、差分データ生成部１２８は、分割データの末尾位置に対する近傍キーフレーム位置が当該末尾位置よりも後の場合、末尾位置の直後から近傍キーフレーム位置の直前までのデータを追加対象の差分データとする。
【００９０】
なお、ある分割データの末尾位置が動画データの末尾位置に一致する場合、差分データ生成部１２８は、当該分割データの末尾位置に対して差分データを生成しなくてよい。例えば、差分データ生成部１２８は、動画データ６００に対して次のように差分データを生成する。
【００９１】
第１に、分割データＤ１１に対して、差分データ生成部１２８は、分割データＤ１１の先頭位置に最も近いキーフレーム位置ｋ１１と、分割データＤ１１の末尾位置（ｄ１１−１）に最も近いキーフレーム位置ｋ１２とを特定する。キーフレーム位置ｋ１１は、分割データＤ１１の先頭位置よりも後である。このため、差分データ生成部１２８は、分割データＤ１１の先頭位置とキーフレーム位置ｋ１１との間のデータ（キーフレーム位置ｋ１１のデータを含まない）のサイズ「ｓｉｚｅ１」を、分割データＤ１１に対する削除対象の差分データとして生成する。また、キーフレーム位置ｋ１２は、分割データＤ１１の末尾位置（ｄ１１−１）よりも前である。このため、差分データ生成部１２８は、キーフレーム位置ｋ１２と末尾位置（ｄ１１−１）との間のデータのサイズ「ｓｉｚｅ２」を、分割データＤ１１に対する削除対象の差分データとして生成する。
【００９２】
分割データＤ１１の先頭の「ｓｉｚｅ１」のデータ、および、分割データＤ１１の末尾の「ｓｉｚｅ２」のデータを削除したデータが、１つ目の部分動画データ「ｍｄａｔ１」である。メタデータ生成部１２７は、部分動画データ「ｍｄａｔ１」に対するメタデータセグメント（メタデータ）を生成する。メタデータセグメントは、「ｆｔｙｐ１」および「ｍｏｏｖ１」を含む。部分動画データに対する復号用のメタデータは、既存の方法を用いて生成することができる。
【００９３】
第２に、分割データＤ１２に対して、差分データ生成部１２８は、分割データＤ１２の先頭位置ｄ１１に最も近いキーフレーム位置ｋ１２と、分割データＤ１２の末尾位置（ｄ１２−１）に最も近いキーフレーム位置ｋ１３とを特定する。キーフレーム位置ｋ１２は、分割データＤ１２の先頭位置ｄ１１よりも前である。このため、差分データ生成部１２８は、キーフレーム位置ｋ１２と先頭位置ｄ１１との間のデータ（先頭位置ｄ１１のデータを含まない）を、分割データＤ１２に対する追加対象の差分データ「ｄａｔａ１」として生成する。また、キーフレーム位置ｋ１３は、分割データＤ１２の末尾位置（ｄ１２−１）よりも後である。このため、差分データ生成部１２８は、分割データＤ１２の末尾位置（ｄ１２−１）とキーフレーム位置ｋ１３との間のデータ（末尾位置（ｄ１２−１）およびキーフレーム位置ｋ１３のデータを含まない）を、分割データＤ１２に対する追加対象の差分データ「ｄａｔａ２」として生成する。
【００９４】
分割データＤ１２の先頭に「ｄａｔａ１」を追加し、末尾に「ｄａｔａ２」を追加したデータが、２つ目の部分動画データ「ｍｄａｔ２」である。メタデータ生成部１２７は、部分動画データ「ｍｄａｔ２」に対するメタデータセグメント（メタデータ）を生成する。メタデータセグメントは、「ｆｔｙｐ２」および「ｍｏｏｖ２」を含む。
【００９５】
第３に、分割データＤ１３に対して、差分データ生成部１２８は、分割データＤ１３の先頭位置ｄ１２に最も近いキーフレーム位置ｋ１３を特定する。なお、分割データＤ１３の末尾位置は、動画データ６００の末尾位置に相当するため、差分データ生成部１２８は、分割データＤ１３の末尾に対して差分データを生成しなくてよい。キーフレーム位置ｋ１３は、先頭位置ｄ１２よりも後である。このため、差分データ生成部１２８は、先頭位置ｄ１２とキーフレーム位置ｋ１３との間のデータ（キーフレーム位置ｋ１３のデータを含まない）のサイズ「ｓｉｚｅ３」を、分割データＤ１３に対する削除対象の差分データとして生成する。
【００９６】
分割データＤ１３の先頭の「ｓｉｚｅ３」のデータを削除したデータが、３つ目の部分動画データ「ｍｄａｔ３」である。メタデータ生成部１２７は、部分動画データ「ｍｄａｔ３」に対するメタデータセグメント（メタデータ）を生成する。メタデータセグメントは、「ｆｔｙｐ３」および「ｍｏｏｖ３」を含む。
【００９７】
なお、「ｆｔｙｐ１」、「ｆｔｙｐ２」、「ｆｔｙｐ３」は、ファイル形式を示すデータであるため、「ｆｔｙｐ」と同じデータとなる。また、部分動画データの末尾フレームがＢフレームのこともある。この場合、部分動画データの末尾の数フレームを復号できないことも考えられるが、部分動画データに対して非常に小さい部分なので、分析などの処理への影響は無視できる。
【００９８】
図１０は、配置データ管理テーブルの例を示す図である。
配置データ管理テーブル１２３ａは、配置データ記憶部１２３に記憶される。配置データ管理テーブル１２３ａは、分割データ、削除（先頭）、削除（末尾）、追加（先頭）、追加（末尾）、追加（ｆｔｙｐ）および追加（ｍｏｏｖ）の項目を含む。
【００９９】
分割データの項目には、分割データ（または分割データの識別情報）が登録される。削除（先頭）の項目には、該当の分割データの先頭から削除すべきデータのサイズが登録される。削除（末尾）の項目には、該当の分割データの末尾から削除すべきデータのサイズが登録される。追加（先頭）の項目には、該当の分割データの先頭に追加すべきデータの本体（バイナリデータ）が登録される。追加（末尾）の項目には、該当の分割データの末尾に追加すべきデータの本体（バイナリデータ）が登録される。追加（ｆｔｙｐ）の項目には、該当の分割データに対する部分動画データの復号用のｆｔｙｐデータが登録される。追加（ｍｏｏｖ）の項目には、該当の分割データに対する部分動画データの復号用のｍｏｏｖデータが登録される。
【０１００】
例えば、配置データ管理テーブル１２３ａには、分割データが「Ｄ１１」、削除（先頭）が「ｓｉｚｅ１」、削除（末尾）が「ｓｉｚｅ２」、追加（先頭）が設定なし（設定なしを「−」で表す）、追加（末尾）が「−」、追加（ｆｔｙｐ）が「ｆｔｙｐ１」、追加（ｍｏｏｖ）が「ｍｏｏｖ１」というレコードが登録される。このレコードは、分割データＤ１１に対して、先頭のサイズ「ｓｉｚｅ１」を削除し、末尾のサイズ「ｓｉｚｅ２」を削除することで、部分動画データ「ｍｄａｔ１」が得られることを示す。また、メタデータセグメントとして、「ｆｔｙｐ１」および「ｍｏｏｖ１」を用いて部分動画データ「ｍｄａｔ１」が復号可能であることを示す。
【０１０１】
また、例えば、配置データ管理テーブル１２３ａには、分割データが「Ｄ１２」、削除（先頭）が「−」、削除（末尾）が「−」、追加（先頭）が「ｄａｔａ１」、追加（末尾）が「ｄａｔａ２」、追加（ｆｔｙｐ）が「ｆｔｙｐ２」、追加（ｍｏｏｖ）が「ｍｏｏｖ２」というレコードが登録される。このレコードは、分割データＤ１２に対して、先頭にデータ「ｄａｔａ１」を追加し、末尾に「ｄａｔａ２」を追加することで、部分動画データ「ｍｄａｔ２」が得られることを示す。また、メタデータセグメントとして、「ｆｔｙｐ２」および「ｍｏｏｖ２」を用いて部分動画データ「ｍｄａｔ２」が復号可能であることを示す。
【０１０２】
また、例えば、配置データ管理テーブル１２３ａには、分割データが「Ｄ１３」、削除（先頭）が「ｓｉｚｅ３」、削除（末尾）が「−」、追加（先頭）が「−」、追加（末尾）が「−」、追加（ｆｔｙｐ）が「ｆｔｙｐ３」、追加（ｍｏｏｖ）が「ｍｏｏｖ３」というレコードが登録される。このレコードは、分割データＤ１３に対して先頭のサイズ「ｓｉｚｅ３」を削除することで、部分動画データ「ｍｄａｔ３」が得られることを示す。また、メタデータセグメントとして、「ｆｔｙｐ３」および「ｍｏｏｖ３」を用いて部分動画データ「ｍｄａｔ３」が復号可能であることを示す。
【０１０３】
図１１は、データ管理テーブルの例を示す図である。
データ管理テーブル２１１は、管理データ記憶部２１０に記憶される。データ管理テーブル２１１は、動画ファイル名、分割データＩＤ（IDentifier）および保存場所の項目を含む。
【０１０４】
動画ファイル名の項目には、動画データの名称が登録される。分割データＩＤの項目には、動画データを分割して得られた分割データの識別情報（分割データＩＤ）が登録される。例えば、分割データＩＤは、分割の順序に対応付けられる（分割データＩＤが分割の順序を示すように付与されてもよい）。保存場所の項目には、該当の分割データの格納先を示すパスが登録される。当該パスは、データノードの識別情報やデータノードにおける分割データの保存場所（ディレクトリなど）の情報を含む。
【０１０５】
例えば、データ管理テーブル２１１には、動画ファイル名が「Ｆ１」、分割データＩＤが「ＩＤ１」、保存場所が「ＤａｔａＮｏｄｅ１」というレコードが登録されている。このレコードは、動画ファイル名「Ｆ１」の動画データ６００の「ＩＤ１」で識別される分割データＤ１１が保存場所「ＤａｔａＮｏｄｅ１」に格納されていることを示す。保存場所「ＤａｔａＮｏｄｅ１」は、データノード３００の所定のディレクトリを示す。
【０１０６】
同様に、データ管理テーブル２１１は、動画データ６００に対応する分割データＤ１２（「ＩＤ２」）がデータノード４００に格納され、動画データ６００に対応する分割データＤ１３（「ＩＤ３」）がデータノード５００に格納されていることを示す。
【０１０７】
図１２は、データノードに対するデータ配置例を示す図である。
データ配置部１２９は、分割データＤ１１をデータノード３００に配置するとともに、分割データＤ１１に対して生成された差分データおよびメタデータをデータノード３００に配置する。データノード３００は、分割データＤ１１、ｓｉｚｅ１、ｓｉｚｅ２、ｆｔｙｐ１、ｍｏｏｖ１を含むデータセット３１１を保持する。データセット３１１は、分割データＤ１１に対する差分データの適用方法を示す情報を含む。ここで、ｓｉｚｅ１は、分割データＤ１１の先頭から削除するデータのサイズである。ｓｉｚｅ２は、分割データＤ１１の末尾から削除するデータのサイズである。ｆｔｙｐ１、ｍｏｏｖ１は、メタデータ（復号用のメタデータ）であり、分割データＤ１１の先頭からｓｉｚｅ１のデータを削除し、末尾からｓｉｚｅ２のデータを削除して得られる部分動画データ（ｍｄａｔ１）の復号に用いられる。
【０１０８】
データ配置部１２９は、分割データＤ１２をデータノード４００に配置するとともに、分割データＤ１２に対して生成された差分データおよびメタデータをデータノード４００に配置する。データノード４００は、分割データＤ１２、ｄａｔａ１、ｄａｔａ２、ｆｔｙｐ２、ｍｏｏｖ２を含むデータセット４１１を保持する。データセット４１１は、分割データＤ１２に対する差分データの適用方法を示す情報を含む。ここで、ｄａｔａ１は、分割データＤ１２の先頭に追加するデータである。ｄａｔａ２は、分割データＤ１２の末尾に追加するデータである。ｆｔｙｐ２、ｍｏｏｖ２は、メタデータであり、分割データＤ１２の先頭にｄａｔａ１を追加し、末尾にｄａｔａ２を追加して得られる部分動画データ（ｍｄａｔ２）の復号に用いられる。
【０１０９】
データ配置部１２９は、分割データＤ１３をデータノード５００に配置するとともに、分割データＤ１３に対して生成された差分データおよびメタデータをデータノード５００に配置する。データノード５００は、分割データＤ１３、ｓｉｚｅ３、ｆｔｙｐ３、ｍｏｏｖ３を含むデータセット５１１を保持する。データセット５１１は、分割データＤ１３に対する差分データの適用方法を示す情報を含む。ここで、ｓｉｚｅ３は、分割データＤ１３の先頭から削除するデータのサイズである。ｆｔｙｐ３、ｍｏｏｖ３は、メタデータであり、分割データＤ１３の先頭からｓｉｚｅ３のデータを削除して得られる部分動画データ（ｍｄａｔ３）の復号に用いられる。
【０１１０】
次に、クライアント１００の処理の手順を説明する。まず、動画データの保存時の手順を説明する。
図１３は、データ保存の例を示すフローチャートである。
【０１１１】
（Ｓ１１）キーフレームオフセット取得部１２４は、保存する動画データ６００がユーザにより指定されると、動画データ６００のｍｏｏｖデータからキーフレームのオフセット情報１２２ａを取得し、オフセット情報記憶部１２２に格納する。
【０１１２】
（Ｓ１２）動画データ分割部１２５は、動画データ６００を固定サイズで分割して分割データＤ１１，Ｄ１２，Ｄ１３を生成し、配置データ記憶部１２３に格納する。固定サイズは、ユーザにより任意に決定できる。
【０１１３】
（Ｓ１３）近傍キーフレーム取得部１２６は、オフセット情報記憶部１２２に記憶されたオフセット情報１２２ａを参照して、分割データの先頭位置／末尾位置に最も近いキーフレーム（近傍キーフレーム）を分割データ毎に検索する。近傍キーフレーム取得部１２６は、取得した近傍キーフレームのオフセット位置を、メタデータ生成部１２７および差分データ生成部１２８に提供する。
【０１１４】
（Ｓ１４）差分データ生成部１２８は、分割データを１つ選択する。
（Ｓ１５）差分データ生成部１２８（およびメタデータ生成部１２７）は、差分データ生成を実行する。差分データ生成の詳細は後述される。
【０１１５】
（Ｓ１６）差分データ生成部１２８は、動画データ６００に対する全ての分割データについて差分データの生成の処理を行ったか否かを判定する。全分割データを処理済の場合、ステップＳ１７に処理が進む。未処理の分割データがある場合、ステップＳ１４に処理が進む。
【０１１６】
（Ｓ１７）データ配置部１２９は、分割データと、当該分割データに対応する差分データとメタデータとを各データノードに配置する。
（Ｓ１８）データ配置部１２９は、分割データの配置先をデータ管理ノード２００に通知する。そして、データ保存の処理が終了する。
【０１１７】
図１４は、差分データ生成の例を示すフローチャートである。
差分データ生成は、ステップＳ１５に相当する。
（Ｓ２１）メタデータ生成部１２７は、固定サイズの分割データｎ（ステップＳ１４で選択された分割データ）に対応する部分動画データ（ｍｄａｔ［ｎ］）のｆｔｙｐとｍｏｏｖとを作成する。例えば、メタデータ生成部１２７は、近傍キーフレーム取得部１２６から提供された近傍キーフレームのオフセット位置に基づいて、動画データ６００のうち、分割データｎに対応する部分動画データ（ｍｄａｔ［ｎ］）の範囲を特定できる。このため、メタデータ生成部１２７は、動画データ６００に基づいて、部分動画データの範囲に対して、ｍｏｏｖを生成する。ｆｔｙｐについては、動画データ６００のｆｔｙｐと同じでよい。メタデータ生成部１２７は、生成したメタデータを分割データｎに対応付けて、配置データ記憶部１２３に格納する。
【０１１８】
（Ｓ２２）差分データ生成部１２８は、分割データｎの先頭オフセットＡがｍｄａｔ［ｎ］の先頭オフセットＢ以下（Ａ≦Ｂ）であるか否かを判定する。Ａ≦Ｂの場合、ステップＳ２３に処理が進む。Ａ＞Ｂの場合、ステップＳ２４に処理が進む。
【０１１９】
（Ｓ２３）差分データ生成部１２８は、分割データｎの先頭から削除するデータのサイズを「Ｂ−Ａ」（削除（先頭）＝Ｂ−Ａ）とし、当該サイズを示す差分データを生成する。差分データ生成部１２８は、分割データｎの先頭に追加するデータを「Ｎｏｎｅ」（前述の設定なし「−」に相当）とする。差分データ生成部１２８は、生成した差分データを分割データｎに対応付けて、配置データ記憶部１２３に格納する。そして、ステップＳ２５に処理が進む。
【０１２０】
（Ｓ２４）差分データ生成部１２８は、分割データの先頭から削除するデータのサイズを「Ｎｏｎｅ」とする。差分データ生成部１２８は、分割データｎの先頭に追加するデータを「（Ａ−Ｂ）分のデータ」とし、当該データを示す差分データを生成する。ここで、「（Ａ−Ｂ）分のデータ」は、動画データ６００のうちオフセットＢとオフセットＡとの間のデータを示す。差分データ生成部１２８は、生成した差分データを分割データｎに対応付けて、配置データ記憶部１２３に格納する。そして、ステップＳ２５に処理が進む。
【０１２１】
（Ｓ２５）差分データ生成部１２８は、ｍｄａｔ［ｎ］の末尾オフセットＣが分割データｎの末尾オフセットＤ以下（Ｃ≦Ｄ）であるか否かを判定する。Ｃ≦Ｄの場合、ステップＳ２６に処理が進む。Ｃ＞Ｄの場合、ステップＳ２７に処理が進む。
【０１２２】
（Ｓ２６）差分データ生成部１２８は、分割データｎの末尾から削除するデータのサイズを「Ｄ−Ｃ」（削除（末尾）＝Ｄ−Ｃ）とし、当該サイズを示す差分データを生成する。差分データ生成部１２８は、分割データｎの末尾に追加するデータを「Ｎｏｎｅ」とする。差分データ生成部１２８は、生成した差分データを分割データｎに対応付けて、配置データ記憶部１２３に格納する。そして、分割データｎに対する差分データ生成の処理が終了する。
【０１２３】
（Ｓ２７）差分データ生成部１２８は、分割データｎの末尾から削除するデータのサイズを「Ｎｏｎｅ」とする。差分データ生成部１２８は、分割データｎの末尾に追加するデータを「（Ｃ−Ｄ）分のデータ」とし、当該データを示す差分データを生成する。ここで、「（Ｃ−Ｄ）分のデータ」は、動画データ６００のうちオフセットＤとオフセットＣとの間のデータを示す。差分データ生成部１２８は、生成した差分データを分割データｎに対応付けて、配置データ記憶部１２３に格納する。そして、分割データｎに対する差分データ生成の処理が終了する。
【０１２４】
なお、クライアント１００は、保存する動画データ６００を受け付けたときに差分データを生成し、分割データＤ１１，Ｄ１２，Ｄ１３とともに差分データおよびメタデータをデータノード３００，４００，５００に分散配置する例を示したが他の手順も考えられる。例えば、クライアント１００は、分割データＤ１１，Ｄ１２，Ｄ１３をデータノード３００，４００，５００に分散配置した後に、差分データおよびメタデータを生成し、差分データおよびメタデータをデータノード３００，４００，５００に配置してもよい。その場合、クライアント１００は、差分データおよびメタデータを生成するまで、動画データ６００を保持しておいてもよい。また、クライアント１００は、分割データＤ１１，Ｄ１２，Ｄ１３の分散配置後、システムの負荷が比較的小さいときなどに、データノード３００，４００，５００から分割データＤ１１，Ｄ１２，Ｄ１３を取得して、差分データおよびメタデータを生成してもよい。
【０１２５】
次に、分割データに基づいて、動画データを取得する手順を説明する。
図１５は、動画データ取得の例を示すフローチャートである。
（Ｓ３１）動画データ取得部１３０は、取得対象の動画データ６００の動画ファイル名を受け付ける。すると、動画データ取得部１３０は、データ管理ノード２００に当該動画ファイル名を問い合わせ、動画ファイル名に対応する分割データＤ１１，Ｄ１２，Ｄ１３の格納位置をデータ管理ノード２００から取得する。分割データＤ１１の格納位置は、データノード３００の所定のディレクトリを示す。分割データＤ１２の格納位置は、データノード４００の所定のディレクトリを示す。分割データＤ１３の格納位置は、データノード５００の所定のディレクトリを示す。
【０１２６】
（Ｓ３２）動画データ取得部１３０は、データノード３００，４００，５００から分割データＤ１１，Ｄ１２，Ｄ１３を取得する。
（Ｓ３３）動画データ取得部１３０は、分割データＤ１１，Ｄ１２，Ｄ１３を、分割順と同じ順番で結合することで、動画データ６００を復元する。そして、動画データ取得の処理が終了する。
【０１２７】
このように、動画データ取得部１３０は、動画データの取得指示を受け付けると、複数のデータノードから複数の分割データを取得し、複数の分割データを結合することで動画データを復元する。このとき、分割データに対して編集処理を行わなくてよいので、動画データを高速に取得できる。
【０１２８】
次に、動画データの分析の手順を説明する。
図１６は、データ分析の例を示すフローチャートである。
（Ｓ４１）分析制御部１４０は、分析対象の動画データ６００の動画ファイル名を受け付ける。すると、分析制御部１４０は、データ管理ノード２００に当該動画ファイル名を問い合わせ、動画ファイル名に対応する分割データＤ１１，Ｄ１２，Ｄ１３の格納位置をデータ管理ノード２００から取得する。
【０１２９】
（Ｓ４２）分析制御部１４０は、ＨＤＤ１０３におけるプログラム記憶部から分析用のプログラムを取得し、データノード３００，４００，５００に当該プログラムを送信する。分析制御部１４０は、データノード３００，４００，５００に当該プログラムの実行を指示する。データノード３００，４００，５００では、分割データおよび差分データから部分動画データが生成され、当該プログラムに応じた分析が実行される。
【０１３０】
（Ｓ４３）分析制御部１４０は、データノード３００，４００，５００から分析結果を受信する。
（Ｓ４４）分析制御部１４０は、データノード３００，４００，５００のそれぞれから取得した分析結果を統合して結果情報を生成し、結果情報を出力する。そして、データ分析の処理が終了する。
【０１３１】
次に、分析時におけるデータノード３００，４００，５００の処理手順を説明する。以下では、データノード３００を例示して説明するが、データノード４００，５００も同様の手順を実行する。
【０１３２】
図１７は、データノード処理の例を示すフローチャートである。
データ処理部３３０は、データノード３００が保持するデータセット３１１およびクライアント１００から通知される差分データの分割データへの適用方法の情報に基づいて、下記のステップＳ５１〜Ｓ５９の手順を行う。
【０１３３】
（Ｓ５１）データ処理部３３０は、分割データ（例えば、分割データＤ１１）の先頭から削除すべきデータのサイズ（削除（先頭））が「Ｎｏｎｅ」（すなわち、設定なし「−」）であるか否かを判定する。削除（先頭）＝Ｎｏｎｅの場合、ステップＳ５３に処理が進む。削除（先頭）≠Ｎｏｎｅの場合、ステップＳ５２に処理が進む。
【０１３４】
（Ｓ５２）データ処理部３３０は、分割データ（例えば、分割データＤ１１）から先頭の差分（差分データで示されるサイズ分のデータ）を削除する。そして、ステップＳ５３に処理が進む。
【０１３５】
（Ｓ５３）データ処理部３３０は、分割データの末尾から削除すべきデータのサイズ（削除（末尾））が「Ｎｏｎｅ」であるか否かを判定する。削除（末尾）＝Ｎｏｎｅの場合、ステップＳ５５に処理が進む。削除（末尾）≠Ｎｏｎｅの場合、ステップＳ５４に処理が進む。
【０１３６】
（Ｓ５４）データ処理部３３０は、分割データから末尾の差分（差分データで示されるサイズ分のデータ）を削除する。そして、ステップＳ５５に処理が進む。
（Ｓ５５）データ処理部３３は、分割データの先頭に追加すべきデータ（追加（先頭））が「Ｎｏｎｅ」であるか否かを判定する。追加（先頭）＝Ｎｏｎｅの場合、ステップＳ５７に処理が進む。追加（先頭）≠Ｎｏｎｅの場合、ステップＳ５６に処理が進む。
【０１３７】
（Ｓ５６）データ処理部３３０は、分割データの先頭に差分のデータを追加する。そして、ステップＳ５７に処理が進む。
（Ｓ５７）データ処理部３３０は、分割データの末尾に追加すべきデータ（追加（末尾））が「Ｎｏｎｅ」であるか否かを判定する。追加（末尾）＝Ｎｏｎｅの場合、ステップＳ５９に処理が進む。追加（末尾）≠Ｎｏｎｅの場合、ステップＳ５８に処理が進む。
【０１３８】
（Ｓ５８）データ処理部３３０は、分割データの末尾に差分のデータを追加する。そして、ステップＳ５９に処理が進む。
（Ｓ５９）データ処理部３３０は、ステップＳ５１〜Ｓ５８までの手順によって生成された部分動画データに、該当の分割データに対応するｆｔｙｐ（例えば、ｆｔｙｐ１）とｍｏｏｖ（例えば、ｍｏｏｖ１）とを追加する。
【０１３９】
（Ｓ６０）データ処理部３３０は、部分動画データを復号し、部分動画データの分析を行う。例えば、データ処理部３３０は、部分動画データにより描画される物体の形状や物体の動きの分析を行い、認識した物体の名称などを分析結果として記録する。
【０１４０】
（Ｓ６１）データ処理部３３０は、分析結果をクライアント１００に送信する。
なお、分析には種々の方法を用いることができる。例えば、映像に写っている物体を自動認識する分析であれば、データ処理部３３０は、分析結果ファイルに、認識した物体に関する情報をテキストなどによって追記していく方法が考えられる。また、例えば、サムネイルを生成する処理であれば、データ処理部３３０は、同一ディレクトリに生成した画像ファイルを、分析結果として保存していく方法が考えられる。クライアント１００は、各データノードから分析結果を取得し、時系列の順番などで各分析結果を統合することで、動画データ６００全体に対する分析結果を生成し、出力する。
【０１４１】
クライアント１００によれば、記憶容量の利用効率の低下を抑えて動画データに対する分散処理が可能になる。具体的には、次の通りである。
データノード３００，４００，５００は、動画データ６００の格納用途に用いられる。このため、ユーザが動画データ６００を取得したいときには、動画データ６００を高速に取得可能にすることが好ましい。この点、クライアント１００は、動画データ６００を所定サイズ単位に単純に分割した分割データＤ１１，Ｄ１２，Ｄ１３を、データノード３００，４００，５００に格納する。このため、クライアント１００は、データノード３００，４００，５００に格納された分割データＤ１１，Ｄ１２，Ｄ１３を取得して、分割順に結合すればよく、その他の編集処理を行わなくてよいため、動画データ６００を高速に取得可能である。
【０１４２】
また、データノード３００，４００，５００は、データノード３００，４００，５００に配置した差分データを分割データに適用してｍｄａｔ１，ｍｄａｔ２，ｍｄａｔ３を生成でき、更にメタデータを適用することで、単独で復号可能な部分動画データを生成できる。このため、動画データ６００の分析を行う場合、データノード３００，４００，５００のそれぞれは、生成した部分動画データに対して、分析などの処理を分散して行える。データノード３００，４００，５００の各自が保持する分割データに対する差分データの適用方法は、クライアント１００により指示される。例えば、クライアント１００は、分析処理を実行させるためのプログラムをデータノード３００，４００，５００に送信する。この場合、データノード３００，４００，５００は、当該プログラムを実行することで、自ノードが保持する部分動画データに対する分析を行う。
【０１４３】
こうして、動画データ６００に対する分析などの処理を分散実行可能にすることで、処理の高速化を図れる。また、近傍処理の手法により、部分動画データの分析を、当該部分動画データを保持する各データノードにより分散実行させることで、分析のためのデータノード間、または、各データノードとクライアント１００との間の通信を削減でき、処理を一層高速化できる。
【０１４４】
特に、データノード３００，４００，５００には、分割データから部分動画データを生成するために用いられる差分データと部分動画データの復元用のメタデータとを配置すればよく、部分動画データの全てを配置しなくてよい。したがって、分割データと、部分動画データとの両方を各データノードに配置するよりも、各データノードにおいて使用される記憶容量を低減できる。こうして、各データノードによる記憶容量の利用効率の低下を抑えて動画データに対する分散処理が可能になる。
【０１４５】
なお、第１の実施の形態の情報処理は、処理部１２にプログラムを実行させることで実現できる。また、第２の実施の形態の情報処理は、ＣＰＵ１０１にプログラムを実行させることで実現できる。プログラムは、コンピュータ読み取り可能な記録媒体１１３に記録できる。
【０１４６】
例えば、プログラムを記録した記録媒体１１３を配布することで、プログラムを流通させることができる。また、プログラムを他のコンピュータに格納しておき、ネットワーク経由でプログラムを配布してもよい。コンピュータは、例えば、記録媒体１１３に記録されたプログラムまたは他のコンピュータから受信したプログラムを、ＲＡＭ１０２やＨＤＤ１０３などの記憶装置に格納し（インストールし）、当該記憶装置からプログラムを読み込んで実行してもよい。
【符号の説明】
【０１４７】
１０  情報処理装置
１１  記憶部
１２  処理部
２０，３０，４０  ノード
５０  メディアデータ
６０  オフセット情報
【図１】
2020086747.tif 000003
【図２】
2020086747.tif 000004
【図３】
2020086747.tif 000005
【図４】
2020086747.tif 000006
【図５】
2020086747.tif 000007
【図６】
2020086747.tif 000008
【図７】
2020086747.tif 000009
【図８】
2020086747.tif 000010
【図９】
2020086747.tif 000011
【図１０】
2020086747.tif 000012
【図１１】
2020086747.tif 000013
【図１２】
2020086747.tif 000014
【図１３】
2020086747.tif 000015
【図１４】
2020086747.tif 000016
【図１５】
2020086747.tif 000017
【図１６】
2020086747.tif 000018
【図１７】
2020086747.tif 000019