(57)【特許請求の範囲】
【請求項１】
ネットワーク上のメディアデータを高速に処理するための分散メディア処理装置であって、
入力されたメディアデータがGOP(Group  Of  Pictures)単位で構成される場合に、該メディアデータの先頭から所定のGOP単位に断片データを分割し、分割の途中から分割するGOP数を変更して分割し、記憶手段に格納するデータ分割手段と、
前記記憶手段に格納された前記断片データを取得して所定のメディア処理を他の処理手段と並行実行して処理結果を出力する少なくとも１つ以上の処理手段と、
少なくとも１つ以上の処理手段から前記処理結果を取得して、時刻順に整列可能な断片データであれば、前記記憶手段に入力された時刻順に整列させ、すべての処理結果を統合して出力する統合手段と、
を有し、
前記データ分割手段は、
前記記憶手段に格納された未処理の断片データの量と前記処理手段毎の稼動状況に応じて、すべての処理手段の処理がほぼ同時に終了するように、分割の途中からメディアデータを分割するGOP数を徐々に小さくしながら分割し、該処理手段の空き能力数が、該記憶手段に格納された未処理の断片データの量と等しいか、それより大きい（処理能力が余っている）場合には、前回のGOP数より小さいGOP数に変更する手段を含む
ことを特徴とする分散メディア処理装置。
【請求項２】
ネットワーク上のメディアデータを高速に処理するための分散メディア処理方法であって、
断片データを記憶する記憶手段と、データ分割手段、１つ以上の処理手段、統合手段とを有する装置において、
前記データ分割手段が、入力されたメディアデータがGOP(Group  Of  Pictures)単位で構成される場合に、該メディアデータの先頭から所定のGOP単位に断片データを分割し、分割の途中から分割するGOP数を変更して分割し、記憶手段に格納するデータ分割ステップと、
各処理手段が、前記記憶手段に格納された前記断片データを取得して所定のメディア処理を他の処理手段と並行実行して処理結果を出力する処理ステップと、
前記統合手段が、少なくとも１つ以上の処理手段から前記処理結果を取得して、時刻順に整列可能な断片データであれば、前記記憶手段に入力された時刻順に整列させ、すべての処理結果を統合して出力する統合ステップと、
を行い、
前記データ分割ステップにおいて、
前記記憶手段に格納された未処理の断片データの量と前記処理手段毎の稼動状況に応じて、すべての処理手段の処理がほぼ同時に終了するように、分割の途中からメディアデータを分割するGOP数を徐々に小さくしながら分割し、該処理手段の空き能力数が、該記憶手段に格納された未処理の断片データの量と等しいか、それより大きい（処理能力が余っている）場合には、前回のGOP数より小さいGOP数に変更する
ことを特徴とする分散メディア処理方法。
【請求項３】
請求項１記載の分散メディア処理装置を構成する各手段としてコンピュータを機能させるための分散メディア処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、分散メディア処理装置及び方法及びプログラムに係り、特に、各種情報システムのログ情報、Webやブログなどのコンシューマによって生成されるテキスト情報、映像や音声などの多種多様なメディアデータが日々大量に生成されるネットワーク上で、これらのメディアデータを高速に処理する分散メディア処理装置及び方法及びプログラムに関する。
【背景技術】
【０００２】
各種情報システムのログ情報、Webやブログなどのコンシューマによって生成されるテキスト情報、映像や音声などの多種多様なメディアデータを高速に処理する技術として、入力された映像データを一旦、部分映像に分割し、これらの部分映像に対する処理を並列に実行し、処理結果を統合することで１つの映像データを最初から最後まで逐次的に処理した場合よりも短時間で同様の処理結果を出力する方法がある（例えば、特許文献１参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００３−６９９４６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、上記従来の技術では、入力されたデータを分割して有限個の断片データを生成する際の分割サイズが分割の開始から終了まで固定であるため、断片データを同時並行に処理する処理部の数が十分に存在する場合に処理の終盤（特に最後の断片データを処理する時点）では処理中の処理部と処置待ち（アイドル状態）の処理部が発生して、システム全体としての処理能力を十分に活用することができないという問題がある。
【０００５】
本発明は、上記の点に鑑みなされたもので、ユーザからアップロードされた単一の情報量の多いデータを最初から最後まで逐次的に処理した場合よりも短時間で同様の処理結果を出力することが可能な分散メディア処理装置及び方法及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００６】
上記の課題を解決するために、本発明（請求項１）は、ネットワーク上のメディアデータを高速に処理するための分散メディア処理装置であって、
入力されたメディアデータがGOP(Group  Of  Pictures)単位で構成される場合に、該メディアデータの先頭から所定のGOP単位に断片データを分割し、分割の途中から分割するGOP数を変更して分割し、記憶手段に格納するデータ分割手段と、
前記記憶手段に格納された前記断片データを取得して所定のメディア処理を他の処理手段と並行実行して処理結果を出力する少なくとも１つ以上の処理手段と、
少なくとも１つ以上の処理手段から前記処理結果を取得して、時刻順に整列可能な断片データであれば、前記記憶手段に入力された時刻順に整列させ、すべての処理結果を統合して出力する統合手段と、を有し、
前記データ分割手段は、
前記記憶手段に格納された未処理の断片データの量と前記処理手段毎の稼動状況に応じて、すべての処理手段の処理がほぼ同時に終了するように、分割の途中からメディアデータを分割するGOP数を徐々に小さくしながら分割し、該処理手段の空き能力数が、該記憶手段に格納された未処理の断片データの量と等しいか、それより大きい（処理能力が余っている）場合には、前回のGOP数より小さいGOP数に変更する手段を含む。
【０００９】
また、本発明（請求項２）は、ネットワーク上のメディアデータを高速に処理するための分散メディア処理方法であって、
断片データを記憶する記憶手段と、データ分割手段、１つ以上の処理手段、統合手段とを有する装置において、
前記データ分割手段が、入力されたメディアデータがGOP(Group  Of  Pictures)単位で構成される場合に、該メディアデータの先頭から所定のGOP単位に断片データを分割し、分割の途中から分割するGOP数を変更して分割し、記憶手段に格納するデータ分割ステップと、
各処理手段が、前記記憶手段に格納された前記断片データを取得して所定のメディア処理を他の処理手段と並行実行して処理結果を出力する処理ステップと、
前記統合手段が、少なくとも１つ以上の処理手段から前記処理結果を取得して、時刻順に整列可能な断片データであれば、前記記憶手段に入力された時刻順に整列させ、すべての処理結果を統合して出力する統合ステップと、を行い、
前記データ分割ステップにおいて、
前記記憶手段に格納された未処理の断片データの量と前記処理手段毎の稼動状況に応じて、すべての処理手段の処理がほぼ同時に終了するように、分割の途中からメディアデータを分割するGOP数を徐々に小さくしながら分割し、該処理手段の空き能力数が、該記憶手段に格納された未処理の断片データの量と等しいか、それより大きい（処理能力が余っている）場合には、前回のGOP数より小さいGOP数に変更する。
【００１２】
また、本発明（請求項３）は、請求項１記載の分散メディア処理装置を構成する各手段としてコンピュータを機能させるための分散メディア処理プログラムである。
【発明の効果】
【００１３】
上述のように、本発明によれば、各種情報システムのログ情報、Webやブログなどのコンシューマによって生成されるテキスト情報、映像や音声などの多種多様なメディアデータが日々大量に生成されるネットワーク上で、これらのメディアデータを分割して断片データを生成する際に、処理の終盤につれて分割サイズを徐々に小さくしていき、すべての処理部がほぼ同時に処理が終了するように（アイドル状態の処理部が存在しないように）分割するとともに、分割された各断片データに対する処理を並行実行し、すべての処理結果を統合することでユーザからアップロードされた単一の情報量の多いデータを最初から最後まで逐次的に処理した場合よりも短時間で同様の処理結果を出力する分散メディア処理システムを実現することができる。
【図面の簡単な説明】
【００１４】
【図１】本発明の一実施の形態における分散メディア処理装置の構成図である。
【図２】本発明の一実施の形態における分割部の処理のフローチャートである。
【図３】本発明の一実施の形態における分割サイズ計算部の分割サイズ計算・変更判定の処理を説明するための図（その１）である。
【図４】本発明の一実施の形態における分割サイズ計算部の分割サイズ計算・変更判定の処理を説明するための図（その２）である。
【図５】本発明の一実施の形態における分割サイズ計算部の分割サイズ計算・変更判定の処理を説明するための図（その３）である。
【図６】本発明の一実施の形態における分割サイズ計算部の分割サイズ計算・変更判定の処理を説明するための図（その４）である。
【図７】本発明の一実施の形態における分割サイズ計算部の分割サイズ計算・変更判定の処理を説明するための図（その５）である。
【図８】本発明の一実施の形態における分割サイズ計算部の分割サイズ計算・変更判定の処理を説明するための図（その６）である。
【図９】本発明の一実施の形態における蓄積部の処理のフローチャートである。
【図１０】本発明の一実施の形態における処理部の処理のフローチャートである。
【図１１】本発明に一実施の形態における統合部の処理のフローチャートである。
【図１２】従来技術により断片データ処理に要する時間の例である。
【図１３】本発明により断片データ処理に要する時間の例である。
【発明を実施するための形態】
【００１５】
以下図面と共に、本発明の実施の形態を説明する。
【００１６】
図１は、本発明の一実施の形態における分散メディア処理装置の構成を示す。
【００１７】
同図に示す分散メディア処理装置１０は、分割部１０、蓄積部２０、処理部３０、統合部４０から構成される。
【００１８】
分割部１０は、データ受付部１１、分割サイズ計算部１２、データ分割部１３、断片データ蓄積部１４から構成され、ユーザ端末２から入力（アップロード）されたメディアデータをデータ受付部１１が受け付け、データ分割部１３において分割サイズ計算部１２で計算されたサイズに分割し、少なくとも１つ以上の断片データを生成し、断片データ蓄積部１４が蓄積部２０に蓄積する。このとき、１つの蓄積部２０にすべての断片データを蓄積することも可能であるが、予め指定した任意個の蓄積部２０に対して順番に（ラウンドロビン方式に）蓄積することも可能である。分割サイズ計算部１２では、蓄積部２０に蓄積された未処理の断片データの量と各処理部の稼動状況に基づいて、分割の途中からメディアデータを分割するGOP数を所定のサイズずつ徐々に小さく（例えば、４GOP→３GOP→２GOP→１GOP）する。このようにして決定されたGOP数に応じて、データ分割部１３では当該サイズに基づいてメディアデータを分割する。
【００１９】
なお、分割部１０は、分割サイズ計算部１２においてGOP数の計算に必要な蓄積部２０の未処理の断片データ量及び処理部３０の稼動状況（空き処理能力）を収集し、メモリ（図示せず）に格納しておくものとする。
【００２０】
蓄積部２０は、断片データ受付部２１、断片データキューイング部２２を有し、断片データ受付部２１で受け付けた断片データを、断片データキューイング部２２で到着順に（ＦＩＦＯで）キューに保存する。
【００２１】
処理部３０は、少なくとも１つ以上存在し、各処理部３０は、断片データ取得部３１、メディア処理部３２、処理結果送信部３３を有する。断片データ取得部３１がいずれかの蓄積部２０から断片データを取得して、メディア処理部３２において所定のメディア処理を実行し、処理結果送信部３３から統合部４０に送信する。各処理部３０では、このすべての処理サイクルを同時並行に実行する。
【００２２】
統合部４０は、処理結果受付部４１、処理結果統合部４２、統合結果返却部４３を有し、処理結果受付部４１において処理部３０から処理結果を取得し、処理結果統合部４２において処理結果を統合し（例えば、データ分割時に断片データが生成された順番に並べ替える処理などを実行し）、処理結果返却部４２が統合結果をユーザ端末２へ返却する。また、ユーザ端末２の数が多い場合は、図１の構成を複数並列に配置して対応することが可能である。
【００２３】
次に、上記の構成における分割部１０の処理について説明する。
【００２４】
図２は、本発明の一実施の形態における分割部の処理のフローチャートである。
【００２５】
ステップ１０１）分割部１０は、データ受付部１１によりユーザ端末２から入力（アップロード）されたメディアデータを受け付ける。必要に応じてファイルとして蓄積することも可能である。
【００２６】
ステップ１０２）  データ受付部１１は、受け付けたメディアデータがGOP(Group Of Picture)単位で構成されているかどうかを判断し、GOP単位で構成されていなければ、非分割時（例外）処理を実行してステップ1０１へ戻る。
【００２７】
ステップ１０３）  分割サイズ計算部１２は、蓄積部２０に蓄積された未処理の断片データの量を定期的に計測するとともに各処理部３０の稼動状況（空き処理能力）を判別してすべての処理部の処理がほぼ同時に終了するような（統合部４０での待ち時間が最小になるような）GOP数を計算する。なお、計算された当該時点におけるGOP数、及び、計測された蓄積部２０のデータ量はメモリ（図示せず）に格納しておくものとする。
【００２８】
ステップ１０４）  分割サイズ計算部１２は、分割の途中で分割するGOP数を変更する必要があるかどうかを判断し、GOP数を変更する必要がある場合は、ステップ１０５に移行し、変更する必要がない場合はステップ１０６に移行する。当該判定方法は、蓄積部２０の未処理のGOP数と各処理部３０の空き処理能力とを比較し、未処理のGOP数≦空き処理能力である場合には、GOP数をその時点におけるGOP数よりも小さくすると判定する。
【００２９】
ステップ１０５）  分割サイズ計算部１２は、未処理のGOP数＞空き処理能力となるように、GOP数を変更する。
【００３０】
ステップ１０６）  データ分割部１３は分割サイズ計算部１２で求められたGOP数単位にデータを切り出して断片データを生成する。
【００３１】
ステップ１０７）  断片データ蓄積部１４は、データ分割部１３で生成された断片データを蓄積部２０へ蓄積する。
【００３２】
ステップ１０８）  蓄積部２０へ蓄積した断片データにEOF（End Of File）が含まれなければ、ステップ１０３へ戻って分割を繰り返し、EOFが含まれる場合はステップ1０１へ戻って新たなメディアデータを受け付ける。
【００３３】
上記のステップ１０３及びステップ１０４の分割サイズ計算部１２の処理について以下に詳細に説明する。
【００３４】
分割サイズ計算部１２は、内部の情報収集機能により、定期的に蓄積部２０に蓄積された未処理の断片データの量と、処理部３０の稼動状況情報を収集し、メモリ（図示せず）に格納する。ここで、稼動状況情報とは、各処理部毎に計測時点における空き処理能力数を指す。分割サイズ計算部１２は、メモリの内容を参照して以下の処理を行う。
【００３５】
図３〜図８は、本発明の一実施の形態における分割部の分割サイズ計算部の分割サイズ計算・変更判定の処理を説明するための図である。これらの図において、全データ６４GOPのうち、４８GOP分のデータは分割数４GOPとして分割部１０によって分割済みであり、各処理部ａ〜ｈが処理中もしくは処理済であることを実線で示している。
【００３６】
図３の例において処理部ｅに与える断片データの分割サイズを計計算する。ここで、処理部eに与える断片データの分割サイズを４GOPとすると、他の処理部とほぼ同時に終了することになる。処理部ｅの処理終了時点におけるすべての処理部の空き処理能力の合計を破線で示している。
【００３７】
また、分割サイズを変更するか否かを判定する場合には、図３の例において、破線の箇所（空き処理能力）が１２GOP分に相当し、残りのGOP数である１６よりも小さいため、分割数の変更は不要であると判断する。
【００３８】
また、図４は、全データ６４GOPのうち、５２GOP分のデータはデータ分割部１３によって分割済みであることを示しており、処理部ｆに与える断片データの分割サイズを４GOPとした場合に、処理部ｆの処理終了時点におけるすべての処理部の空き処理能力の合計を破線で示している。当該破線（空き処理能力）は１２GOP分に相当し、残りのGOP数である１２と等しい（小さくない）ため、ステップ１０４では分割数を４GOP未満に変更すると判断する。
【００３９】
また、図５は、全データ６４GOPのうち、５２GOP分のデータはデータ分割部１３によって分割済みであることを示しており、処理部ｆに与える断片データの分割サイズを４GOPから３GOPに変更した場合に、処理部ｆの処理終了時点におけるすべての処理部の空き処理能力の合計を破線で示している。破線（空き処理能力）は６GOP分に相当し、残りGOP数である１２よりも小さいため、分割数を変更する必要がないと判断し、分割数３GOPで分割を行う。
【００４０】
また、図６は、６４GOPのうち、５５GOP分のデータはデータ分割部１３によって分割済みであることを示しており、処理部ｇに与える断片データの分割サイズを３GOPとした場合に、処理部ｇの処理終了時点におけるすべての処理部の空き処理能力の合計を破線で示している。破線（空き処理能力）は６GOP分に相当し、残りGOP数である９よりも小さいため分割数を変更する必要がないと判断し、分割数３GOPで分割を行う。
【００４１】
また、図７は、６４GOPのうち、５８GOP分のデータはデータ分割部１３によって分割済みであることを示しており、処理部ｈに与える断片データの分割サイズを３GOPとした場合に、処理部ｈの処理終了時点におけるすべての処理部の空き処理能力の合計を破線で示している。破線（空き処理能力）は７GOP分に相当し、残りのGOP数である６より大きい（小さくない）ため分割数を３GOP未満に変更すると判断する。
【００４２】
また、図８は、６４GOPのうち、５８GOP分のデータはデータ分割部１３によって分割済みであることを示しており、処理部ｈに与える断片データの分割サイズを３GOPから２GOPに変更した場合に、処理部hの処理終了時点におけるすべての処理部の空き処理能力の合計を破線で示している。破線（空き処理能力）は２GOP分に相当し、残りGOP数である６よりも小さいため、分割数を変更する必要がないと判断し、分割数２GOPで分割を行う。
【００４３】
次に、蓄積部２０の処理について説明する。
【００４４】
図９は、本発明の一実施の形態における蓄積部の動作のフローチャートである。
【００４５】
ステップ２０１）  断片データ受付部２１は、分割部１０から断片データを取得する。
【００４６】
ステップ２０２）  断片データ受付部２１は取得した断片データの到着順にタイムスタンプ及びシーケンス番号を付与する。
【００４７】
ステップ２０３）  断片データキューイング部２２は、キューに空きがあるかを判定し、空きがなければ所定の時間待機し、再度判定する。
【００４８】
ステップ２０４）  キューに空きがあれば、断片データをFIFO順にキューに保存し、ステップ２０１に移行し、新たな断片データを受け付ける処理を行う。なお、キューに断片データを保存した時点で、分割部１０に対して、待ちキューの状態を通知するものとする。
【００４９】
次に、処理部３０の動作を説明する。
【００５０】
図１０は、本発明の一実施の形態における処理部のフローチャートである。以下では、処理部３０が蓄積部２０から断片データを取得し、取得した断片データに対して所定のメディア処理を実行し、処理結果を統合部４０へ送信する際の動作を示す。
【００５１】
ステップ３０１）  断片データ取得部３１は、蓄積部２０からFIFO順に断片データを取得する。
【００５２】
ステップ３０２）  メディア処理部３２は、取得した断片データに対して所定のメディア処理を実行する。メディア処理の例として、映像内容のシーンの切り替わり検出処理（カット点検出処理）や隣接フレーム間の差分検出処理（動き検出処理）、注目シーン検出処理等が適用可能であり、これらの様々なメディア処理を断片データに対して適用する。
【００５３】
ステップ３０３）  処理結果送信部３３は、断片データに対してメディア処理を実行した処理結果を統合部４０へ送信する。
【００５４】
ステップ３０４）  処理結果送信部３３は、処理結果を統合部４０へ送信できたかどうか判定し、送信できなければ所定の時間待機してステップ３０３に戻って処理結果を統合部４０へ送信し、送信できればステップ３０１に戻って蓄積部２０から新たな断片データを取得する処理を繰り返す。
【００５５】
次に、統合部４０の処理を説明する。以下では、統合部４０が、複数の処理部３０から取得した処理結果を統合してユーザ端末２へ結果を返却する際の動作を示す。
【００５６】
図１１は、本発明の一実施の形態における統合部のフローチャートである。
【００５７】
ステップ４０１）  処理結果受付部４１は、少なくとも１つ以上の処理部の処理結果を受け付ける。
【００５８】
ステップ４０２）  処理結果統合部４２により処理結果を分割部１０で付与したタイムスタンプ順または分割部１０で付与したシーケンス番号順に整列させて統合する。
【００５９】
ステップ４０３）  処理結果統合部４２は、分割部１０で付与されたシーケンス番号に基づき、すべての断片データに対する処理結果を受け付け、統合したかどうかを判定し、すべての処理結果を統合していない場合はステップ４０１に移行して処理部３０からの処理結果を受け付け、すべての処理結果を統合した場合は、統合結果返却部４３からユーザ端末２に返却し、ステップ４０１に移行して、新たな処理結果を受け付ける。
【００６０】
次に、本発明と従来技術の比較結果を示す。
【００６１】
図１２は、従来技術により断片データ処理に要する時間の例であり、分割部において従来技術により分割の開始から終了まで固定のGOP数（４GOP）で分割した断片データを処理部が処理した場合に要する処理時間を可視化して示したものである。同図では、処理部ａ〜処理部ｈの処理能力が等価であり、１GOPのメディアデータに対する処理に１単位時間かかると仮定すると、各断片データ（４GOPのメディアデータ）の処理に４単位時間かかり、すべての断片データの処理が終了するまでに１１．５単位時間かかることを示している。
【００６２】
図１３は、本発明により断片データ処理に要する時間の例であり、分割部１０において分割の途中からメディアデータを分割するGOP数を徐々に小さくしながら（４GOP→３GOP→２GOP→１GOPと変化させながら）分割した断片データを処理部３０が処理した場合にかかる処理時間を可視化したものである。処理部ａ〜処理部ｈの処理能力が等価であり、１GOPのメディアデータに対する処理に１単位時間かかると仮定すると、処理の前半では４GOPの断片データの処理に４単位時間かかっているが、途中からメディアデータの分割するGOP数を４GOP→３GOP→２GOP→１GOPと変化させているため、すべての断片データの処理が終了するまでに１０単位時間で済んでいる。このように、本発明によれば処理時間を短縮することができる。
【００６３】
なお、上記では処理部３０の処理能力が等価であることを前提に説明したが、処理部の処理能力が異なる場合でも同様である。
【００６４】
また、分割部１０が１つの断片データを分割するのに要する時間と１つの処理部３０が断片データを処理するのに要する時間の比率が本実施の形態と異なる場合でも同様である。
【００６５】
なお、上記の実施の形態の図１に示す分散メディア処理装置の構成要素の動作をプログラムとして構築し、分散メディア処理装置として利用されるコンピュータにインストールして実行させる、または、ネットワークを介して流通させることが可能である。
【００６６】
また、構築されたプログラムをハードディスクや、フレキシブルディスク、ＣＤ−ＲＯＭ等の可搬記憶媒体に格納し、コンピュータにインストールする、または、配布することが可能である。
【００６７】
本発明は、上記の実施の形態に限定されることなく、特許請求の範囲内において種々変更・応用が可能である。
【符号の説明】
【００６８】
１  分散メディア処理装置
２  ユーザ端末
１０  分割部
１１  データ受付部
１２  分割サイズ計算部
１３  データ分割部
１４  断片データ蓄積部
２０  蓄積部
２１  断片データ受付部
２２  断片データキューイング部
３０  処理部
３１  断片データ取得部
３２  メディア処理部
３３  処理結果送信部
４０  統合部
４１  処理結果受付部
４２  処理結果統合部
４３  統合結果返却部
【図１】
0005546951.tif 000002
【図２】
0005546951.tif 000003
【図３】
0005546951.tif 000004
【図４】
0005546951.tif 000005
【図５】
0005546951.tif 000006
【図６】
0005546951.tif 000007
【図７】
0005546951.tif 000008
【図８】
0005546951.tif 000009
【図９】
0005546951.tif 000010
【図１０】
0005546951.tif 000011
【図１１】
0005546951.tif 000012
【図１２】
0005546951.tif 000013
【図１３】
0005546951.tif 000014