図1は、本実施形態に係る情報処理システムの機能ブロック図である。情報処理システム1は、情報処理装置2と格納装置3を含む。
情報処理装置2は、複数の時系列情報を受信し、複数の時系列情報を統合した統合情報4と、統合情報における複数の時系列情報のそれぞれの位置を特定するための管理情報5と、を生成し、統合情報4と管理情報5を送信する。また、情報処理装置2は、格納装置3に格納された複数の時系列情報のいずれかに対する配信要求に応じて、格納装置3から、統合情報4と管理情報5を取得し、管理情報5を用いて統合情報4における、配信要求に対応する時系列情報の位置を特定し、特定した位置に基づいて、統合情報4から配信要求に対応する時系列情報を抽出して出力する。
格納装置3は、情報処理装置2から送信された統合情報4と管理情報5を受信し、格納する。
複数の時系列情報はそれぞれ、例えば互いに異なる地点で同時刻に撮影された映像データである。
先ず、図2を参照して本実施形態に係る情報処理システムの全体の構成の一例を説明する。そして、図3及び図4を参照して、映像蓄積配信システムにおいて、OPSがボトルネックとなる構成の一例を説明する。その後、図5〜図14を参照して、OPSを削減することができる本実施形態に係る情報処理システムの説明をする。
図2は、本実施形態に係る情報処理システムの構成の一例を示す図である。情報処理システムは、蓄積サーバ102、NAS103、配信サーバ104を含む。蓄積サーバ102は複数のエンコーダA、B、C、D(101a、101b、101c、101d)にネットワーク等を介して接続される。また、配信サーバ104はクライアント端末105にネットワーク等を介して接続される。さらに、蓄積サーバ102とNAS103、及び配信サーバ104とNAS103はネットワーク等を介して接続される。ここで、ネットワークは、例えばインターネット等のIP通信網である。各機器の接続の形態はネットワークに限定されず、例えばバス等を介して接続されてもよい。また、蓄積サーバ102、配信サーバ104は情報処理装置2の一例として挙げられる。NAS103は格納装置3の一例として挙げられる。
エンコーダA、B、C、D(101a、101b、101c、101d)は、それぞれが異なる地点において例えばカメラ等で撮影された映像データを符号化し、蓄積サーバ102に符号化した映像データを送信する。尚、以下の説明では、エンコーダA、B、C、D(101a、101b、101c、101d)を単にエンコーダ101と記す。尚、エンコーダ101が送信する映像データは時系列データであり、所定の時間間隔で定期的に送信される。
蓄積サーバ102は、複数のエンコーダ101から映像データを受信し、受信した映像データをNAS103に記憶されたファイルに対して書き込みを行う。
NAS103は、蓄積サーバ102から映像データの書き込みが行われるファイルを記憶する。
配信サーバ104は、クライアント端末105から映像データの配信要求を受け付け、配信要求に応じて、配信要求対象のデータをNAS103から取得して、クライアント端末105に配信する。
クライアント端末105は、配信サーバ104に対して映像データの配信要求を行う。配信要求は、クライアント端末105で稼動する再生アプリケーション106により実行される。再生アプリケーション106は、例えば同一時刻における複数地点の映像データを同時にストリーム形式で視聴することを可能とするアプリケーションである。よって再生アプリケーション106からの配信要求は、同一時刻における複数地点の映像データの配信要求となる。このような配信要求を受けた配信サーバ104は、同一時刻における複数地点の映像データをNAS103から取得する。尚、再生アプリケーションはストリーミング形式での再生に限定されず、所定のデータ量の映像データをクライアント端末上に格納して、再生してもよい。
次に、図3及び図4を参照して、OPSがボトルネックとなる映像蓄積配信システムの構成の一例を説明する。
図3は、映像蓄積配信システムの書き込み処理に関する構成の一例である。映像蓄積配信システムは、蓄積サーバ202、及びNAS203を含む。また、蓄積サーバ202は、映像データを符号化して送信する複数のエンコーダと接続する。エンコーダA、B、C、D(101a、101b、101c、101d)は、図2のエンコーダ101に対応する。蓄積サーバ202、NAS203は、それぞれ、図2の蓄積サーバ102、NAS103の一例である。
蓄積サーバ202は、蓄積スレッドA、B、C、D(204a、204b、204c、204d)、NAS通信部205を含む。尚、以下の説明では、蓄積スレッドA、B、C、D(204a、204b、204c、204d)を、それぞれのスレッドを特に区別しない場合には、単に蓄積スレッド204と記す。
図3の例では、蓄積サーバ202によるデータの書き込み処理は、映像データの撮影地点に応じて異なるファイルに分けて行われる。ここで、アクセス対象データが複数のファイルに跨る場合には、アクセス対象のファイルの数の分だけ、蓄積サーバ202とNAS203の間のオペレーション(アクセス)が発生することとなる。
蓄積スレッド204は、エンコーダ101から映像データを受信し、NAS通信部205を介して受信した映像データをNAS203に書き込む処理を行う。蓄積スレッド204の各々は、エンコーダ101に対応付けられており、対応するエンコーダ101から映像データを受信する。そして、蓄積スレッド204は、受信した映像データを所定の記憶領域(例えばメモリやキャッシュ等)に蓄積し、所定のデータ量分のデータが蓄積されたらNAS203のファイルに書き込む。書き込みが行われるNAS203のファイルは、映像の撮影地点毎に対応付けて作成され、蓄積スレッド204は、受信した映像データを、その映像データの撮影地点に対応するNAS203のファイルに書き込む。尚、書き込み処理における1回のオペレーションでは、蓄積スレッド204はNAS203の1つのファイルに対する書き込みしかできない。
NAS通信部205は、NAS203と接続するインターフェースである。NAS通信部205は蓄積スレッド204から映像データを受信し、受信した映像データをNAS203に送信する。
NAS203は、映像ファイルA、B、C、D(206a、206b、206c、206d)を含む。以下の説明では、映像ファイルA、B、C、D(206a、206b、206c、206d)を、それぞれの映像ファイルを特に区別しない場合には、単に映像ファイル206と記す。映像ファイル206の各々は、映像ファイルの撮影地点ごとに対応付けられており、各々対応する撮影地点で撮影された映像データが格納される。また、映像データは蓄積スレッド204によりNAS通信部205を介して書き込まれる。
図3の例では、エンコーダA(101a)、蓄積スレッドA(204a)、映像ファイルA(206a)は、すべて同一の地点Aの映像データに対応するものとする。同様に、エンコーダB、蓄積スレッドB、映像ファイルBは、地点Bの映像データに対応し、エンコーダC、蓄積スレッドC、映像ファイルCは、地点Cの映像データに対応するものとする。また、エンコーダD、蓄積スレッドD、映像ファイルDは、地点Dの映像データに対応するものとする。尚、以下で説明する、図4〜図12についても同様とする。
図3の例においては、蓄積スレッドA(204a)は、エンコーダA(101a)から映像データを受信すると、1回のオペレーションで、NAS通信部205を介して映像ファイルA(206a)に映像データを書き込む。また、蓄積スレッド204bは、蓄積スレッド204aと同様にして、エンコーダ101bから映像データを受信すると、1回のオペレーションで、NAS通信部205を介してNAS203の映像ファイルB(206b)に映像データを書き込む。蓄積スレッド204c、204dについても、蓄積スレッド204aと同様に動作する。
このように、図3の例の場合、地点A〜Dで同時刻に撮影された4つの映像データがNAS203に格納される処理では、蓄積サーバ202とNAS203のオペレーションは4回発生することとなる。すなわち、映像ファイルを地点毎に分けて作成する場合、同時刻に異なる地点で作成された映像データをNAS203に格納する処理において発生するオペレーションの数は、撮影地点の数と同じになる。
図4は、映像蓄積配信システムの配信処理に関する構成の一例である。映像蓄積配信システムは、配信サーバ303、及びNAS304を含む。また、配信サーバ303は、再生アプリケーション106が稼動するクライアント端末105に接続される。
クライアント端末105、再生アプリケーション106は、図2のクライアント端末105、再生アプリケーション106に対応する。また、配信サーバ303、及びNAS304は、それぞれ、図2のNAS103、配信サーバ104の一例である。また、NAS304は、映像ファイルA、B、C、D(307a、307b、307c、307d)を含むが、各映像ファイルは、図3において説明した映像ファイル(206a、206b、206c、206d)に対応する。
クライアント端末105は、同時刻に異なる地点で撮影された複数の映像データを同時に再生する再生アプリケーション106を実行する。再生アプリケーション106は、先ず配信サーバ303に対して、同時刻に異なる地点で撮影された複数の映像データの配信要求を行う。すなわち、配信要求対象の映像データは、同時刻に異なる地点で撮影された複数の映像データとなる。複数の配信要求対象の映像データのうちの各映像データは、撮影地点と撮影時刻で指定される。配信要求対象の複数の映像データは同時刻に異なる地点で撮影された映像データであるため、これら複数の配信要求対象の映像データの撮影時刻は同じになる。この配信要求に応じて、配信サーバ303から映像データが配信されると、再生アプリケーション106は、配信された映像データを受信して再生し、クライアント端末105の画面に出力する。
配信サーバ303は、クライアント端末105から配信要求を受信すると、配信要求対象の映像データをNAS304から取得して、クライアント端末105に配信する。具体的には、配信サーバ303は、先ずクライアント端末105から映像データの配信要求を受信する。すると配信サーバ303は、配信要求で指定された配信要求対象の映像データの撮影地点毎に、配信スレッドA、B、C、D(305a、305b、305c、305d)を起動する。以下の説明では、配信スレッドA、B、C、D(305a、305b、305c、305d)を、それぞれの配信スレッドを特に区別しない場合には、単に配信スレッド305と記す。ここで、配信スレッド305の各々は、配信要求対象の映像データの各撮影地点に対応付けられるものとする。また、配信スレッド305の各々は、対応する撮影地点の映像データをNAS304から取得する。
配信スレッド305は、NAS通信部306を介してNAS304から配信要求対象の映像データを取得する。すなわち、配信スレッド305は、配信要求で指定された複数の対象地点に対応する映像ファイル307から、再生対象時刻の映像データを取得する。ここで、配信スレッド305が異なる撮影地点の映像データを取得する毎に、配信サーバ303とNAS304の間のオペレーションが発生することとなる。そして配信スレッド305は、受信した映像データを蓄積し、クライアント端末105からの配信要求に応じて映像データを配信する。
NAS通信部306はNAS304から映像データを受信し、受信した映像データを配信スレッド305に送信する。
図4の例を用いて、配信処理の全体の流れについて説明する。図4では、クライアント端末105は、所定時刻に4つの地点で撮影された映像データの配信要求を配信サーバ303に送信するとする。また、配信要求対象の4つの地点で取得された映像データは、NAS303の映像ファイルA(307a)、映像ファイルB(307b)、映像ファイルC(307d)、映像ファイルD(307d)に格納されているとする。
配信サーバ303は、クライアント端末105から配信要求を受信すると、配信要求対象の地点毎の映像データを取得するための配信スレッド305を起動する。すなわち、配信サーバ303は、映像ファイルA(307a)の映像データを取得する配信スレッドA(305a)、及び、映像ファイルB(307b)の映像データを取得する配信スレッドB(305b)を起動する。さらに、配信サーバ303は、映像ファイルC(307c)の映像データを取得する配信スレッドC(305c)、及び、映像ファイルD(307d)の映像データを取得する配信スレッドD(305d)を起動する。
配信スレッド305aは、NAS通信部306を介して、映像ファイル307aの映像データの取得命令をNAS304に送信する。NAS304は、映像ファイル307aのうちの要求された映像データを配信サーバ303に送信する。配信サーバ303は、NAS304からNAS通信部306で映像データを受信し、NAS通信部306は配信スレッド305aに受信した映像データを送信する。映像データを受信すると、配信スレッド305aは、その受信した映像データを蓄積し、クライアント端末105に対して所定の転送レートで配信する。配信スレッド305b、305c、305dも配信スレッド305aと同様にして、NAS304から映像データを取得し、クライアント端末105に配信する。
そして、再生アプリケーション106は、配信サーバ303から映像データを受信すると、配信された映像データを受信して再生し、クライアント端末105の画面に出力する。
ここで、図2の蓄積サーバ102とNAS103の間、及び、配信サーバ104とNAS103の間の通信においては、SMB(Server Message Block)等のプロトコルの機能によって、データをサーバ側のNAS通信部でキャッシュすることができる。そのため、小さなデータの書込みや読込みが大量に発生しても、同一ファイルへのアクセスであれば、一旦データをキャッシュに格納することにより、サーバとNAS間のオペレーションの量を軽減することができる。このことを利用して、本実施形態では、異なる地点で撮影された映像データを蓄積サーバ102で統合してNAS103の同一ファイルに書き込むことにより、サーバとNAS間のオペレーション(アクセス)の量を軽減する。
具体的には、蓄積サーバ102は、異なる地点で撮影された映像データを複数のエンコーダから受信すると、受信した複数の映像データをキャッシュに蓄積して一つの映像データに統合し、一度のオペレーションでNAS103の統合ファイルに書き込む。また、配信サーバ104は、NAS103の統合ファイルから一度のオペレーションで所定のデータ量のデータを取得してキャッシュに格納し、キャッシュのデータを配信用に撮影地点毎に分割してクライアントに配信する。
図5は、本実施形態に係る情報処理システムの書き込み処理に関する構成の一例である。エンコーダ101は図2、及び図3において説明したものと同様である。蓄積サーバ402は、情報処理装置2及び蓄積サーバ102の一例である。NAS403は、格納装置3及びNAS103の一例である。
蓄積サーバ402は、蓄積スレッドA、B、C、D(404a、404b、404c、404d)、統合スレッド405、及びNAS通信部406を含む。蓄積スレッドA、B、C、D(404a、404b、404c、404d)は、それぞれの蓄積スレッドを特に区別しない場合には、単に蓄積スレッド404と記す。また、図5では、蓄積スレッド及びエンコーダ101が4つの例を示しているが、蓄積スレッド及びエンコーダの数は4つに限定されない。
蓄積スレッド404は、エンコーダ101と接続されており、各エンコーダ101から映像データを受信する。すなわち、蓄積スレッド404a、404b、404c、404dは、それぞれ、エンコーダ101a、101b、101c、101dから、同時刻に撮影された映像データを受信する。そして、蓄積スレッド404は、エンコーダ101から受信した映像データを蓄積し、所定のデータ量分のデータが蓄積されたら統合スレッド405に蓄積したデータを渡す。すなわち、蓄積スレッド404a、404b、404c、404dは、それぞれ、同時刻に撮影された映像データである、映像データ(1−A)、映像データ(1−B)、映像データ(1−C)、映像データ(1−D)を統合スレッド405に渡す。尚、蓄積スレッド404は、同時刻の映像データの送信元となるエンコーダ101の数に応じて起動されるようにしてもよい。
統合スレッド405は、蓄積スレッド404から複数の同時刻に撮影された映像データを受信する。そして、統合スレッド405は、受信した映像データを管理するための管理情報を映像データ毎に作成する。そして、統合スレッド405は、作成した管理情報を映像データと対応付けてNAS通信部406に渡す。
管理情報は、映像データに対応付けて、映像データ毎に作成される。また、管理情報は、対応する映像データの撮影地点、撮影時刻、及びデータサイズを含む。
NAS通信部406は、統合スレッド405から、同時刻に撮影された複数の映像データと、各々の映像データに対応付けられた管理情報を受信する。すると、NAS通信部406は、同時刻に撮影された複数の映像データを統合し、また、それらの映像データに対応する複数の管理情報を統合する。そして、NAS通信部406は、統合した映像データと統合した管理情報とをNAS403に格納するため送信する。統合された映像データと統合された管理情報は、それぞれ1回のオペレーションでNAS403に送信される。そして、統合された映像データはNAS403の統合映像ファイル407に格納される。また、統合された管理情報はNAS403の統合管理情報408に格納される。尚、統合映像ファイル407は、統合情報4の一例である。また、統合管理情報408は、管理情報5の一例である。
このように、蓄積サーバ402は、同時刻に撮影された映像データを統合して、1回のオペレーションでNAS403に送信することによって、蓄積サーバ402とNAS403の間で発生するデータ送信のオペレーションの回数を削減することができる。
尚、NAS通信部406は、統合スレッド405から受信する同時刻に撮影された複数の映像データのサイズが所定の閾値よりも小さいか否かを判定し、データサイズが所定の閾値よりも小さい場合に、映像データの統合を行うようにしてもよい。
NAS403は、統合映像ファイル407と統合管理情報408を格納する。
統合管理情報408は、複数の管理情報を統合した情報であり、統合映像ファイル407に含まれる各々の映像データを管理するための情報である。図6は、本実施形態に係る統合管理情報408の一例を示す。統合管理情報408は、識別番号51、撮影時刻52、範囲情報53のデータ項目を含む。
識別番号51は、統合映像ファイル407に含まれる各映像データの撮影地点を一意に識別するための識別情報である。
撮影時刻52は、統合映像ファイル407に含まれる各映像データの撮影時刻を示す情報である。尚、図6の例では、時刻のみ記載している例をしているが、日付情報が付加されてもよいし、時刻の標記形式は種々のものが用いられてよい。
範囲情報53は、各映像データが統合映像ファイル407のどの範囲に位置するかを示す情報である。この範囲は、統合映像ファイル407の開始位置から何バイト目から何バイト目に映像データが位置するかを示す。範囲情報53は、各映像データのデータサイズより算出される。
図6の例においては、映像データの撮影地点が4つあり、それぞれA、B、C、Dで表される例を示している。レコード61は、撮影地点が「A」で示される地点であり撮影時刻が「10:00」である映像データが、統合映像ファイル407の「0〜1,151」バイトの範囲に格納されていることを示す。また、レコード62は、撮影地点が「B」で示される地点であり撮影時刻が「10:00」である映像データが、統合映像ファイル407の「1,152〜2,303」バイトの範囲格納されていることを示す。
尚、統合管理情報408は図6の例に限定されない。映像データの撮影地点と撮影時刻が特定され、また、その映像データが統合映像ファイルのどの位置に格納されているのかが特定可能であれば、図6のようにテーブル構造に限定されず、種々のデータ構造をとることができる。また、映像データのサイズが全ての映像ファイルで所定の値で統一されている場合等は、範囲情報53は映像データのサイズに基づいて計算により算出してもよい。
図7は、本実施形態に係る情報処理システムの読み込み処理に関する構成の一例である。情報処理システムは、NAS503、及び配信サーバ504を含む。また、配信サーバ504は、再生アプリケーション106が稼動するクライアント端末105と接続される。クライアント端末105、再生アプリケーション106は、それぞれ、図2及び図4のクライアント端末105、再生アプリケーション106に対応する。NAS503は、格納装置3及びNAS103の一例である。また、配信サーバ504は、情報処理装置2及び配信サーバ104の一例である。統合映像ファイル507、統合管理情報508は、それぞれ、統合情報4、管理情報5の一例である。尚、統合映像ファイル507、統合管理情報508は、それぞれ、図5の統合映像ファイル407、統合管理情報408に対応する。
配信サーバ504は、配信スレッド505、及びNAS通信部506を含む。
配信サーバ504は、クライアント端末105から配信要求を受信すると、配信要求対象の映像データをNAS503から取得して、クライアント端末105に配信する。具体的には、配信サーバ504は、先ずクライアント端末105から映像データの配信要求を受信する。すると配信サーバ504は、配信要求で指定された配信要求対象の映像データの撮影地点毎に、配信スレッドA、B、C、D(505a、505b、505c、505d)を起動する。以下の説明では、配信スレッドA、B、C、D(505a、505b、505c、505d)を、それぞれの配信スレッドを特に区別しない場合には、単に配信スレッド505と記す。ここで、配信スレッド505の各々は、配信要求対象の映像データの各撮影地点に対応付けられるものとする。また、配信スレッド505の各々は、対応する撮影地点の映像データをNAS503から取得する。尚、配信スレッド505は、配信要求で指定された配信要求対象の映像データの撮影地点毎に作成されるとしたが、撮影地点毎に対応付けられた配信スレッド505は、配信サーバ504に常駐していてもよい。
配信スレッド505は、NAS通信部506を介してNAS503から配信要求対象の映像データを取得する。そのために配信スレッド505は、配信要求で指定された地点・時刻に撮影された映像データをNAS503から取得する命令である取得命令を、NAS503に宛ててNAS通信部506に送信する。取得命令には、配信要求で指定された地点と時刻の情報が含まれる。そして、配信スレッド505は、NAS503から配信要求対象の映像データを取得すると、受信した映像データを所定の記憶領域(例えば、メモリやキャッシュ等)に蓄積し、クライアント端末105からの配信要求に応じて映像データを配信する。尚、映像の配信は、例えば、再生アプリケーション106が要求する配信データ転送レートを満たすように、蓄積した映像データのうちから徐々に映像データを配信してもよい。
NAS通信部506は、配信スレッド505から取得命令を受信すると、NAS503から映像データを取得して配信スレッド505に送信する。NAS通信部506は、1回のオペレーションで取得対象の映像データを単独で取得するのではなく、1回のオペレーションで取得対象の映像データと同時刻に撮影された他の複数の映像データをまとめて取得する。
1回のオペレーションにより同時刻に撮影された複数の映像データを取得できるのは、図5において説明したように、同時刻に撮影された複数の映像データが1つのファイルに統合されて統合映像ファイル507に格納されているためである。また、統合映像ファイル507は、撮影時刻が同じである複数の映像データがまとめられて連続した領域に記録されているので、NAS503におけるデータのアクセスが効率的に行われる。
NAS通信部506は、NAS503から映像データを取得するために、先ず、統合管理情報508に基づいて1回のオペレーションで取得する統合映像ファイル507の範囲を特定する。
具体的には、NAS通信部506は、配信スレッド505から映像データの取得命令を受信すると、NAS503に格納されている統合管理情報508を参照する。そしてNAS通信部506は、取得対象の映像データの統合映像ファイル507における範囲情報(位置情報)を取得する。また、NAS通信部506は、取得対象の映像データと同時刻に取得された映像データの情報と、その映像データの統合映像ファイル507における範囲情報を取得する。
図7の例では、NAS通信部506は、いずれかまたは複数の配信スレッド505から映像データの取得命令を受信する。ここでは、NAS通信部506は、配信スレッド505aから、撮影地点が「A」地点であり撮影時刻が「10:00」である映像データ「1−A」の取得要求を受信したとする。すると、NAS通信部506は統合管理情報508を参照して、映像データ「1−A」の、統合映像ファイル507における位置を特定する。すなわち、NAS通信部506は、統合管理情報508の識別番号51の値が「A」であり撮影時刻52の値が「10:00」であるレコードを抽出し、そのレコードの範囲情報53の値を参照する。図6の例では、識別番号51の値が「A」であり撮影時刻52の値が「10:00」であるレコード61の範囲情報53は「0〜1,151」である。この場合、統合管理情報508は映像データ「1−A」の統合映像ファイル507における位置は「0〜1,151」であると特定する。
さらに、NAS通信部506は、映像データ「1−A」と同時刻に取得された映像データとその範囲の情報を特定する。すなわち、NAS通信部506は、統合管理情報508の撮影時刻52の値が「10:00」であるレコードをすべて抽出し、抽出した各レコードの識別番号51と範囲情報53の組の情報を特定する。図6の例では、撮影時刻52の値が「10:00」であるレコードはレコード61以外ではレコード62〜64の3つであり、NAS通信部506は、それぞれの識別番号51と範囲情報53を取得する。
範囲情報を取得すると、NAS通信部506は、取得対象の映像データ及び同時刻に取得された映像データの範囲をすべて含む範囲の映像データを、一度のオペレーション(アクセス)により統合映像ファイル507から取得する。図7の例で映像データ「1−A」が取得対象の映像データである場合、NAS通信部506は、レコード61〜64の範囲情報53で示される「0〜4607」の範囲の映像データを、一度のオペレーションで統合映像ファイル507から取得する。
尚、NAS通信部506は、配信要求で指定された配信要求対象の映像データのみを、一度のオペレーションで統合映像ファイル507から取得するようにしてもよい。例えば、図6のレコード61及び62で示される映像データのみの配信要求があった場合には、NAS通信部506は、レコード61及び62の範囲情報53で示される「0〜2,303」の範囲の映像データを、一度のオペレーションで取得するようにしてもよい。
NAS503から映像データを取得すると、NAS通信部506は、取得した映像データを撮影地点毎に分けて、それぞれの映像データを撮影地点と対応する配信スレッド505に送信する。
例えば、1回のオペレーションで「0〜4,607」の範囲の映像データを取得した場合、取得した映像データのうち「0〜1,151」のデータは、地点Aの映像データであるので、配信スレッドA(505a)に送信される。同様に、「1,152〜2,303」、「2,304〜3,455」、「3,456〜4,607」のデータは、それぞれ地点B、C、Dの映像データであるので、配信スレッドB(505b)、配信スレッドC(505c)、配信スレッドD(505d)に送信される。
図8は、本実施形態に係る蓄積スレッド404の動作フローの一例を示す。
蓄積スレッド404は、先ず映像データを受信する(S501)。すなわち、蓄積スレッド404は、それぞれ対応するエンコーダ101から映像データを受信する。複数のエンコーダ101から受信するデータは、同時刻に異なる地点で撮影された映像データである。
次に、蓄積スレッド404は、受信した映像データを蓄積サーバ102の所定の記憶領域(例えばメモリ)に格納する(S502)。
次に、蓄積スレッド404は、所定の量のデータが所定の記憶領域に溜まったら、格納したデータを統合スレッド405に渡す(S503)。そして、処理はS501に遷移し、蓄積スレッド404は、エンコーダ101から次の映像データを受信する。
図9は、本実施形態に係る統合スレッド405の動作フローの一例を示す。
統合スレッド405は、複数の蓄積スレッド404から映像データを受信する(S601)。複数の蓄積スレッド404から受信するデータは、同時刻に異なる地点で撮影された映像データである。
次に統合スレッド405は、複数の蓄積スレッド404から受信した各映像データに対応付けて、複数の管理情報を作成する(S602)。
次に統合スレッド405は、S601で受信した複数の映像データをNAS403のディスクに格納するために映像データをNAS通信部406に渡す。(S603)。すなわち、統合スレッド405は、受信した映像データをその映像データと対応付けて作成した管理情報とをNAS通信部406に渡す。
図10は、本実施形態に係るNAS通信部406の、NAS403へのデータの書き込み処理における動作フローの一例を示す。
NAS通信部406は、統合スレッド405から複数の映像データと各映像データにそれぞれ対応する管理情報を受信する(S701)。
次に、NAS通信部406は、受信した複数の映像データを統合して、1回のオペレーションでNAS403の統合映像ファイル407に格納する(S702)。
次に、NAS通信部406は、受信した複数の管理情報を統合して、1回のオペレーションでNAS403の統合管理情報408に格納する(S703)。このとき、NAS通信部406は、管理情報の範囲情報53を算出して、更新する。尚、S702とS703は順番が前後してもよい。
図11は、本実施形態に係る配信スレッド505の動作フローの一例を示す。
配信スレッド505は、クライアント端末105から配信要求を受信する(S801)。
次に、配信スレッド505は、配信要求で指定された配信要求対象の映像データが配信サーバ504の所定の記憶領域(例えばメモリやキャッシュ)に存在するか否かを判定する(S802)。
配信要求対象の映像データが配信サーバ504の所定の記憶領域に存在する場合(S802でYes)、配信スレッド505は、その記憶領域に存在する映像データをクライアント端末105に配信する(S803)。配信が完了すると処理は終了する。
配信要求対象の映像データが配信サーバ504の所定の記憶領域に存在しない場合(S802でNo)、配信スレッド505は、配信要求対象の映像データの取得命令をNAS503に宛ててNAS通信部506に送信する(S804)。
配信スレッド505は、NAS通信部506を介して、取得命令に応じたNAS503から映像データを受信する(S805)。
配信スレッド505は、S805で受信した映像データを配信サーバ504の所定の記憶領域に格納し、クライアント端末105に配信する(S806)。配信が完了すると処理は終了する。
尚、S802において、所定の記憶領域に映像データが存在する場合とは、S806において、映像データを所定の記憶領域に格納したときのデータが別の配信要求対象の映像データであった場合である。
また、配信スレッド505は、配信サーバ504に存在する複数の配信スレッド505のうちのいずれかの配信スレッドが配信要求を受信した場合には、その配信要求対象の映像データと同時刻に撮影された映像データをNAS通信部506から受けとる。すると、配信スレッド505は受け取った映像データを所定の記憶領域に格納する。このように格納した映像データが別の配信要求対象の映像データであった場合にも、S802において所定の記憶領域に映像データが存在することとなる。
図12は、本実施形態に係るNAS通信部506の、NAS503からのデータの読み出し処理における動作フローの一例を示す。
NAS通信部506は、配信スレッド505から映像データの取得命令を受信する(S901)。
次に、NAS通信部506は、NAS503に格納された統合映像ファイル507における映像データの取得範囲(取得位置)を特定する(S902)。取得範囲は、取得命令に含まれる時刻情報で示される時刻に撮影された複数の映像データの、統合映像ファイル507における範囲である。具体的には、先ずNAS通信部506は、統合管理情報508を参照し、取得命令で指定される映像データ及びその映像データと同時刻に撮影された複数の映像データの各々の、統合映像ファイル507における位置を特定する。そして、NAS通信部506は、取得命令で指定される映像データ及びその映像データと同時刻に撮影された複数の映像データの、統合映像ファイル507における位置を併せた範囲を取得範囲(取得位置)と特定する。
NAS通信部506は、ネットワークを介して、NAS503に格納された統合映像ファイル507から、S902で特定した取得範囲(取得位置)の映像データを1回のオペレーションで読み込む(S903)。
NAS通信部506は、読み込んだ映像データを撮影地点毎に分割する(S904)。すなわち、NAS通信部506は、S902において特定した、取得命令で指定される映像データと同時刻に撮影された各映像データの範囲(位置)情報に基づいて、読み込んだ映像ファイルを撮影地点毎に分割する。
NAS通信部506は、分割した映像データを、各映像データの撮影地点に対応する配信スレッド505に渡す(S905)。そして、処理は終了する。
図13は、本実施形態に係る蓄積サーバ402、及び配信サーバ504のハードウェア構成の一例を示す。蓄積サーバ402、配信サーバ504は、図13に示すように、CPU1001、メモリ1002、記憶装置1003、読取部1004、通信インターフェース1006を含む。なお、CPU1001、メモリ1002、記憶装置1003、読取部1004、通信インターフェース1006は、例えば、バス1007を介して互いに接続されている。
CPU1001は、メモリ1002を利用して上述のフローチャートの手順を記述したプログラムを実行する。CPU1001は、蓄積サーバ402においては、蓄積スレッド404、統合スレッド405、及びNAS通信部406の機能の一部または全部を提供する。配信サーバ504においては、CPU1001は、配信スレッド505、及びNAS通信部506の機能の一部または全部を提供する。
メモリ1002は、例えば半導体メモリであり、RAM(Random Access Memory)領域およびROM(Read Only Memory)領域を含んで構成される。メモリ1002は、蓄積サーバ402においては、蓄積スレッド404がエンコーダ101から受信した映像データを蓄積する記憶領域として使用される。また、配信サーバ504においては、メモリ1002は、配信スレッド505がNAS503から取得した映像データを格納する記憶領域として使用される。
記憶装置1003は、例えばハードディスク、またはフラッシュメモリ等の半導体メモリである。また、記憶装置1003は、外部記録装置であってもよい。尚記憶装置1003は、蓄積サーバ402または配信サーバ504にあってもなくてもよい。
読取部1004は、CPU1001の指示に従って着脱可能記録媒体1005にアクセスする。着脱可能記録媒体1005は、たとえば、半導体デバイス(USBメモリ等)、磁気的作用により情報が入出力される媒体(磁気ディスク等)、光学的作用により情報が入出力される媒体(CD−ROM、DVD等)などにより実現される。
通信インターフェース1006は、CPU1001の指示に従ってネットワークを介してデータを送受信する。通信インターフェース1006は蓄積サーバ402においては、エンコーダ101と接続するインターフェース、及びNAS通信部406の機能の一部またはすべてを提供する。また、配信サーバ504においては、クライアント端末105と接続するインターフェース、及びNAS通信部506の機能の一部またはすべてを提供する。
実施形態を実現するためのプログラムは、例えば、下記の形態で蓄積サーバ402、及び配信サーバ504に提供される。
(1)記憶装置1003に予めインストールされている。
(2)着脱可能記憶媒体1005により提供される。
(3)ネットワークを介して提供される。
図14は、本実施形態に係るNAS403、503のハードウェア構成の一例を示す。NAS403、503は、図14に示すように、記憶装置1101、通信インターフェース1102を含む。なお、記憶装置1101、通信インターフェース1102は、例えば、バス1103を介して互いに接続されている。
記憶装置1101は、例えばハードディスクであり、統合映像ファイル407、507、統合管理情報408、508を格納する。記憶装置1101は、フラッシュメモリ等の半導体メモリでもよい。
通信インターフェース1102は、ネットワークを介して蓄積サーバ402または配信サーバ504に対してデータを送受信する。
尚、本実施形態は、以上に述べた実施の形態に限定されるものではなく、本実施形態の要旨を逸脱しない範囲内で種々の構成または実施形態を取ることができる。
尚、蓄積サーバ402と配信サーバ504は同一のサーバであってもよい。また、蓄積サーバは402及び配信サーバ504は、それぞれ複数のサーバであってもよい。また、その場合、NAS403、503のデータ(統合映像ファイル407、507、統合管理情報408、508を含む)は、複数のサーバから共有してアクセス可能であってもよい。
また、本実施形態では、NAS403、503に格納されるデータは映像データとして説明したが、映像データに限定されず、例えば、音声データや種々の時系列データ等としてもよい。
また、本実施形態では、同時刻に撮影された異なる地点の複数の映像データを統合するとしたがこれに限定されない。例えば、映像のデータの統合(S702)は、再生アプリケーション106において1画面で再生されるデータに基づいて統合してもよい。例えば、北海道エリアと九州エリアで撮影された映像データを統合してもよいし、また、例えば、同時刻に観測された映像データと音声データを統合してもよい。
また、本実施形態は、NAS403、503に統合映像ファイル407、507、及び統合管理情報408、508が格納されるとしたが、NASに限定されない。例えば、蓄積サーバ402及び配信サーバ504に接続されたSAN(Storage Area Network)に配置された記憶装置などに統合映像ファイル407、507、及び統合管理情報408、508が格納されてもよい。