(57)【要約】【課題】  複数の外部装置から受けるストリームデータの欠損を従来と比べて低減することを目的とする。【解決手段】  外部から受信する複数のストリームデータが格納される第１記憶部と、第１記憶部に格納された複数のストリームデータのそれぞれが所定量となるごとに第２記憶部に所定量のデータを書き込む書込部と、いずれかのストリームデータが第１記憶部に所定量まで格納される前に、第１記憶部に格納済みのストリームデータの書込部による第２記憶部への書き込みが終了しないと判定した場合、ストリームデータを間引き、書込部に間引いたストリームデータを第２記憶部に書き込ませる間引き部と、を有する。【選択図】    図１
2015167280.tif 000002
【特許請求の範囲】
【請求項１】
外部から受信する複数のストリームデータが格納される第１記憶部と、
前記第１記憶部に格納された前記複数のストリームデータのそれぞれが所定量となるごとに第２記憶部に前記所定量のデータを書き込む書込部と、
いずれかの前記ストリームデータが前記第１記憶部に前記所定量まで格納される前に、前記第１記憶部に格納済みの前記ストリームデータの前記書込部による前記第２記憶部への書き込みが終了しないと判定した場合、前記ストリームデータを間引き、前記書込部に間引いた前記ストリームデータを前記第２記憶部に書き込ませる間引き部と、
を備えることを特徴とするデータ蓄積装置。
【請求項２】
請求項１に記載のデータ蓄積装置において、
前記書込部は、前記第１記憶部に格納された前記各ストリームデータを、時間差を置いて前記第２記憶部に書き込むことを特徴とするデータ蓄積装置。
【請求項３】
請求項１または請求項２に記載のデータ蓄積装置において、
前記間引き部は、前記各ストリームデータが前記所定量まで前記第１記憶部に格納されるまでの第１時間、および前記各ストリームデータを前記第２記憶部に書き込むまでに経過する第２時間を予測し、予測した前記第１時間と前記第２時間との比較に応じて、前記ストリームデータの間引く間隔を調整することを特徴とするデータ蓄積装置。
【請求項４】
ストリームデータを出力する複数の装置と、
前記各装置から受信する前記ストリームデータが格納される第１記憶部と、前記第１記憶部に格納された前記複数のストリームデータのそれぞれが所定量となるごとに第２記憶部に前記所定量のデータを書き込む書込部と、いずれかの前記ストリームデータが前記第１記憶部に前記所定量まで格納される前に、前記第１記憶部に格納済みの前記ストリームデータの前記書込部による前記第２記憶部への書き込みが終了しないと判定した場合、前記ストリームデータを間引き、前記書込部に間引いた前記ストリームデータを前記第２記憶部に書き込ませる間引き部と、を含むデータ蓄積装置と、
を備えることを特徴とするデータ蓄積システム。
【請求項５】
外部から受信する複数のストリームデータを第１記憶部に格納し、
前記第１記憶部に格納された前記複数のストリームデータのそれぞれが所定量となるごとに第２記憶部に前記所定量のデータを書き込み、
いずれかの前記ストリームデータが前記第１記憶部に前記所定量まで格納される前に、前記第１記憶部に格納済みの前記ストリームデータの前記第２記憶部への書き込みが終了しないと判定した場合、前記ストリームデータを間引き、
間引いた前記ストリームデータを前記第２記憶部に書き込む、
処理をコンピュータに実行させるデータ蓄積プログラム。
【請求項６】
外部から受信する複数のストリームデータを第１記憶部に格納し、
前記第１記憶部に格納された前記複数のストリームデータのそれぞれが所定量となるごとに第２記憶部に前記所定量のデータを書き込み、
いずれかの前記ストリームデータが前記第１記憶部に前記所定量まで格納される前に、前記第１記憶部に格納済みの前記ストリームデータの前記第２記憶部への書き込みが終了しないと判定した場合、前記ストリームデータを間引き、
間引いた前記ストリームデータを前記第２記憶部に書き込む、
ことを特徴とするデータ蓄積方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ストリームデータを蓄積するデータ蓄積装置、データ蓄積システム、データ蓄積プログラムおよびデータ蓄積方法に関する。
【背景技術】
【０００２】
例えば、サーバにおいて、カメラにより撮影された映像のストリームデータをネットワークから受信し、ネットワークの状態あるいはサーバ内のバッファの空き容量に応じて、受信したストリームデータを蓄積する技術が提案されている（特許文献１，２参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００５−１８４４７６号公報
【特許文献２】特開２００５−２０３９２２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ところで、従来技術では、ネットワークに障害が生じた場合、カメラは、ネットワークが障害から復旧するまでの間、映像のサイズを小さくする、あるいは圧縮符号化の圧縮率を上げる等して、カメラが撮影した映像のストリームデータを一時的に保持する。しかしながら、ネットワークが復旧した直後、複数のカメラは、実時間で撮影している映像と保持した映像とのストリームデータをサーバに一斉に送信を再開するため、サーバは、受信したストリームデータの蓄積が追いつかない虞がある。その結果、サーバは、大量のストリームデータを失ってしまう虞がある。
【０００５】
一つの側面では、本発明は、複数の外部装置から受けるストリームデータの欠損を従来と比べて低減することを目的とする。
【課題を解決するための手段】
【０００６】
一つの態様では、データ蓄積装置は、外部から受信する複数のストリームデータが格納される第１記憶部と、第１記憶部に格納された複数のストリームデータのそれぞれが所定量となるごとに第２記憶部に所定量のデータを書き込む書込部と、いずれかのストリームデータが第１記憶部に所定量まで格納される前に、第１記憶部に格納済みのストリームデータの書込部による第２記憶部への書き込みが終了しないと判定した場合、ストリームデータを間引き、書込部に間引いたストリームデータを第２記憶部に書き込ませる間引き部と、を有する。
【０００７】
別の態様では、データ蓄積システムは、ストリームデータを出力する複数の装置、各装置から受信するストリームデータが格納される第１記憶部と、第１記憶部に格納された複数のストリームデータのそれぞれが所定量となるごとに第２記憶部に所定量のデータを書き込む書込部と、いずれかのストリームデータが第１記憶部に所定量まで格納される前に、第１記憶部に格納済みのストリームデータの書込部による第２記憶部への書き込みが終了しないと判定した場合、ストリームデータを間引き、書込部に間引いたストリームデータを第２記憶部に書き込ませる間引き部と、を含むデータ蓄積装置と、を有する。
【０００８】
また、別の態様では、データ蓄積プログラムは、外部から受信する複数のストリームデータを第１記憶部に格納し、第１記憶部に格納された複数のストリームデータのそれぞれが所定量となるごとに第２記憶部に所定量のデータを書き込み、いずれかのストリームデータが第１記憶部に所定量まで格納される前に、第１記憶部に格納済みのストリームデータの第２記憶部への書き込みが終了しないと判定した場合、ストリームデータを間引き、間引いたストリームデータを第２記憶部に書き込む、処理をコンピュータに実行させる。
【０００９】
さらに、別の態様では、データ蓄積方法は、外部から受信する複数のストリームデータを第１記憶部に格納し、第１記憶部に格納された複数のストリームデータのそれぞれが所定量となるごとに第２記憶部に所定量のデータを書き込み、いずれかのストリームデータが第１記憶部に所定量まで格納される前に、第１記憶部に格納済みのストリームデータの第２記憶部への書き込みが終了しないと判定した場合、ストリームデータを間引き、間引いたストリームデータを第２記憶部に書き込む。
【発明の効果】
【００１０】
一つの側面として、複数の外部装置から受けるストリームデータの欠損を従来と比べて低減することができる。
【図面の簡単な説明】
【００１１】
【図１】データ蓄積装置およびデータ蓄積システムの一実施形態を示す図である。
【図２】図１に示したデータ蓄積装置による各カメラからのストリームデータの受信期間および書込期間の例を示す図である。
【図３】図１に示したデータ蓄積システムにおける蓄積処理の例を示す図である。
【図４】データ蓄積装置およびデータ蓄積システムの別実施形態を示す図である。
【図５】図４に示したカメラにより送信されるＨ．２６４の規格で動画圧縮された映像のストリームデータの例を示す図である。
【図６】図４に示したデータ蓄積装置による各カメラからのストリームデータの受信期間および書込期間の例を示す図である。
【図７】図４に示したデータ蓄積システムにおける蓄積処理の例を示す図である。
【図８】データ蓄積装置およびデータ蓄積システムの別実施形態を示す図である。
【図９】図１、図４および図８に示したデータ蓄積装置およびデータ蓄積システムのハードウェア構成例を示す図である。
【発明を実施するための形態】
【００１２】
以下、図面を用いて実施形態を説明する。
【００１３】
図１は、データ蓄積装置およびデータ蓄積システムの一実施形態を示す。
【００１４】
図１に示すデータ蓄積システム１００は、データ蓄積装置１０およびＮ個のカメラ２０（２０（１）−２０（Ｎ））を含む（Ｎは正の整数）。データ蓄積装置１０とカメラ２０（１）−２０（Ｎ）とは、ＩＰ（Internet Protocol）ネットワーク等のネットワーク３０を介して互いに接続される。
【００１５】
例えば、カメラ２０は、河川またはダム等に配置され、水位を監視するための画像を撮影する。あるいは、カメラ２０は、商店街または店舗内等に配置され、人の流れを監視するための画像を撮影する。そして、カメラ２０は、例えば、画像を毎秒数コマから数十コマのフレームレートで撮影し、ＭＰＥＧ（Moving Picture Experts Group）あるいはＨ．２６４等の動画圧縮の規格に基づいて映像のストリームデータを生成する。カメラ２０は、生成した映像のストリームデータを、ネットワーク３０を介してデータ蓄積装置１０に送信する。なお、ストリームデータにおける画像の大きさおよびフレームレートは、カメラ２０ごとに異なっていてもよい。
【００１６】
データ蓄積装置１０は、第１記憶部１１、第２記憶部１２、書込部１３および間引き部１４を含む。また、データ蓄積装置１０は、キーボードやタッチパネル等の入力装置を含む。
【００１７】
例えば、第１記憶部１１は、ＲＡＭ（Random Access Memory）等のバッファであり、各カメラ２０から受信した映像のストリームデータを格納する。例えば、第１記憶部１１は、カメラ２０ごとに割り当てられ、予め設定された所定のデータ量を格納する格納領域１５（１５（１）−１５（Ｎ））を有する。なお、複数の第１記憶部１１が、各カメラ２０に対応して配置されてもよい。また、格納領域１５（１）−１５（Ｎ）に格納される所定のデータ量は、各カメラ２０において撮影される画像の大きさあるいはフレームレートに応じて異なっていてもよい。
【００１８】
例えば、第２記憶部１２は、ハードディスク装置、ＮＡＳ（Network Attached Storage）またはＲＡＩＤ（Redundant Arrays of Inexpensive Disks）等である。第２記憶部１２には、書込部１３からの制御指示に応じて、第１記憶部１１に格納された各カメラ２０の映像のストリームデータが書き込まれる。また、第２記憶部１２は、データ蓄積装置１０に含まれるプロセッサ等の制御部により実行されるプログラムを格納する格納領域を有する。
【００１９】
例えば、書込部１３は、第１記憶部１１に格納された複数のストリームデータのそれぞれが所定のデータ量となるごとに第２記憶部１２に所定のデータ量のストリームデータを書き込む。書込部１３の動作については、図３で説明する。
【００２０】
例えば、間引き部１４は、いずれかのストリームデータが第１記憶部１１に所定のデータ量まで格納される前に、第１記憶部１１に格納済みのストリームデータの書込部１３による第２記憶部１２への書き込みが終了するか否かを判定する。間引き部１４は、例えば、カメラ２０のうち最後に第１記憶部１１に格納されるストリームデータが所定のデータ量まで格納される前に、第１記憶部１１に格納済みのストリームデータの書込部１３による第２記憶部１２への書き込みが終了するか否かを判定する。間引き部１４は、書き込みが終了しないと判定した場合、第１記憶部１１に格納された各カメラ２０のストリームデータを間引き、書込部１３に間引いたストリームデータを第２記憶部１２に書き込ませる。一方、間引き部１４は、書き込みが終了すると判定した場合、ストリームデータの間引きは行わない。間引き部１４の動作については、図２で説明する。
【００２１】
図２は、図１に示したデータ蓄積装置１０による各カメラ２０からのストリームデータの受信および書込のタイミングの例を示す。図２では、４つのカメラ２０（１）−２０（４）から受信されたストリームデータを示す。破線で示す矩形ｒａ１−ｒａ４，ｒｂ１−ｒｂ４，ｒｃ１−ｒｃ４，ｒｄ１−ｒｄ４は、カメラ２０（１）−２０（４）それぞれからの映像のストリームデータが、各格納領域１５（１）−１５（４）に設定された所定のデータ量まで格納をされる受信期間を示す。実線で示す矩形ｗａ１−ｗａ３，ｗｂ１−ｗｂ３，ｗｃ１−ｗｃ３，ｗｄ１−ｗｄ３は、書込部１３が格納領域１５（１）−１５（４）に格納されたストリームデータを第２記憶部１２に書き込む書込期間を示す。なお、受信期間および書込期間の開始時刻および終了時刻は、第２記憶部１２に対する書き込み処理の負荷の大きさ、ネットワーク３０との通信速度、あるいは間引き部１４による間引き処理等に応じて変動する。
【００２２】
また、各カメラ２０のストリームデータの受信期間は、例えば、互いに時間差Δｔを置いて開始される。例えば、データ蓄積装置１０に含まれるプロセッサ等の制御部が、プログラムを実行し、映像のストリームデータを出力するタイミングを互いにずらす制御信号を各カメラ２０に送信することで、互いに時間差Δｔを置いた各カメラ２０の受信期間を実現できる。各カメラ２０の受信期間に時間差Δｔを置くことにより、書込部１３が各カメラ２０のストリームデータを第２記憶部１２に書き込む書込期間が分散され、第２記憶部１２へのストリームデータの書き込み速度が低下することを回避できる。
【００２３】
時刻ｔ１，ｔ２，ｔ３，ｔ４は、受信期間ｒａ１，ｒｂ１，ｒｃ１，ｒｄ１それぞれにおいて、カメラ２０（１）−２０（４）からのストリームデータの受信を開始した時刻を示す。なお、時刻ｔ１，ｔ２，ｔ３，ｔ４の間隔は時間差Δｔである。時刻ｔ５，ｔ６，ｔ７，ｔ８は、各格納領域１５に所定のデータ量のストリームデータが格納された時刻を示すとともに、書込部１３が各格納領域１５に格納された所定のデータ量のストリームデータを第２記憶部１２に書き込みを開始する時刻を示す。すなわち、時刻ｔ５，ｔ６，ｔ７，ｔ８は、受信期間ｒａ１，ｒｂ１，ｒｃ１，ｒｄ１の終了時刻とともに、書込期間ｗａ１，ｗｂ１，ｗｃ１，ｗｄ１の開始時刻をそれぞれ示す。時刻ｔ９，ｔ１０，ｔ１１，ｔ１２は、書込期間ｗａ１，ｗｂ１，ｗｃ１，ｗｄ１の終了時刻を示す。また、時刻ｔ１３は、第１記憶部１１がカメラ２０（４）のストリームデータを格納領域１５（４）に格納を開始する受信期間ｒｄ３の開始時刻を示す。間引き部１４は、各受信期間および書込期間の開始時刻および終了時刻を取得し、取得した時刻をデータ蓄積装置１０に含まれるＲＡＭ等の第１記憶部１１に一時的に保持する。
【００２４】
例えば、第１記憶部１１は、時刻ｔ１から時刻ｔ５の受信期間ｒａ１で、カメラ２０（１）からのストリームデータのうち所定のデータ量を格納領域１５（１）に格納する。書込部１３は、書込期間ｗａ１の開始時刻ｔ５に、格納領域１５（１）に格納されたカメラ２０（１）のストリームデータを読み出し、読み出したストリームデータを第２記憶部１２に書き込みを開始する。また、第１記憶部１１は、受信期間ｒａ２の開始時刻ｔ５に、カメラ２０（１）から受信する新たなストリームデータを格納領域１５（１）に格納を開始する。なお、カメラ２０（２）−（４）から受信するストリームデータについても、カメラ２０（１）の場合と同様に、図２に示した受信期間に応じて、第１記憶部１１の格納領域１５（２）−１５（４）にそれぞれ格納される。そして、書込部１３は、格納領域１５（２）−１５（４）に所定のデータ量が格納された順に、カメラ２０（２）−（４）から受信するストリームデータを、カメラ２０（１）の場合と同様に、図２に示した書込期間に第２記憶部１２に書き込む。
【００２５】
例えば、間引き部１４は、上述したように、受信期間および書込期間の時刻は変動することから、カメラ２０（１）の書込期間ｗａ１において、第２記憶部１２へのストリームデータの書き込み速度Ｖを計測する。間引き部１４は、受信期間ｒａ１，ｒｂ１，ｒｃ１，ｒｄ１の各々で受信した各カメラ２０のストリームデータを第２記憶部１２に書き込む間に経過する書込時間Ｔｗを、計測した速度Ｖと式（１）とを用い予測する。
Ｔｗ＝（Ｄ（１）＋Ｄ（２）＋Ｄ（３）＋Ｄ（４））／Ｖ  …（１）
ここで、Ｄ（１），Ｄ（２），Ｄ（３），Ｄ（４）は、格納領域１５（１）−１５（４）それぞれにおける所定のデータ量を示す。
【００２６】
また、間引き部１４は、例えば、各受信期間ｒａ１，ｒｂ１，ｒｃ１，ｒｄ１で所定のデータ量のストリームデータが格納済みの格納領域１５に対して、格納を終了した時刻の早い順にストリームデータが第２記憶部１２に書き込まれることを示す優先度を設定する。間引き部１４は、例えば、図２に示した書込期間ｗａ１の終了時刻ｔ９において、カメラ２０（４）のストリームデータを格納する格納領域１５（４）に他の格納領域１５より低い優先度を設定する。間引き部１４は、書込期間ｗａ１の終了時刻ｔ９において、優先度が低い格納領域１５（４）にカメラ２０（４）からのストリームデータが所定のデータ量まで格納される受信期間ｒｄ２の終了時刻ｔ１３までの残り時間Ｔｅを、式（２）を用いて予測する。
Ｔｅ＝（ｔ８−ｔ４）−（ｔ９−ｔ８）  …（２）
ここで、（ｔ８−ｔ４）は、受信期間ｒｄ１−ｒｄ３等のカメラ２０（４）における受信期間の時間を示し、（ｔ９−ｔ８）は、受信期間ｒｄ２の開始時刻ｔ８から現在の時刻ｔ９までの経過した時間を示す。
【００２７】
例えば、ネットワーク３０との通信が途絶えた後に復旧した場合、各カメラ２０は、ストリームデータを一斉にデータ蓄積装置１０に送信する。そのために、各格納領域１５に格納された所定のデータ量のストリームデータの第２記憶部１２への書き込みが集中するため、書き込みの速度Ｖが低下する。その結果、例えば、予測される書込時間Ｔｗが長くなり、図２に示した書込期間ｗｄ１の終了時刻ｔ１２が、受信期間ｒｄ３の開始時刻ｔ１３よりも後になる可能性がある。換言すれば、優先度の低い格納領域１５（４）において、受信期間ｒｄ１で格納されたストリームデータが、第２記憶部１２に書き込まれる前に、受信期間ｒｄ２で格納されるストリームデータによって上書きされる虞がある。
【００２８】
そこで、間引き部１４は、例えば、書込時間Ｔｗが残り時間Ｔｅより長いか否かを判定する。間引き部１４は、書込時間Ｔｗが残り時間Ｔｅより長い場合、残り時間Ｔｅが経過する前に、各受信期間ｒａ１，ｒｂ１，ｒｃ１，ｒｄ１で受信したストリームデータの第２記憶部１２への書き込みが終了しないと判定する。すなわち、間引き部１４は、優先度の低い格納領域１５（４）において、受信期間ｒｄ１に格納されたストリームデータが、第２記憶部１２に書き込まれる前に、受信期間ｒｄ２に受信するストリームデータによって上書きされると判定する。間引き部１４は、各格納領域１５に格納済みのストリームデータを間引き、書込部１３は、間引かれたストリームデータを第２記憶部１２に書き込む。このように、間引き部１４が格納済みのストリームデータを間引くことで、書込部１３によるストリームデータの第２記憶部１２への書込期間ｗｂ１，ｗｃ１，ｗｄ１を短縮し、各カメラ２０から受信したストリームデータの欠損の低減を図る。
【００２９】
一方、間引き部１４は、書込時間Ｔｗが残り時間Ｔｅ以下の場合、受信期間ｒａ１，ｒｂ１，ｒｃ１，ｒｄ１で受信したストリームデータを第２記憶部１２に書き込むのに十分な時間があると判定する。
【００３０】
また、間引き部１４は、例えば、カメラ２０（２）の書込期間ｗｂ１において、第２記憶部１２へのストリームデータの書き込み速度Ｖを計測する。例えば、間引き部１４は、受信期間ｒｂ１，ｒｃ１，ｒｄ１，ｒａ２に所定のデータ量が格納済みの各格納領域１５のストリームデータを書き込むのにかかる書込時間Ｔｗを、計測した速度Ｖおよび式（１）を用い予測する。また、間引き部１４は、例えば、各受信期間ｒｂ１，ｒｃ１，ｒｄ１，ｒａ２で所定のデータ量のストリームデータが格納済みの格納領域１５に対して、格納が終了した時刻の早い順に第２記憶部１２に書き込まれる優先度を新たに設定する。間引き部１４は、例えば、図２の場合において、カメラ２０（１）のストリームデータを格納する格納領域１５（１）を他の格納領域１５より低い優先度に設定する。間引き部１４は、書込期間ｗｂ１の終了時刻ｔ１０において、優先度が低い格納領域１５（１）にカメラ２０（１）からのストリームデータが所定のデータ量まで格納される受信期間ｒａ３の終了時刻までの残り時間Ｔｅを、式（２）を用いて予測する。そして、間引き部１４は、例えば、書込時間Ｔｗが残り時間Ｔｅより長いか否かを判定する。
【００３１】
間引き部１４は、書込時間Ｔｗが残り時間Ｔｅより長い場合、残り時間Ｔｅが経過する前に、各受信期間ｒｂ１，ｒｃ１，ｒｄ１，ｒａ２で受信したストリームデータの第２記憶部１２への書き込みが終了しないと判定する。この場合に、間引き部１４は、各格納領域１５に格納済みのストリームデータを間引き、書込部１３は、間引かれたストリームデータを第２記憶部１２に書き込む。一方、間引き部１４は、予測した書込時間Ｔｗが残り時間Ｔｅ以下の場合、各格納領域１５に格納されたストリームデータを第２記憶部１２に書き込むのに十分な時間があると判定する。
【００３２】
このように、間引き部１４は、各書込期間の終了時刻において、同様の処理を行い、各カメラ２０に対応して格納領域１５に格納されたストリームデータを第２記憶部１２に書き込む際に、書き込むストリームデータを間引きするか否かを判定する。
【００３３】
図３は、図１に示したデータ蓄積システム１００における蓄積処理の例を示す。図３（ａ）は、データ蓄積装置１０の動作の例を示し、図３（ｂ）は、カメラ２０の動作の例を示す。図３（ａ）に示したステップＳ１０、ステップＳ１１、ステップＳ１２、ステップＳ１３、ステップＳ１４およびステップＳ１５の動作は、データ蓄積装置１０に含まれるプロセッサ等の制御部がデータ蓄積プログラムを実行することにより実現される。また、図３（ｂ）に示したステップＳ２０の動作は、カメラ２０（１）に含まれるプロセッサ等の制御部がプログラムを実行することにより実現される。すなわち、図３は、データ蓄積プログラムおよびデータ蓄積方法の一実施形態を示す。なお、図３に示す処理は、データ蓄積装置１０およびカメラ２０（１）に搭載されるハードウェアにより実行されてもよい。この場合、図１に示した書込部１３および間引き部１４は、データ蓄積装置１０内に配置される回路により実現される。
【００３４】
なお、データ蓄積装置１０とカメラ２０（２）−２０（Ｎ）それぞれとの処理は、図３に示したデータ蓄積装置１０とカメラ２０（１）との処理と同様であり、並行して実行される。
【００３５】
ステップＳ１０において、データ蓄積装置１０に含まれるプロセッサ等の制御部は、図１および図２において説明したように、映像のストリームデータを出力するタイミングを互いにずらす制御信号を各カメラ２０に送信する。
【００３６】
次に、ステップＳ１１において、第１記憶部１１は、図１において説明したように、各カメラ２０から受信した映像のストリームデータを、カメラ２０ごとに割り当てられた格納領域１５に格納する。
【００３７】
次に、ステップＳ１２において、書込部１３は、図１および図２において説明したように、第１記憶部１１の各格納領域１５において、所定のデータ量のストリームデータが格納されるごとに、所定のデータ量のストリームデータを第２記憶部１２に書き込む。
【００３８】
次に、ステップＳ１３において、間引き部１４は、図２において説明したように、予測した書込時間Ｔｗが残り時間Ｔｅより長いか否かを判定する。例えば、間引き部１４は、各カメラ２０から受けた所定のデータ量のストリームデータが第２記憶部１２に書き込まれる書込期間ごとに、書き込み速度Ｖを計測し、計測した速度Ｖおよび式（１）を用い、書込時間Ｔｗを予測する。また、間引き部１４は、各書込期間が終了するごとに、所定のデータ量のストリームデータの受信が早く終了した順に各格納領域１５の優先度を設定する。間引き部１４は、他の格納領域１５より低い優先度が設定された格納領域１５にストリームデータが所定のデータ量まで格納される残り時間Ｔｅを、式（２）と同様の計算式を用いて予測する。間引き部１４は、予測した書込時間Ｔｗが残り時間Ｔｅより長い場合（ＹＥＳ）、残り時間Ｔｅが経過する前に、各格納領域１５に格納済みのストリームデータの第２記憶部１２への書き込みが終了しないと判定する。間引き部１４は、処理をステップＳ１４に移行する。一方、間引き部１４は、予測した書込時間Ｔｗが残り時間Ｔｅ以下の場合（ＮＯ）、各格納領域１５に格納済みのストリームデータを第２記憶部１２に書き込むのに十分な時間があると判定する。間引き部１４は、処理をステップＳ１１に移行する。
【００３９】
ステップＳ１４において、間引き部１４は、図２において説明したように、優先度の順に、格納領域１５に所定のデータ量が格納されたストリームデータを間引く。
【００４０】
次に、ステップＳ１５において、データ蓄積装置１０に含まれる制御部は、入力装置を介して管理者から蓄積処理の終了を示す信号等を受けたか否かを判定する。データ蓄積装置１０の制御部は、終了の信号を受けた場合（ＹＥＳ）、蓄積処理を終了する。なお、データ蓄積装置１０の制御部は、終了の信号を受けた場合、蓄積処理を終了するとともに、各カメラ２０に対して撮影の停止を指示する信号を送信してもよい。一方、データ蓄積装置１０の制御部は、終了の信号を受けていない場合（ＮＯ）、処理をステップＳ１１に移行し、書込部１３に、ステップＳ１４で間引き部１４により間引かれたストリームデータを第２記憶部１２に書き込ませる。
【００４１】
一方、図３（ｂ）に示したステップＳ２０において、カメラ２０（１）は、データ蓄積装置１０から受信した制御信号に基づいて、映像のストリームデータをデータ蓄積装置１０に送信する。その後、カメラ２０（１）は、撮影の停止を指示する制御信号をデータ蓄積装置１０から受けた場合、撮影を停止し、映像のストリームデータの送信を停止する。
【００４２】
以上、この実施形態では、間引き部１４は、書込部１３が各カメラ２０からのストリームデータを第２記憶部１２に書き込むごとに、書込時間Ｔｗと残り時間Ｔｅとを予測し、予測した書込時間Ｔｗと残り時間Ｔｅとを比較する。間引き部１４は、書込時間Ｔｗが残り時間Ｔｅより長い場合、各カメラ２０から受けたストリームデータを間引き、書込部１３は、間引かれたストリームデータを第２記憶部１２に書き込む。すなわち、データ蓄積装置１０は、いずれかのストリームデータの第２記憶部１２への書き込みが間に合わなくなることが予測される場合に、第２記憶部１２に書き込むデータを間引くことで、書き込みにかかる時間を短縮する。したがって、第２記憶部１２への書き込みが間に合わなくなることが予測されたストリームデータのうち、新たに受信したデータによる既に受信されたデータの上書きを抑制することができる。これにより、データ蓄積装置１０は、例えば、ネットワーク３０の通信が途絶えた後に復旧し、各カメラ２０からストリームデータを一斉に受信する場合でも、ストリームデータの欠損を従来と比べて低減することができる。
【００４３】
また、データ蓄積装置１０の制御部が第２記憶部１２に格納されたストリームデータあるいはプログラム等へ頻繁にアクセスする場合、第２記憶部１２への書き込み速度Ｖが低下し、書込時間Ｔｗが長くなる。そのような場合でも、間引き部１４は、書込時間Ｔｗと残り時間Ｔｅとの比較に応じてストリームデータを間引くことで、データ蓄積装置１０は、ストリームデータの欠損を従来と比べて低減することができる。
【００４４】
また、ストリームデータがＶＢＲ（Variable Bit Rate）等である場合、ストリームデータの受信期間が変動し、書込時間Ｔｗも変動する。そのような場合でも、間引き部１４は、書込時間Ｔｗと残り時間Ｔｅとの比較に基づいて、ストリームデータを間引くことで、データ蓄積装置１０は、ストリームデータの欠損を従来と比べて低減することができる。
【００４５】
なお、データ蓄積装置１０は、カメラ２０から送信される映像のストリームデータを蓄積したが、これに限定されない。例えば、ＰＯＳ（Point of Sale）システムのレジスタ装置あるいはＲＦＩＤ（Radio Frequency Identification）から送信される商品名、価格、数量等を示す情報のストリームデータを蓄積してもよい。間引き部１４は、例えば、商品を購入した人の年齢層あるいは店舗がある地域に応じて情報を抽出し、ストリームデータを間引いてもよい。
【００４６】
なお、書込部１３は、図２に示すように、各ストリームデータの書込期間を互いにずらしたが、例えば、カメラ２０（１）とカメラ２０（２）とのストリームデータを、同じ書込期間の開始時刻で、並行に第２記憶部１２に書き込んでもよい。なお、並行に第２記憶部１２への書き込みができるストリームデータの数は、例えば、データ蓄積装置１０にインストールされるＯＳ（Operating System）の仕様あるいは第２記憶部１２への書き込み速度に応じて決定される。
【００４７】
図４は、データ蓄積装置およびデータ蓄積システムの別実施形態を示す。図４に示すデータ蓄積システム１００の各要素において、図１に示したデータ蓄積システム１００の要素と同一または同様の機能を有するものについては、同一の符号を付し、詳細な説明は省略する。
【００４８】
図４に示すデータ蓄積システム１００は、データ蓄積装置１０ａおよびＮ個のカメラ２０を含む。データ蓄積装置１０ａとカメラ２０（１）−２０（Ｎ）とは、ＩＰネットワーク等のネットワーク３０を介して互いに接続される。各カメラ２０は、例えば、Ｈ．２６４の動画圧縮の規格に基づいて映像のストリームデータを生成する。カメラ２０は、生成した映像のストリームデータを、ネットワーク３０を介してデータ蓄積装置１０ａに送信する。Ｈ．２６４規格で動画圧縮された映像のストリームデータについては、図５で説明する。なお、カメラ２０における動画圧縮の規格はＨ．２６４に限定されず、ＭＰＥＧ−２等の他の規格でもよい。
【００４９】
データ蓄積装置１０ａは、第１記憶部１１ａ、第２記憶部１２および制御部１６を含む。また、データ蓄積装置１０ａは、キーボードやタッチパネル等の入力装置、およびディスプレイやプリンタ等の出力装置を含む。
【００５０】
例えば、第１記憶部１１ａは、ＲＡＭ等のバッファであり、各カメラ２０から受信した映像のストリームデータを格納する。例えば、第１記憶部１１ａは、カメラ２０ごとに割り当てられ、予め設定された所定のデータ量を格納する格納領域１５ａ（１５ａ（１）−１５ａ（Ｎ））と格納領域１５ｂ（１５ｂ（１）−１５ｂ（Ｎ））とを有する。格納領域１５ａ（１）−１５ａ（Ｎ）は、各カメラ２０から受けた映像のストリームデータを格納する。各格納領域１５ａは、所定のデータ量のストリームデータが格納されると、格納したストリームデータを第２記憶部１２に書き込むために、制御部１６による制御に基づいて、格納したストリームデータを対応する格納領域１５ｂにそれぞれ移す。そして、格納領域１５ａ（１）−１５ａ（Ｎ）は、各カメラ２０から受けるストリームデータを新たに格納するために、制御部１６による制御に基づいて、格納したストリームデータを消去する。
【００５１】
例えば、第１記憶部１１ａは、各格納領域１５ａから各格納領域１５ｂにストリームデータが移されると、ストリームデータが格納領域１５ｂに移されたことを示す情報を制御部１６に出力する。なお、制御部１６が受ける情報には、ストリームデータが移された格納領域１５ｂを識別する情報が含まれる。
【００５２】
なお、格納領域１５ａ（１）−１５ａ（Ｎ），１５ｂ（１）−１５ｂ（Ｎ）に格納される所定のデータ量は、各カメラ２０において撮影される画像の大きさあるいはフレームレートに応じて異なってもよい。
【００５３】
例えば、制御部１６は、プログラムを実行するプロセッサを含み、プロセッサが第２記憶部１２に格納されるプログラムを実行することで、データ蓄積装置１０ａの各部の動作を統括的に制御する。例えば、制御部１６は、第１記憶部１１ａの各格納領域１５ａに格納されるストリームデータのデータ量を監視する。制御部１６は、所定のデータ量になっていないもかかわらずデータ量が増加しない場合、ネットワーク３０において障害が発生し、カメラ２０からのストリームデータの受信が途絶えた（以下、“ネットワーク断”と称す）ことを検知する。ネットワーク断が検知された場合、制御部１６は、例えば、書込部１３ａに対して、既に各格納領域１５ａに格納されたストリームデータを第２記憶部１２に書き込ませる。一方、制御部１６は、例えば、ネットワーク断の後、カメラ２０からのストリームデータの受信を検知した場合、ネットワーク３０の復旧を検知する。
【００５４】
また、制御部１６は、例えば、プログラムを実行することで、書込部１３ａおよび間引き部１４ａとして動作する。
【００５５】
例えば、書込部１３ａは、第１記憶部１１ａから受信した情報により所定のデータ量が格納されたことが示された格納領域１５ｂから順に、所定のデータ量のストリームデータを第２記憶部１２に書き込む。
【００５６】
例えば、間引き部１４ａは、各カメラ２０からのストリームデータが格納領域１５ａに所定のデータ量まで格納される前に、格納領域１５ｂに格納済みのストリームデータの書込部１３による第２記憶部１２への書き込みが終了するか否かを判定する。間引き部１４ａは、書き込みが終了しないと判定した場合、格納領域１５ａに格納された各カメラ２０のストリームデータを、格納領域１５ｂに移す際に間引き、間引いたストリームデータを格納領域１５ｂに格納する。書込部１３ａは、間引かれたストリームデータを第２記憶部１２に書き込む。間引き部１４ａの動作については、図５および図６で説明する。
【００５７】
図５は、図４に示したカメラ２０により送信されるＨ．２６４の規格で動画圧縮された映像のストリームデータの例を示す。図５に示すように、Ｈ．２６４の規格で動画圧縮された映像のストリームデータ５０は、ＧＯＰ（Group of Picture）６０を単位とし、ＧＯＰ６０が連続するデータである。さらに、ＧＯＰ６０は、１つのＩフレーム（Intra-coded Frame）７０、複数のＢフレーム（Bi-directional Predicted Frame）７１および複数のＰフレーム（Predicted Frame）を含む。Ｉフレーム７０は、カメラ２０により撮影されフレーム間予測を用いずに符号化された画像データである。Ｂフレーム７１は、１フレーム前の画像データ、１フレーム後の画像データあるいは１フレーム前および１フレーム後の画像データを用いてフレーム間予測により符号化された画像データである。Ｐフレーム７２は、１フレーム前の画像データを用いてフレーム間予測により符号化された画像データである。すなわち、Ｉフレームは、前後のフレームの情報を用いることなく元の画像を復元できる。一方、Ｂフレーム７１およびＰフレーム７２は、フレーム間の差分を示す情報を含むデータであり、前後の他のフレームの情報を用いなければ元の画像を復元することができない。
【００５８】
なお、図５に示したＧＯＰ６０は、Ｉフレーム７０と末尾の２つのＢフレーム７１との間に、２つのＢフレーム７１と１つのＰフレーム７１との組合せを３つ含むが、１以上の組合せが含まれてもよい。
【００５９】
例えば、間引き部１４ａは、書込部１３ａによる各カメラ２０のストリームデータ５０の第２記憶部１２への書き込みに時間がかかると判定した場合、所定のデータ量が格納済の格納領域１５ａからストリームデータ５０を読み出す。間引き部１４ａは、読み出したストリームデータ５０の各ＧＯＰ６０からＩフレーム７０を抽出することで、ストリームデータ５０を間引く。間引き部１４ａは、抽出されたＩフレーム７０を含む間引き後のストリームデータ５０を格納領域１５ｂに格納する。
【００６０】
また、間引き部１４ａは、例えば、予測した書込時間Ｔｗと残り時間Ｔｅとの比較に応じて、ストリームデータ５０を間引く間隔を、間引きモード０から間引きモード５の６段階で調整することで、間引き後のデータ量を調整する。
【００６１】
間引きモード０：間引き部１４ａは、ストリームデータ５０をそのまま格納領域１５ｂに格納する。
【００６２】
間引きモード１：間引き部１４ａは、ストリームデータ５０の各ＧＯＰ６０からＩフレーム７０を抽出し、抽出したＩフレーム７０を格納領域１５ｂに格納する。すなわち、間引きモード１では、間引き部１４ａにより、ストリームデータ５０の各ＧＯＰ６０に含まれるＢフレームおよびＰフレームが間引かれる。
【００６３】
間引きモード２：間引き部１４ａは、３つのＧＯＰ６０のうち２つのＧＯＰ６０からＩフレーム７０を抽出し、抽出したＩフレーム７０を格納領域１５ｂに格納する。すなわち、間引きモード２では、間引き部１４ａにより、例えば、ストリームデータ５０の３つのＧＯＰ６０のうち最初の２つのＧＯＰ６０の各々に含まれるＢフレームおよびＰフレームと、３つ目のＧＯＰ６０に含まれる全てのフレームが間引かれる。
【００６４】
間引きモード３：間引き部１４ａは、２つのＧＯＰ６０のうち１つのＧＯＰ６０からＩフレーム７０を抽出し、抽出したＩフレーム７０を格納領域１５ｂに格納する。すなわち、間引きモード３では、間引き部１４ａにより、例えば、ストリームデータ５０の２つのＧＯＰ６０のうち最初のＧＯＰ６０に含まれるＢフレームおよびＰフレームと、２つ目のＧＯＰ６０に含まれる全てのフレームが間引かれる。
【００６５】
間引きモード４：間引き部１４ａは、３つのＧＯＰ６０のうち１つのＧＯＰ６０からＩフレーム７０を抽出し、抽出したＩフレーム７０を格納領域１５ｂに格納する。すなわち、間引きモード４では、間引き部１４ａにより、例えば、ストリームデータ５０の３つのＧＯＰ６０のうち最初のＧＯＰ６０に含まれるＢフレームおよびＰフレームと、２つ目と３つ目とのＧＯＰ６０に含まれる全てのフレームが間引かれる。
【００６６】
間引きモード５：間引き部１４ａは、４つのＧＯＰ６０のうち１つのＧＯＰ６０からＩフレーム７０を抽出し、抽出したＩフレーム７０を格納領域１５ｂに格納する。すなわち、間引きモード５では、間引き部１４ａにより、例えば、ストリームデータ５０の４つのＧＯＰ６０のうち最初のＧＯＰ６０の含まれるＢフレームおよびＰフレームと、２つ目から４つ目のＧＯＰ６０に含まれる全てのフレームが間引かれる。
【００６７】
以上に説明した間引きモード１から間引きモード５では、間引きモード１から間引きモード５の順で、間引き部１４ａによってストリームデータ５０から間引かれるデータ量が多くなるように設定されている。
【００６８】
なお、間引き部１４ａに最初に設定される間引きモードは、間引きモード０である。また、間引きモードの数は、第２記憶部１２の書き込み速度やデータ蓄積装置１０ａにインストールされるＯＳの仕様に応じて決定されるのがよい。
【００６９】
例えば、間引き部１４ａは、書込時間Ｔｗと残り時間Ｔｅとの差分の絶対値が所定の閾値Ｔｈ以下である場合、残り時間Ｔｅまでに各カメラ２０のストリームデータを第２記憶部１２に書き込むことができると判定する。間引き部１４ａは、現在設定されている間引きモードを維持する。なお、所定の閾値Ｔｈは、例えば、書込時間Ｔｗが残り時間Ｔｅのプラスマイナス１０パーセントの範囲の誤差を示す値である。
【００７０】
また、間引き部１４ａは、残り時間Ｔｅから書込時間Ｔｗを減じた差分が所定の閾値Ｔｈより大きい場合、残り時間Ｔｅまでに、各カメラ２０のストリームデータ５０を第２記憶部１２に書き込んだ後に余裕があると判定する。間引き部１４ａは、間引きモードを１段階下げて、間引かれるデータ量を少なくし、格納領域１５ｂに格納されるデータ量を多くする。ただし、間引きモード０が既に設定されている場合には、間引き部１４ａは、間引きモード０のままに設定する。
【００７１】
また、間引き部１４ａは、書込時間Ｔｗから残り時間Ｔｅを減じた差分が所定の閾値Ｔｈより大きい場合、残り時間Ｔｅまでに、各カメラ２０のストリームデータ５０の第２記憶部１２への書き込みが終了しないと判定する。間引き部１４ａは、間引きモードを１段階上げて、間引かれるデータ量を多くし、格納領域１５ｂに格納されるデータ量を減らす。ただし、間引きモード５が既に設定されている場合には、間引き部１４ａは、間引きモード５のままに設定する。
【００７２】
図６は、図４に示したデータ蓄積装置１０ａによる各カメラ２０からのストリームデータの受信期間および書込期間の例を示す。なお、図６に示す受信期間および書込期間について、図２に示した受信期間および書込期間と同様のものについては同じ符号を付し、詳細な説明は省略する。
【００７３】
時刻ｔａは、例えば、ネットワーク３０において障害が発生し、制御部１６がネットワーク断を検知した時刻を示す。時刻ｔｂは、ネットワーク３０がネットワーク断から復旧し、制御部１６が各カメラ２０からのストリームデータ５０の受信の再開を検知した時刻を示す。
【００７４】
時刻ｔ２０，ｔ２１，ｔ２２，ｔ２３は、ネットワーク３０の復旧後、最初にカメラ２０（１）−２０（４）から受信するストリームデータの格納領域１５ａ（１）−１５ａ（４）それぞれへの格納を終了した時刻を示す。また、時刻ｔ２０，ｔ２１，ｔ２２，ｔ２３は、受信期間ｒａ１０，ｒｂ１０，ｒｃ１０，ｒｄ１０の終了時刻とともに、書込期間ｗａ１０，ｗｂ１０，ｗｃ１０，ｗｄ１０の開始時刻をそれぞれ示す。
【００７５】
時刻ｔ２４，ｔ２５，ｔ２６，ｔ２７は、受信期間ｒａ１０，ｒｂ１０，ｒｃ１０，ｒｄ１０に受信したカメラ２０（１）−２０（４）のストリームデータの第２記憶部１２への書き込みが終了する時刻を示す。すなわち、時刻ｔ２４，ｔ２５，ｔ２６，ｔ２７は、書込期間ｗａ１０，ｗｂ１０，ｗｃ１０，ｗｄ１０それぞれの終了時刻を示す。
【００７６】
なお、ネットワーク３０の復旧直後では、各カメラ２０は、リアルタイムで撮影した映像と保持した映像とのストリームデータ５０を一斉に送信するため、データ蓄積装置１０ａは、ネットワーク断の前と比べて大量のストリームデータ５０を受信する。そして、受信するストリームデータ５０が大量であるため、書込部１３ａによる受信したストリームデータ５０の第２記憶部１２への書き込みの速度が低下する。その結果、時刻ｔａのネットワーク断の前と比べて多くのストリームデータ５０が第２記憶部１２に書き込まれることなく欠損する。
【００７７】
そこで、制御部１６は、ネットワーク３０の復旧後における各受信期間の終了時刻および各書込期間の開始時刻を示す時刻ｔ２０，ｔ２１，ｔ２２，ｔ２３を、互いに時間差を置いて設定する。また、制御部１６は、受信期間ｒａ１０，ｒｂ１０，ｒｃ１０，ｒｄ１０の長さを、ネットワーク断の前の受信期間ｒａ１，ｒｂ１，ｒｃ１，ｒｄ１等より短く設定する。これらにより、データ蓄積装置１０ａは、ネットワーク３０の復旧直後におけるストリームデータ５０の増加に伴う、ストリームデータ５０の欠損を低減することができる
例えば、間引き部１４ａは、受信期間ｒａ１０の終了時刻ｔ２０に、格納領域１５ａ（１）に格納されたカメラ２０（１）のストリームデータ５０を読み出し、設定された間引きモードに応じて読み出したストリームデータ５０間引く。間引き部１４ａは、間引いたストリームデータ５０を格納領域１５ｂ（１）に格納する。書込部１３ａは、時刻ｔ２０から時刻ｔ２４の書込期間ｗａ１０に、格納領域１５ｂ（１）に格納され間引かれたストリームデータ５０を第２記憶部１２に書き込む。なお、設定される間引きモードは、時刻ｔａのネットワーク断が発生した時に設定されていた、例えば、間引きモード０等である。
【００７８】
また、間引き部１４ａは、例えば、カメラ２０（１）の書込期間ｗａ１０において、第２記憶部１２へのストリームデータ５０の書き込み速度Ｖを計測する。間引き部１４ａは、受信期間ｒａ１１，ｒｂ１１，ｒｃ１１，ｒｄ１１に格納された各格納領域１５ａのストリームデータを第２記憶部１２に書き込むのにかかる書込時間Ｔｗを、計測した速度Ｖおよび式（１）を用い予測する。また、間引き部１４ａは、例えば、各受信期間ｒａ１１，ｒｂ１１，ｒｃ１１，ｒｄ１１でストリームデータが格納された各格納領域１５ａに対して、格納が終了した時刻の早い順に第２記憶部１２に書き込まれる優先度を設定する。間引き部１４ａは、例えば、図６に示した書込期間ｗａ１０の終了時刻ｔ２４において、カメラ２０（４）のストリームデータを格納する格納領域１５ａ（４）に対し他の格納領域１５より低い優先度を設定する。間引き部１４ａは、書込期間ｗａ１０の終了時刻ｔ２４において、優先度が低い格納領域１５ａ（４）にカメラ２０（４）からのストリームデータが所定のデータ量まで格納される受信期間ｒｄ１１の終了時刻までの残り時間Ｔｅを、式（２）を用いて予測する。そして、間引き部１４ａは、例えば、書込時間Ｔｗが残り時間Ｔｅより長いか否かを判定し、判定結果に応じて、間引きモードを更新する。
【００７９】
間引き部１４ａは、各書込期間の終了時刻において、同様の処理を行うことで間引きモードを変更し、各カメラ２０からのストリームデータから間引かれるデータ量を調整する。
【００８０】
図７は、図４に示したデータ蓄積システム１００における蓄積処理の例を示す。図７（ａ）に示すステップＳ１００からステップＳ２００の動作は、データ蓄積装置１０ａの制御部１６がデータ蓄積プログラムを実行することにより実現される。また、図７（ｂ）に示すステップＳ３００の動作は、カメラ２０（１）に含まれるプロセッサ等の制御部がプログラムを実行することにより実現される。すなわち、図７は、データ蓄積プログラムおよびデータ蓄積方法の別実施形態を示す。なお、図７に示す処理は、データ蓄積装置１０ａおよびカメラ２０（１）に搭載されるハードウェアにより実行されてもよい。この場合、図４に示した書込部１３ａおよび間引き部１４ａは、データ蓄積装置１０ａ内に配置される回路により実現される。
【００８１】
なお、データ蓄積装置１０ａとカメラ２０（２）−２０（Ｎ）それぞれとの処理は、図７に示したデータ蓄積装置１０ａとカメラ２０（１）との処理と同様であり、並行して実行される。
【００８２】
ステップＳ１００において、データ蓄積装置１０ａの制御部１６は、図４において説明したように、映像のストリームデータを出力するタイミングを互いにずらす制御信号を各カメラ２０に送信する。
【００８３】
次に、ステップＳ１１０において、制御部１６は、図６において説明したように、ネットワーク断を検出したか否かを判定する。制御部１６は、ネットワーク断を検知した場合（ＹＥＳ）、処理をステップＳ１２０に移行する。なお、制御部１６は、ネットワーク断を検知した場合、ネットワーク３０に障害が発生したことを示す警報等を出力装置に表示し、管理者等に通知してもよい。管理者等は、表示された警報が示す情報に基づいて、ネットワーク３０の復旧を図る。一方、制御部１６は、ネットワーク断を検知しなかった場合（ＮＯ）、処理をステップＳ１３０に移行する。
【００８４】
ステップＳ１２０において、制御部１６は、図６において説明したように、ネットワーク３０の復旧を検知したか否かを判定する。制御部１６は、ネットワーク３０の復旧を検知した場合（ＹＥＳ）、処理をステップＳ１３０へ移行する。一方、制御部１６は、ネットワーク３０の復旧を検知しなかった場合（ＮＯ）、処理をステップＳ１１０に移行し、ネットワーク３０が復旧するまで待機する。
【００８５】
ステップＳ１３０において、第１記憶部１１ａは、図４および図６において説明したように、各カメラ２０から受信した映像のストリームデータ５０を、カメラ２０ごとに割り当てられた格納領域１５ａに格納する。
【００８６】
次に、ステップＳ１４０において、間引き部１４ａは、図４から図６において説明したように、所定のデータ量のストリームデータが格納済の格納領域１５ａから順に、設定された間引きモードでストリームデータ５０を間引く。間引き部１４ａは、間引いたストリームデータ５０を格納領域１５ｂに格納する。例えば、第１記憶部１１ａは、間引かれたストリームデータ５０が格納された格納領域１５ｂを示す情報を制御部１６に出力する。また、第１記憶部１１ａは、格納領域１５ｂへの格納が完了したストリームデータ５０を格納領域１５ａから消去する。
【００８７】
次に、ステップＳ１５０において、書込部１３ａは、ステップＳ１４０で受信した情報によりストリームデータ５０が格納されたことが示された格納領域１５ｂから、ストリームデータ５０を第２記憶部１２に書き込む。
【００８８】
次に、ステップＳ１６０において、間引き部１４ａは、図２、図４から図６において説明したように、書込時間Ｔｗから残り時間Ｔｅを減じた差分が所定の閾値Ｔｈより大きいか否かを判定する。例えば、間引き部１４ａは、書込時間Ｔｗから残り時間Ｔｅを減じた差分が所定の閾値Ｔｈより大きい場合（ＹＥＳ）、残り時間Ｔｅが経過する前に、各格納領域１５ｂに格納済みのストリームデータ５０の第２記憶部１２への書き込みが終了しないと判定する。間引き部１４ａは、処理をステップＳ１９０に移行する。一方、間引き部１４ａは、書込時間Ｔｗから残り時間Ｔｅを減じた差分が所定の閾値Ｔｈ以下の場合（ＮＯ）、各カメラ２０からのストリームデータ５０を第２記憶部１２に書き込むのに十分な時間があると判定する。間引き部１４ａは、処理をステップＳ１７０に移行する。
【００８９】
ステップＳ１７０において、間引き部１４ａは、図４から図６において説明したように、残り時間Ｔｅから書込時間Ｔｗを減じた差分が所定の閾値Ｔｈより大きいか否かを判定する。間引き部１４ａは、例えば、残り時間Ｔｅから書込時間Ｔｗを減じた差分が所定の閾値Ｔｈより大きい場合（ＹＥＳ）、処理をステップＳ１８０に移行する。一方、間引き部１４ａは、例えば、残り時間Ｔｅから書込時間Ｔｗを減じた差分が所定の閾値Ｔｈ以下である場合（ＮＯ）、第２記憶部１２に対する書込処理の負荷は均衡を保っていると判定し、現在の間引きモードを維持する。間引き部１４ａは、処理をステップＳ２００に移行する。
【００９０】
ステップＳ１８０において、間引き部１４ａは、第２記憶部１２に対する蓄積処理の負荷は余裕があると判定し、間引きモードを１段下げる。間引き部１４ａは処理をステップＳ２００に移行する。
【００９１】
ステップＳ１９０において、間引き部１４ａは、第２記憶部１２に対する蓄積処理が過負荷の状態にあると判定し、間引きモードを１段上げる。間引き部１４ａは処理をステップＳ２００に移行する。
【００９２】
ステップＳ２００において、制御部１６は、入力装置を介して管理者から処理の終了を示す信号等を受けたか否かを判定する。制御部１６は、終了の信号を受けた場合（ＹＥＳ）、蓄積処理を終了する。なお、制御部１６は、終了の信号を受けた場合、蓄積処理を終了するとともに、各カメラ２０に対して撮影の停止を指示する制御信号を送信してもよい。一方、制御部１６は、終了の信号を受けていない場合（ＮＯ）、処理をステップＳ１１０に移行する。
【００９３】
一方、ステップＳ３００において、カメラ２０（１）は、データ蓄積装置１０ａから受信した制御信号に基づいて、映像のストリームデータ５０をデータ蓄積装置１０ａに送信する。その後、カメラ２０（１）は、撮影の停止を指示する制御信号をデータ蓄積装置１０ａから受けた場合、撮影を停止し、映像のストリームデータ５０の送信を停止する。
【００９４】
以上、この実施形態では、間引き部１４ａは、書込部１３ａが各カメラ２０からのストリームデータ５０を第２記憶部１２に書き込むごとに、書込時間Ｔｗと残り時間Ｔｅとを予測し、予測した書込時間Ｔｗと残り時間Ｔｅとを比較する。書込時間Ｔｗが残り時間Ｔｅより長く、第２記憶部１２への書き込みの負荷が大きい場合、間引き部１４ａは、ストリームデータ５０から間引くデータ量を多くし、第２記憶部１２に書き込むデータ量を少なくすることで、第２記憶部１２の負荷を小さくする。一方、書込時間Ｔｗが残り時間Ｔｅより短く、第２記憶部１２への書き込みの負荷に余裕がある場合、間引き部１４ａは、ストリームデータ５０から間引くデータ量を少なくして、第２記憶部１２に書き込むデータ量を多くする。これにより、データ蓄積装置１０ａは、ネットワーク３０の通信が途絶えた後に復旧し、各カメラ２０からストリームデータ５０を一斉に受信する場合でも、ストリームデータ５０の欠損を従来と比べて低減することができる。
【００９５】
また、制御部１６が第２記憶部１２に格納されたストリームデータ５０あるいはプログラム等へ頻繁にアクセスする場合、第２記憶部１２への書き込み速度Ｖが低下し、書込時間Ｔｗが長くなる。そのような場合でも、間引き部１４ａは、書込時間Ｔｗと残り時間Ｔｅとの比較に応じて間引きモードを変更し、ストリームデータ５０を間引くことで、データ蓄積装置１０ａは、ストリームデータ５０の欠損を従来と比べて低減することができる。
【００９６】
また、ストリームデータ５０がＶＢＲ等である場合、ストリームデータ５０の受信期間が変動し、書込時間Ｔｗも変動する。そのような場合でも、間引き部１４ａは、書込時間Ｔｗと残り時間Ｔｅとの比較に応じて間引きモードを変更し、ストリームデータ５０を間引くことで、データ蓄積装置１０ａは、ストリームデータ５０の欠損を従来と比べて低減することができる。
【００９７】
なお、データ蓄積装置１０ａは、カメラ２０から送信される映像のストリームデータ５０を蓄積したが、ＰＯＳシステムのレジスタ装置あるいはＲＦＩＤ等から送信される商品名、価格、数量等を示す情報のストリームデータを蓄積してもよい。
【００９８】
なお、受信期間ｒａ１０，ｒｂ１０，ｒｃ１０，ｒｄ１０の期間の長さは、制御部１６により、ネットワーク断の前の受信期間ｒａ１，ｒｂ１，ｒｃ１，ｒｄ１等より短く設定されたが、受信期間ｒａ１，ｒｂ１，ｒｃ１，ｒｄ１等と同等の長さに設定されてもよい。
【００９９】
なお、書込部１３ａは、図６に示すように、各ストリームデータの書込期間を互いにずらしたが、例えば、カメラ２０（１）とカメラ２０（２）とのストリームデータを、同じ書込期間の開始時刻で、並行に第２記憶部１２に書き込んでもよい。なお、並行に第２記憶部１２への書き込みができるストリームデータの数は、例えば、データ蓄積装置１０ａにインストールされるＯＳの仕様あるいは第２記憶部１２への書き込み速度に応じて決定される。
【０１００】
また、間引き部１４ａは、予測した書込時間Ｔｗと残り時間Ｔｅとの比較に応じて、間引きモードを１段ずつ上下させたが、これに限定されない。例えば、間引き部１４ａは、間引きモード３が設定され、書込時間Ｔｗが残り時間Ｔｅより短いと判定した場合に、間引きモードを“０”に設定してもよい。
【０１０１】
図８は、データ蓄積装置およびデータ蓄積システムの別実施形態を示す。図８に示すデータ蓄積システム１００の各要素において、図４に示したデータ蓄積システム１００の要素と同一または同様の機能を有するものについては、同一の符号を付し、詳細な説明は省略する。
【０１０２】
図８に示すデータ蓄積システム１００は、データ蓄積装置１０ａ、Ｎ個のカメラ２０および２つのＳＷ（Switching）装置８０（８０（１）、８０（２））を含む。データ蓄積装置１０ａと各ＳＷ装置８０とは、ＩＰネットワーク等のネットワーク３０を介して互いに接続される。また、ＳＷ装置８０（１）には、カメラ２０（１）−２０（ｋ）が接続され、ＳＷ装置８０（２）には、カメラ２０（ｋ＋１）−２０（Ｎ）が接続される（ｋは１からＮ−１の正の整数）。
【０１０３】
ＳＷ装置８０は、レイヤ２スイッチあるいはルータ等であり、各カメラ２０からの映像のストリームデータ５０をデータ蓄積装置１０ａに送信するとともに、データ蓄積装置１０ａからの制御等の信号を各カメラ２０に出力する。
【０１０４】
図８に示したデータ蓄積システム１００における蓄積処理は、図７に示したフローと同様であり、詳細な説明は省略する。
【０１０５】
以上、この実施形態では、間引き部１４ａは、書込部１３ａが各カメラ２０からのストリームデータ５０を第２記憶部１２に書き込むごとに、書込時間Ｔｗと残り時間Ｔｅとを予測し、予測した書込時間Ｔｗと残り時間Ｔｅとを比較する。書込時間Ｔｗが残り時間Ｔｅより長く、第２記憶部１２への書き込みの負荷が大きい場合、間引き部１４ａは、ストリームデータ５０から間引くデータ量を多くし、第２記憶部１２に書き込むデータ量を少なくすることで、第２記憶部１２の負荷を小さくする。一方、書込時間Ｔｗが残り時間Ｔｅより短く、第２記憶部１２への書き込みの負荷に余裕がある場合、間引き部１４ａは、ストリームデータ５０から間引くデータ量を少なくして、第２記憶部１２に書き込むデータ量を多くする。これにより、データ蓄積装置１０ａは、ネットワーク３０の通信が途絶えた後に復旧し、各カメラ２０からストリームデータ５０を一斉に受信する場合でも、ストリームデータ５０の欠損を従来と比べて低減することができる。
【０１０６】
また、制御部１６が第２記憶部１２に格納されたストリームデータ５０あるいはプログラム等へ頻繁にアクセスする場合、第２記憶部１２への書き込み速度Ｖが低下し、書込時間Ｔｗが長くなる。そのような場合でも、間引き部１４ａは、書込時間Ｔｗと残り時間Ｔｅとの比較に応じて間引きモードを変更し、ストリームデータ５０を間引くことで、データ蓄積装置１０ａは、ストリームデータ５０の欠損を従来と比べて低減することができる。
【０１０７】
また、ストリームデータ５０がＶＢＲ等である場合、ストリームデータ５０の受信期間が変動し、書込時間Ｔｗも変動する。そのような場合でも、間引き部１４ａは、書込時間Ｔｗと残り時間Ｔｅとの比較に応じて間引きモードを変更し、ストリームデータ５０を間引くことで、データ蓄積装置１０ａは、ストリームデータ５０の欠損を従来と比べて低減することができる。
【０１０８】
また、例えば、ＳＷ装置８０（１）に障害、またはＳＷ装置８０（１）とネットワーク３０との間でネットワーク断等が生じた場合、データ蓄積装置１０ａは、ＳＷ装置８０（２）に接続されたカメラ２０のストリームデータ５０を受信する。データ蓄積装置１０ａは、受信したストリームデータ５０の第２記憶部１２への書き込みを継続する。ＳＷ装置８０（１）の障害、あるいはネットワーク断から復旧した場合、データ蓄積装置１０ａは、ＳＷ装置８０（２）のカメラ２０とともに、ＳＷ装置８０（１）のカメラ２０（１）−２０（ｋ）からのストリームデータ５０を一斉に受信する。そのような場合でも、間引き部１４ａは、書込時間Ｔｗと残り時間Ｔｅとの比較に応じて間引きモードを変更し、各カメラ２０からのストリームデータ５０を間引くことで、データ蓄積装置１０ａは、ストリームデータ５０の欠損を低減することができる。
【０１０９】
図９は、図１、図４および図８に示したデータ蓄積装置１０，１０ａおよびデータ蓄積システム１００のハードウェア構成例を示す。なお、図９に示した各要素のうち、図１、図４および図８に示した要素と同一または同等の機能を有するものについては、同一の符号を付して示し、詳細な説明は省略する。
【０１１０】
コンピュータ装置２００は、プロセッサ２１０、ネットワークインタフェース２２０、メモリ２３０、ハードディスク装置２４０、入力装置２５０、出力装置２６０および光学ドライブ装置２７０を含む。図９に示したプロセッサ２１０、ネットワークインタフェース２２０、メモリ２３０、ハードディスク装置２４０、入力装置２５０、出力装置２６０および光学ドライブ装置２７０は、バスを介して互いに接続される。また、プロセッサ２１０、ネットワークインタフェース２２０、メモリ２３０およびハードディスク装置２４０は、データ蓄積装置１０，１０ａに含まれる。
【０１１１】
光学ドライブ装置２７０は、光ディスク等のリムーバブルディスク２８０を装着可能であり、装着したリムーバブルディスク２８０に記録された情報の読み出しおよび記録を行う。
【０１１２】
コンピュータ装置２００は、ネットワークインタフェース２２０を介してネットワーク３０に接続される。ネットワーク３０は、カメラ２０（１）−２０（Ｎ）に接続される。コンピュータ装置２００およびカメラ２０（１）−２０（Ｎ）は、データ蓄積システム１００に含まれる。これにより、コンピュータ装置２００は、ネットワークインタフェース２２０を介して、カメラ２０（１）−２０（Ｎ）で撮影された映像のストリームデータを受ける。
【０１１３】
メモリ２３０は、カメラ２０（１）−２０（Ｎ）から受けるストリームデータを格納する、図１に示した格納領域１５（１）−１５（Ｎ）、あるいは図４、図８に示した格納領域１５ａ（１）−１５ａ（Ｎ）および格納領域１５ｂ（１）−１５ｂ（Ｎ）を含む。
【０１１４】
ハードディスク装置２４０は、コンピュータ装置２００のオペレーティングシステムとともに、プロセッサ２１０が蓄積処理を実行するためのアプリケーションプログラムを格納する。また、ハードディスク装置２４０は、カメラ２０（１）−２０（Ｎ）からのストリームデータを蓄積する。
【０１１５】
入力装置２５０は、例えば、キーボード、タッチパネルあるいはマウス等である。コンピュータ装置２００のユーザは、入力装置２５０を操作し、例えば、蓄積処理の実行や終了の指示、あるいは図１に示した格納領域１５または図４、図８に示した格納領域１５ａ，１５ｂにおける所定のデータ量の設定等を行う。
【０１１６】
出力装置２６０は、有機ＥＬや液晶等のディスプレイ、コピー機あるいはプリンタ等の１つまたは複数を含む。出力装置２６０は、プロセッサ２１０の制御によりカメラ２０（１）−２０（Ｎ）のストリームデータの映像、あるいはネットワーク３０またはカメラ２０において検出された障害の警報等を表示あるいは印刷する。
【０１１７】
なお、蓄積処理を実行するためのアプリケーションプログラムは、例えば、光ディスク等のリムーバブルディスク２８０に記録して頒布することができる。そして、リムーバブルディスク２８０を光学ドライブ装置２７０に装着して読み込み処理を行うことにより、監視処理を実行するためのアプリケーションプログラムは、メモリ２３０やハードディスク装置２４０に格納されてもよい。また、コンピュータ装置２００は、ネットワークインタフェース２２０を介し、ネットワーク３０を通じて蓄積処理を行うためのアプリケーションプログラムをダウンロードし、メモリ２３０やハードディスク装置２４０に格納してもよい。
【０１１８】
また、プロセッサ２１０は、メモリ２３０やハードディスク装置２４０に格納された蓄積処理のアプリケーションプログラムを実行することで、図１に示した書込部１３および間引き部１４として機能する。また、プロセッサ２１０は、メモリ２３０やハードディスク装置２４０に格納された蓄積処理のアプリケーションプログラムを実行することで、図４、図８に示した書込部１３ａおよび間引き部１４ａとして機能する。
【０１１９】
つまり、データ蓄積装置１０，１０ａは、プロセッサ２１０、ネットワークインタフェース２２０、メモリ２３０およびハードディスク装置２４０の協働によって実現する。
【０１２０】
蓄積処理のアプリケーションプログラムは、メモリ２３０に格納された各カメラ２０からのストリームデータが所定のデータ量となるごとに、ストリームデータをハードディスク装置２４０に書き込む処理をプロセッサ２１０に実行させるプログラムを含む。また、蓄積処理のアプリケーションプログラムは、残り時間Ｔｅが経過する前に、格納済みのストリームデータのハードディスク装置２４０への書き込みが終了しないと判定した場合、ストリームデータの間引きをプロセッサ２１０に実行させるプログラムを含む。
【０１２１】
以上の詳細な説明により、実施形態の特徴点および利点は明らかになるであろう。これは、特許請求の範囲がその精神および権利範囲を逸脱しない範囲で前述のような実施形態の特徴点および利点にまで及ぶことを意図するものである。また、当該技術分野において通常の知識を有する者であれば、あらゆる改良および変更に容易に想到できるはずである。したがって、発明性を有する実施形態の範囲を前述したものに限定する意図はなく、実施形態に開示された範囲に含まれる適当な改良物および均等物に拠ることも可能である。
【符号の説明】
【０１２２】
１０，１０ａ…データ蓄積装置；１１，１１ａ…第１記憶部；１２…第２記憶部；１３，１３ａ…書込部；１４，１４ａ…間引き部；１５（１）−１５（Ｎ），１５ａ（１）−１５ａ（Ｎ），１５ｂ（１）−１５ｂ（Ｎ）…格納領域；１６…制御部；２０（１）−２０（Ｎ）…カメラ；３０…ネットワーク；５０…ストリームデータ；６０…ＧＯＰ；７０…Ｉフレーム；７１…Ｂフレーム；７２…Ｐフレーム；８０（１），８０（２）…ＳＷ装置；１００…データ蓄積システム；２００…コンピュータ装置；２１０…プロセッサ；２２０…ネットワークインタフェース；２３０…メモリ；２４０…ハードディスク装置；２５０…入力装置；２６０…出力装置；２７０…光学ドライブ装置；２８０…リムーバブルディスク；ｒａ１−ｒａ４，ｒｂ１−ｒｂ４，ｒｃ１−ｃ４，ｒｄ１−ｒｄ４，ｒａ１０−ｒａ１２，ｒｂ１０−ｒｂ１２，ｒｃ１０−ｃ１２，ｒｄ１０−ｒｄ１２…受信期間；ｗａ１−ｗａ３，ｗｂ１−ｗｂ３，ｗｃ１−ｗｃ３，ｗｄ１−ｗｄ３，ｗａ１０−ｗａ１１，ｗｂ１０−ｗｂ１１，ｗｃ１０−ｗｃ１１，ｗｄ１０−ｗｄ１１…書込期間
【図１】
2015167280.tif 000003
【図２】
2015167280.tif 000004
【図３】
2015167280.tif 000005
【図４】
2015167280.tif 000006
【図５】
2015167280.tif 000007
【図６】
2015167280.tif 000008
【図７】
2015167280.tif 000009
【図８】
2015167280.tif 000010
【図９】
2015167280.tif 000011