映像記録システム
【課題】映像を記録する映像記録システムで、複数の記録装置の間において記録映像を同期化する。
【解決手段】記録対象となる映像(カメラ装置101の映像)を記録する第1の記録装置104−1と、第1の記録装置に映像が記録された状態において記録対象となる映像の記録を開始する第2の記録装置104−2が設けられる。第2の記録装置は、記録対象となる映像の最新のものを取得する最新映像取得手段と、第1の記録装置に記録された過去の映像を新しいものから過去のものへ向かう順序で取得する過去映像取得手段を備え、最新映像取得手段により記録対象となる映像の最新のものを取得して記録しつつ、過去映像取得手段により第1の記録装置に記録された過去の映像を新しいものから過去のものへ向かう順序で取得して記録する。
【解決手段】記録対象となる映像(カメラ装置101の映像)を記録する第1の記録装置104−1と、第1の記録装置に映像が記録された状態において記録対象となる映像の記録を開始する第2の記録装置104−2が設けられる。第2の記録装置は、記録対象となる映像の最新のものを取得する最新映像取得手段と、第1の記録装置に記録された過去の映像を新しいものから過去のものへ向かう順序で取得する過去映像取得手段を備え、最新映像取得手段により記録対象となる映像の最新のものを取得して記録しつつ、過去映像取得手段により第1の記録装置に記録された過去の映像を新しいものから過去のものへ向かう順序で取得して記録する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、映像記録システムに関し、特に、ネットワークに接続されているネットワークデジタル映像記録システムに関し、複数台のネットワークデジタル映像記録システムの間において映像データを同期化する技術(記録映像同期化技術)に関する。
【背景技術】
【0002】
遠隔監視システム等では、Webカメラ等の撮像装置で監視領域を順次撮影し、撮影された映像について複数のサイトから時系列的に入力される映像データを磁気ディスク(例えば、ハードディスク)、光ディスク、半導体メモリ等の大容量の記録装置に蓄積(記録又は保存)するとともに、映像をネットワークを介して利用者に配信し、例えば、遠隔地にあるモニタ画面で映像を監視できるようにしている。
【0003】
図9には、このような映像記録システムの一例を示してある。
複数であるm個のカメラ装置101−1、101−2、・・・、101−mは、それぞれ、被写体を撮影するカメラから構成され、例えば、監視カメラ或いはIP(Internet Protocol)カメラ等から構成され、撮影した被写体の映像信号を出力する。
なお、以下の説明では、複数のカメラ装置101−1、101−2、・・・、101−mを代表して示す場合には、カメラ装置101と称する。
また、カメラ装置101には、マイク(図示せず)或いは進入物体検出用のセンサ(図示せず)が設けられているものもあり、この場合には、例えば、これらの出力信号も映像信号に含まれるものとする。但し、他の構成が用いられてもよい。
【0004】
伝送路102は、上述の映像信号を伝送するものであり、例えば、LAN(Local Area Network)、インターネット或いは公衆回線等のネットワークを含み、複数のコンピュータを結んで制御信号やデータなどの信号を伝送する。
複数であるn個の情報端末装置103−1、103−2、・・・、103−nは、それぞれ、例えば、パーソナルコンピュータ(PC:Personal Computer)等のデータ処理装置であり、ネットワーク接続でWebブラウザ等を搭載し、クライアントPCとも呼ばれる。
なお、以下の説明では、複数のクライアントPC103−1、103−2、・・・、103−nを代表して示す場合には、クライアントPC103と称する。
【0005】
デジタル記録装置104は、ネットワーク(伝送路)102に接続されており、例えば、ネットワークデジタルレコーダNDR(NDRは、株式会社 日立国際電気の登録商標)である。
なお、以下の説明では、ネットワークデジタルレコーダNDR104をNDR104と称する。
【0006】
NDR104は、伝送路102を介して、映像の取得や、記録等のための配信を行う装置である。NDR104は、伝送路102を介して、カメラ装置101及び映像データ等の視聴やNDR104の設定を行う複数のクライアントPC103と接続されている。
また、NDR104は、コンピュータボード105と記録部(記録装置)106から構成されている。
【0007】
コンピュータボード105には、伝送路102と接続するためのネットワークインターフェイス(ネットワークI/F)108と、記録部106と接続するための記録部インターフェイス(記録部I/F)109と、メモリ110と、CPU(Central Processing Unit)112が設けられており、これらは制御バス107で接続されている。
【0008】
記録部106は、例えば、磁気ディスク、光ディスク、DVD(Digital Versatile Disc)、半導体ディスク等の記録装置から構成することができる。
記録部106内には、カメラ装置101−1、101−2、・・・、101−mのそれぞれに対応する記録領域112−1、112−2、・・・、112−mが記録を行う複数のカメラ装置101−1、101−2、・・・、101−mの数分存在し、各カメラ装置101−1、101−2、・・・、101−mからの映像データが各記録領域112−1、112−2、・・・、112−mに記録される。
なお、以下では、複数の記録領域を代表して示す場合には、記録領域112と称する。
【0009】
まず、カメラ装置101で撮影された映像をNDR104に記録する場合について説明する。
カメラ装置101は、撮影した映像信号を、例えば、1フレームずつ、MPEG2(Moving Picture Experts Group 2)やJPEG(Joint Photographics Experts Group)等の画像圧縮方式で圧縮し、IP(Internet Protocol)パケット形式で、伝送路102を介してNDR104へ送信する。
【0010】
ネットワークI/F108は、受信したIPパケット形式の映像データを、制御バス107上を伝送する形式へ変換して、CPU111上で動作するNDRソフトウエアへその映像データを引き渡す。
CPU111のNDRソフトウエアは、受信した映像データを一旦メモリ110に格納し、例えば、10〜100フレーム程度データをまとめ、そして、カメラ装置101の各記録領域112の格納位置を計算し、記録部I/F109を介して記録領域112に格納する。
【0011】
ここで、コンピュータボード105のメモリ110には、NDR104の録画動作に必要な情報が格納され、例えば、設定権限者パスワードPW1、或いは、カメラ毎の情報CIが記録される。
図10には、このような情報の内の代表的なものを示してある。
具体的には、NDR104に関して、設定権限者パスワードの情報が格納され、また、各カメラ装置101に関して、カメラ名、カメラタイプ、URL(Uniform Resource Locator)やIPアドレス等からなるアドレス、設定権限者パスワード、スケジュール、記憶領域サイズ(バイト)、先頭フレーム番号と末尾フレーム番号、フレーム番号とフレーム取得時刻、の情報が格納される。なお、他の情報が格納されてもよい。
【0012】
NDR104の設定権限者パスワードPW1は、NDR104の設定変更を行う権限者を識別するめのパスワードである。
各カメラ装置101−1、101−2、・・・、101−mに関する情報として、カメラ名は、設定管理者が識別しやすいように名前として付与した文字列である。カメラタイプは、カメラの機種によって通信方式が異なる場合があることから、カメラの機種識別名である。アドレスは、NDR104を伝送路102を介して各カメラ装置101−1、101−2、・・・、101−mに接続するために必要なアドレスであり、例えば、各カメラ装置のURLやIPアドレス等である。各カメラ装置101−1、101−2、・・・、101−mの設定権限者パスワードは、録画処理によっては各カメラ装置101−1、101−2、・・・、101−mの設定を変更する必要があり、また、カメラ装置101の設定変更には設定権限者の確認を行うためにパスワードを要求することがあることから、NDR104から各カメラ装置101−1、101−2、・・・、101−mの設定を変更する際に送信するパスワードである。なお、このパスワードは、各カメラ装置101−1、101−2、・・・、101−mについて、別個に設定されてもよく、或いは、共通に設定されてもよい。
【0013】
また、各カメラ装置101−1、101−2、・・・、101−mに関する情報として、スケジュールは、NDR104が昼と夜で録画のフレームレートを変える等といった処理ができることから、何時の時間にどれくらいのフレームで撮影するかを定めたものであり、例えば、スケジュールテーブルから構成される。記録領域サイズは、記録部106上における該当するカメラ装置(例えば、カメラ装置101−1等)用の記録領域112への記録に必要なバイトサイズである。先頭フレーム番号と、末尾フレーム番号は、それぞれ、各カメラ装置101−1、101−2、・・・、101−mからの映像を記録した最初のフレーム番号と、記録を終了した時の最後のフレーム番号である。各フレーム番号と、各フレームの取得時刻は、それぞれ、各カメラ装置101−1、101−2、・・・、101−mが被写体を撮像した時の各フレーム番号と、各フレーム毎の取得時刻である。
【0014】
なお、図10に示される各カメラ装置101に関する情報は、例えば、クライアントPC103のWebブラウザに表示される設定画面から設定することができ、これらについては従来から周知の技術を用いることができるため、ここでは、詳細な説明は省略する。
【0015】
NDR104のカメラ101用記録領域112は、例えば、映像取得開始前に、NDR104の設定権限者が、クライアントPC103から、図11に示されるような領域設定画面を用いて作成する。
図11には、例えば、クライアントPC103−1の表示画面401に表示された領域設定画面(入力設定画面)の一例を示してある。
本例の表示画面401における入力設定画面では、NDR104の設定権限者パスワード入力領域402と、カメラNo.選択領域403と、記録領域指定領域404と、フレームレート選択領域405と、記録開始時刻設定領域406と、記録終了時刻設定領域407と、記録容量選択領域408と、OKボタン409と、Cancelボタン410が表示される。
【0016】
図11の例では、カメラNo.選択領域403では、例えば、カメラ装置101−1が選択表示されている。記録部106の記録領域指定領域404では、例えば、カメラ101−1用の記録領域112−1が指定されている。フレームレート選択領域405では、例えば、10枚/秒が設定されている。記録開始時刻設定領域406は、記録開始時刻を入力する領域である。記録終了時刻設定領域407は、記録終了時刻を入力する領域である。記録容量選択領域408は、記録容量を選択する領域であり、例えば、200MBが選択されている。また、上述した各項目の入力及び選択が正しければ、OKボタン409を押すことで、各項目が実行される。また、上述した各項目について修正や変更等がある場合には、Cancelボタン410を押して、再入力等を行う。
以上のようにして、NDR104の設定権限者は、接続するカメラ装置101の録画の際のフレームレートや記録時間等を勘案して、カメラ101用の記録領域112のバイトサイズを決定する。
【0017】
図12には、例えば、カメラ装置101−1で撮像された映像データをNDR104のカメラ101−1用記録領域112−1に記録し、クライアントPC103−1からの映像要求に従って、映像データを読み出す場合における動作の一例を概念的に示してある。
本例では、映像データをカメラ101−1用記録領域112−1に記録する方式として、領域の先頭から記録を開始して末尾に到達するとまた先頭から上書きを行う方式、所謂、循環記録方式を採用している。
【0018】
本例では、映像1フレームよりも充分に大きい固定長の管理単位(例えば、1MByte)をブロックと呼称する。
カメラ用記録領域112は、複数のブロック1120で構成される。ブロックを循環的に利用することで循環記録を実現している。
映像録画時には、自動的に容量拡張を行わず、予め確保された領域内での循環記録を行う。
また、メモリ110に、映像記録時に用いる記録用キャッシュメモリ130と、読み出し用キャッシュメモリ140が確保されている。これら、映像記録時に用いる記録用キャッシュメモリ130と、読み出し用キャッシュメモリ140のバイトサイズは、それぞれ、ブロックのバイトサイズと同一である。
【0019】
カメラ装置101から取得された映像データを、一旦、記録用キャッシュメモリ130にフレーム単位で詰めて格納していき、1ブロック分の映像データを溜めてから、カメラ用記録領域112に格納する。
フレーム毎に、管理用の、例えば、フレーム番号(一例として、カメラ毎に独立した1からの連番)を付与し、同時に、映像取得時刻も記録する。従って、メモリ110には、先頭フレーム番号及び末尾フレーム番号も記録している。
同様に、ブロックの管理用に、ブロック番号(一例として、カメラ毎に独立した1からの連番)を付与する。従って、メモリ110には、先頭ブロック番号及び末尾フレーム番号も記録している。
【0020】
次に、上記のようにして記録された映像を再生する場合について説明する。
NDR104に記録された映像を視聴したいユーザは、クライアントPC103、例えば、クライアントPC103−1の再生ソフトウエアを稼働させる。これによって、NDR再生ソフトウエアは、NDR104から1フレーム単位で映像データを取得し、クライアントPC103−1の画面上に映像の表示、再生処理を行うことができる。
【0021】
これについて更に詳述する。
クライアントPC103−1上のNDR再生ソフトウエアは、IPパケット形式で映像配信要求を伝送路102を介してNDR104へ送信する。クライアントPC103−1から送出された映像配信要求は、IP形式で、伝送路102を伝達し、NDR104のネットワークI/F108に到達する。ネットワークI/F108は、受信したIP形式の映像配信要求を制御バス107上に伝送する形式へ変換して、CPU111上で動作するNDRソフトウエアへ伝送する。
【0022】
NDRソフトウエアは、映像配信要求に従い、記録部I/F109を介して、例えば、カメラ101−1用記録領域112−1から、要求フレームを含むブロックを読み出し用キャッシュメモリ140に読み出し、キャッシュメモリ上の当該フレームの映像データを、IP形式で、ネットワークI/F108及び伝送路102を介して、クライアントPC103−1へ送信する。
クライアントPC103−1上のNDR再生ソフトウエアは、受信した映像データをデコードして、画面上に表示する。なお、クライアントPC103−1から映像データの1フレームを取得する際には、映像取得時刻又はフレーム番号で指定して目的の映像データを取得することができる。
【0023】
ところで、映像監視システムにおいて、高いセキュリティが要求される場合には、NDRの故障による録画停止も許されないことがある。この場合には、2台のNDRで録画を行い、一方が故障で停止していても、もう一方で録画を続け、そして、故障から復帰したNDRが、停止期間の映像を、稼動中のNDRから取得して映像データを補完する、といった並列運用が行われる。
また、単体のNDRで録画を行うシステムにおいても、記録装置のHDDは消耗品であり、一定期間毎に交換することが望ましい。この交換の際にも、既存のHDD内の映像データを新しいHDDへ移した上で、運用することが望まれており、停止時間無しに置き換える方法が検討等されている。
【0024】
【特許文献1】特開2004−227719号公報
【特許文献2】特開2007−228121号公報
【発明の開示】
【発明が解決しようとする課題】
【0025】
監視システムにおける常時記録では、何らかの事象があった場合に、その時に何が起こったのかを映像で確認できることが重要である。
言い換えれば、通常、監視システムにおける映像記録では、常時記録は行われていても、その映像の視聴は何らかの事象があった場合にしか行われない。
視聴者が、事象があったことに気付くまでに要する時間は、数時間から数日と言われており、その間に一度も視聴されなかった映像は、そのまま上書きされるまで視聴されない場合がほとんどである。
そういう意味で、視聴者の立場で記録映像に価値を付けるとすれば、現在時刻から一定時間前(例えば、数時間〜数日の前)までの映像の価値が高く、それ以前の古い映像の価値は時間経過と共に緩やかに減少していく、と言える。
【0026】
単体のNDR104で運用されている監視システムに対して並列運用を行うためにNDRを追加した場合、又は、置き換え機能で新しいHDDへ映像を移す場合において、既存の方法では、既存のNDR104内の最古の映像から順次新しい方向へ移しており、記録容量が大きいときには、既存の映像データの移動に時間を要し、新しいHDDで最新(現在時刻)の映像データを記録するまでに(現在時刻に追いつくまでに)、相当の時間を要する。
【0027】
しかしながら、このような映像データの移動中に、既存側のNDR104が故障等で停止したような場合があるとすると、映像データの移動が完全には行われなくなると考えられる。
また、例えば、既存側のNDR104が停止した時点から、カメラ装置101からの映像記録を新規側のNDRで行うとしても、既存側のNDR104が停止した直前辺りの映像は欠落すると考えられる。この場合、新規側のNDRには先の例で言う価値の高い映像が記録されていない状態が発生し得る。
【0028】
本発明は、このような従来の事情に鑑み為されたもので、例えば、単体のNDRで運用されている監視システムで並列運用を行うために他のNDRを追加した場合、又は、置き換え機能で新しいHDDへ映像を移すような場合において、複数の記録装置の間で記録映像の同期を効果的に確立することができる映像記録システムを提供することを目的とする。
【課題を解決するための手段】
【0029】
上記目的を達成するため、本発明では、映像を記録する映像記録システムにおいて、次のような構成とした。
すなわち、記録対象となる映像を記録する第1の記録装置と、前記第1の記録装置に映像が記録された状態において前記記録対象となる映像の記録を開始する第2の記録装置が設けられる。
前記第2の記録装置は、前記記録対象となる映像の最新のものを取得する最新映像取得手段と、前記第1の記録装置に記録された過去の映像を新しいものから過去のものへ向かう順序で取得する過去映像取得手段を備える。そして、前記第2の記録装置では、前記最新映像取得手段により前記記録対象となる映像の最新のものを取得して記録しつつ、前記過去映像取得手段により前記第1の記録装置に記録された過去の映像を新しいものから過去のものへ向かう順序で取得して記録する。
【0030】
従って、記録対象となる映像について、第1の記録装置に映像が記録された状態において、その後に第2の記録装置により映像を記録することを開始する場合に、その開始時点を起点として未来方向の映像(最新のもの)と過去方向の映像の両方を同時に順次取得して記録していくことにより、例えば、未来方向の映像を記録していくことができるとともに、現時点に近くて価値があると考えられる新しいものを優先させて過去のものへ向かう順序で過去の映像を記録していくことができる。具体例として、単体のNDRで運用されている監視システムで並列運用を行うために他のNDRを追加した場合、又は、置き換え機能で新しいHDDへ映像を移すような場合において、複数の記録装置の間で記録映像の同期を効果的に確立することができる。
【0031】
ここで、映像としては、種々なものが用いられてもよく、例えば、カメラにより撮像されるリアルタイムの映像を用いることができる。
また、第2の記録装置が記録対象となる映像の最新のものを取得する手法としては、例えば、カメラにより撮像されるリアルタイムの映像を第1の記録装置により取得して記録していく場合に、第1の記録装置によりカメラから取得された最新の映像を当該第1の記録装置から間接的に取得する手法が用いられてもよく、或いは、最新の映像をカメラから直接的に取得する手法が用いられてもよい。
【発明の効果】
【0032】
以上説明したように、本発明に係る映像記録システムによると、第1の記録装置に映像が記録された状態から第2の記録装置により映像の記録を開始する場合に、第2の記録装置では、その時点を起点として未来方向の映像と過去方向の映像を順次取得して記録していくようにしたため、価値が高いと考えられる映像を時間的に優先させて先に記録することができ、複数の記録装置の間で記録映像の同期を効果的に確立することができる。
【発明を実施するための最良の形態】
【0033】
本発明に係る実施例を図面を参照して説明する。
図1には、本発明の一実施例に係る映像記録システムの構成例を示す図である。
なお、説明の便宜上から、図1では、図9に示される構成部と同様なものには、同一の符号又は同様な符号が付されているが、本実施例で特徴的な構成や動作については、必ずしも図9に示される場合と同じではない。
【0034】
本例の映像記録システムは、複数であるm個のカメラ装置101−1、101−2、・・・、101−mと、伝送路102と、複数であるn個の情報端末装置(クライアントPCとも言う)103−1、103−2、・・・、103−nと、2個のネットワークデジタル記録装置104−1、104−2を備えている。
本例では、各ネットワークデジタル記録装置104−1、104−2は、伝送路(ネットワーク)102に接続されているネットワークデジタルレコーダNDR(NDRは、株式会社 日立国際電気の登録商標)である。
【0035】
なお、以下の説明では、各ネットワークデジタルレコーダNDR104−1、104−2を、それぞれ、NDR104−1(第1のデジタル記録装置とも言う)、NDR104−2(第2のデジタル記録装置とも言う)と称する。
また、以下の説明では、複数のカメラ装置101−1、101−2、・・・、101−mを代表して示す場合には、カメラ装置101と称する。
また、以下の説明では、複数のクライアントPC103−1、103−2、・・・、103−nを代表して示す場合には、クライアントPC103と称する。
【0036】
ここで、NDR104−1は、既に、カメラ装置101からの映像が記録されている記録装置であり、また、NDR104−2は、新たに設置された記録装置である。
NDR104−1及びNDR104−2は、伝送路102を介して、映像の取得や記録等のための配信を行う装置である。NDR104−1及びNDR104−2は、伝送路102を介して、カメラ装置101及び映像データ等の視聴やNDRの設定を行う複数のクライアントPC103と接続されている。
【0037】
NDR104−1(第1のデジタル記録装置)は、コンピュータボード105−1と記録部106−1から構成されている。
コンピュータボード105−1には、伝送路102と接続するためのネットワークインターフェイス(ネットワークI/F)108−1と、記録部106−1と接続するための記録部インターフェイス(記録部I/F)109−1と、メモリ110−1(以下、第1の管理メモリ110−1とも称する)と、CPU111−1(以下、第1の制御部111−1とも言う)が設けられており、これらは制御バス107−1で接続されている。
【0038】
記録部106−1は、例えば、磁気ディスク、光ディスク、DVD、半導体ディスク等の記録装置から構成することができる。
記録部106−1内には、複数のカメラ装置101−1、101−2、・・・、101−mのそれぞれに対応する記録領域112−1、112−2、・・・、112−mが記録を行う複数のカメラ装置101の数分存在し、各カメラ装置101−1、101−2、・・・、101−mからの映像データが各記録領域112−1、112−2、・・・、112−mに記録される。
なお、以下では、複数の記録領域を代表して示す場合には、記録領域112と称する。
【0039】
本例の記録領域112には、図9に示されるシステムについて説明したのと同様に、各カメラ装置101からの映像、例えば、監視映像がフレーム単位で記録されている。
また、第1の管理メモリ110−1には、図10に示されるように、各カメラ装置101に関係する情報が記録されている。
なお、図10に示されるような各カメラ装置101に関係する情報は、例えば、記録部106−1の各記録領域112にも記録することもできる。
【0040】
同様に、NDR104−2(第2のデジタル記録装置)は、コンピュータボード105−2と記録部106−2から構成されている。
コンピュータボード105−2には、伝送路102と接続するためのネットワークインターフェイス(ネットワークI/F)108−2と、記録部106−2と接続するための記録部インターフェイス(記録部I/F)109−2と、メモリ110−2(以下、第2の管理メモリ110−2とも称する)と、CPU111−2(以下、第2の制御部とも言う)が設けられており、これらは制御バス107−2で接続されている。
【0041】
記録部106−2は、例えば、磁気ディスク、光ディスク、DVD、半導体ディスク等の記録装置から構成することができる。
記録部106−2は、まだ、映像が記録されていない状態、即ち、フォーマットはされているが、記録領域は形成されていない状態である。なお、記録領域が形成されていない状態とは、未使用の新品である状態や、或いは、予め映像データを全て削除した状態等を言う。
図1では、一例として、カメラ101−1用記録領域113−1を示してある。このカメラ101−1用記録領域113−1は、NDR104−1の記録部106−1のカメラ101−1用記録領域112−1の記録データ及びカメラ装置101−1で撮像中の映像データを引き継ぐ記録領域である。また、他のカメラ装置101−2、・・・、101−mについても、カメラ装置101−1と同様に、データを引き継ぐ記録領域113−2、・・・、113−mを設けることができる。
なお、記録部106−1の記録容量と記録部106−2の記録容量としては、例えば、同じ容量であってもよく、或いは、異なる容量であってもよい。
【0042】
以下では、以上のような状態において、まず、単純なケースである(ケース1)として、1台が既に稼動中でカメラ装置101からの監視映像を記録している状態であり、もう一方が記録領域に監視映像が記録されていない状態(HDDが新品等の状態)である場合における処理の例を説明する。その後に、(ケース2)として、2台での並列稼働中に1台が停止した後に復帰した場合における処理の例を説明する。
【0043】
(ケース1)
ケース1における処理の例を示す。
1台が稼動中であり、もう1台が例えば新品である場合について説明する。
本例では、説明のために、NDR104−1が稼動中であって、既に、カメラ装置101−1から映像データを取得して記録しているとし、また、NDR104−2が新品であって、記録部106−2内に映像データが存在せず、カメラ用記録用領域も割り当てられていないとする。
【0044】
図2(a)〜(d)を参照して、処理の概要を説明する。
図2(a)には、NDR104−1のカメラ用記録領域の一例を示してある。このカメラ用記録領域は、既に長時間稼動しており、カメラ装置からの最新映像を、古い映像に、上書きしている状態である。図では、時計回りで循環記録を行っている場合を示してある。
図2(b)には、NDR104−2のカメラ用記録領域の初期時の状態の一例を示してある。カメラ用記録領域に映像データが無い状態である。本例では、説明の便宜上から、図中の0時の位置から映像データの記録を行うとする。
【0045】
図2(c)には、NDR104−2がNDR104−1から映像データの取得を行っている際におけるNDR104−2のカメラ用記録領域の状態の一例を示してある。最新の映像を取得して時計周りに記録すると同時に、並行して、過去側の映像を取得して反時計周りに記録している様子を示してある。
図2(d)には、NDR104−2が過去側の映像取得を終える時点におけるNDR104−2のカメラ用記録領域の状態の一例を示してある。最新映像の記録先と過去側の映像の記録先とが重なった際に、過去側映像の取得と記録を終了する。以後は、最新映像の取得と記録のみを行う。この時点で、NDR104−1と映像データの同期化が完了したとする。
【0046】
図3を参照して、図2(c)に示される状態における映像データの流れの様子の一例を説明する。なお、本例では、カメラ装置101−1からの映像データの流れについて示すが、他のカメラ装置101−2、・・・、101−mからの映像データの流れについても同様である。
カメラ装置101−1からの映像データを、NDR104−1の記録用キャシュメモリ130に一旦溜めた後に、記録部106−1のカメラ101−1用記録領域112−1に前述と同様に循環記録で保存する。
本例では、カメラ装置101からの映像データの取得の方法としては、例えば、NDR104−1からの1フレーム毎の映像要求に対してカメラ装置101−1から1フレーム単位で映像データが送られ、記録用キャシュメモリ130にブロックに収まる範囲で映像データを溜めた後に、NDR104−1の記録部106−1に記録する。
【0047】
そして、NDR104−2は、初期化処理としてカメラ用記録領域の領域確保を行い、その後に映像同期化処理を開始する。
映像同期化処理を開始すると、NDR104−2は、カメラ装置101−1の映像データを取得するために、最新側映像取得用のスレッド(最新側映像データ取得スレッド)13−New1と、過去側映像取得用のスレッド(過去側映像データ取得スレッド)13−Old1を起動する。
ここで、最新側映像取得用のスレッド13−New1は、1フレーム分の受信用バッファ131−New1と、記録用キャッシュメモリ130−New1を持つ。
また、過去側映像取得用のスレッド13−Old1は、1フレーム分の受信用バッファ131−Old1と、記録用キャッシュメモリ130−Old1を持つ。
【0048】
最新側映像取得用のスレッド13−New1は、常時、NDR104−1から最新映像を取得し、カメラ101−1用記録領域に映像データを記録していく働きをする。
最新側映像取得用のスレッド13−New1は、NDR104−1に対して最新映像を要求し、NDR104−1の読み出し用キャッシュメモリ140−1から返送されたフレーム単位の映像データを、1フレーム分の受信用バッファ131−New1に格納し、そして、記録用キャッシュメモリ130−New1に受信した映像データを格納できるだけの空きサイズがあれば、受信した映像データを記録用キャッシュメモリ130−New1に即座に格納し、また、空きがなければ、記録用キャッシュメモリ130−New1の内容をカメラ101−1用記録領域113−1の該当するブロックに書き出して、記録用キャッシュメモリ130−New1をクリアした後に、受信した映像データを記録用キャッシュメモリ130−New1に格納する。
ここで、最新映像データを溜めた記録用キャッシュメモリ130−New1の書き出し先のブロックとしては、図2(c)に示されるように、順方向(図2(c)中で時計回り)に、順々に書き加えていく。
【0049】
過去側映像取得用のスレッド13−Old1は、新しい方から古い方へと順々に過去映像を取得して、カメラ101−1用記録領域に映像データを記録していく働きをする。
過去側映像取得用のスレッド13−Old1は、NDR104−1に対して過去映像を要求し、NDR104−1の読み出し用キャッシュメモリ140−2から返送されたフレーム単位の映像データを、1フレーム分の受信用バッファ131−Old1に格納し、そして、記録用キャッシュメモリ130−Old1に受信した映像データを格納できるだけの空きサイズがあれば、受信した映像データを記録用キャッシュメモリ130−Old1に即座に格納し、また、空きがなければ、記録用キャッシュメモリ130−Old1の内容をカメラ101−1用記録領域113−1の該当するブロックに書き出して、記録用キャッシュメモリ130−Old1をクリアした後に、受信した映像データを記録用キャッシュメモリ130−Old1に格納する。
ここで、過去映像データを溜めた記録用キャッシュメモリ130−Old1の書き出し先のブロックとしては、図2(c)に示されるように、逆方向(図2(c)中で反時計回り)に、下記の終了条件を満たすまで、順々に書き加えていく。
【0050】
過去側映像取得用のスレッド13−Old1が終了する条件を記す。
過去側映像取得用のスレッド13−Old1が終了する条件1としては、カメラ用記録領域内で、最新映像で上書きされるブロックまで過去側の映像データを取得した場合がある。
過去側映像取得用のスレッド13−Old1が終了する条件2としては、映像取得元(本例では、NDR104−1)内に存在する過去側映像データを全て取得し終えた場合がある。
過去側映像取得用のスレッド13−Old1が終了する条件3としては、予め指定されていた条件を満たした場合がある。ここで、この条件としては、例えば、何時間前までといった時間指定の条件や、或いは、過去側映像データの総バイトサイズの条件や、或いは、カメラ用記録領域に対する比率の条件などを用いることができる。
【0051】
受信した映像データを記録用キャッシュメモリに格納する方法は、最新側映像取得用のスレッド13−New1と過去側映像取得用のスレッド13−Old1とで異なる。
図4(a)〜(c)を参照して、この違いを説明する。
記録用キャッシュメモリ130の内容は、そのまま記録部のカメラ用記録領域の該当するブロックに書き込まれる。このため、図4(a)に示されるように、記録用キャッシュメモリ130の先頭部分には、ブロックの管理用の情報を格納するブロック管理領域151を確保してある。
ブロック管理領域151には、このブロック内に格納している全映像フレームのそれぞれについて、「フレーム番号」1310、「先頭アドレス」1311、「バイトサイズ」1312、「フレーム時刻」1313を保持する。
【0052】
フレーム番号1310には、該当するフレームの管理用番号を記してある。
先頭アドレス1311には、該当するフレームのブロック内での開始アドレスを記してある。
バイトサイズ1312には、該等するフレームのバイトサイズを記してある。
フレーム時刻1313には、映像データがカメラ装置(例えば、IPカメラ)で生成された時刻を記してある。
【0053】
図4(a)に示されるように、記録用キャッシュメモリ130の領域からブロック管理領域151を除いた領域に、フレーム単位の映像データを時系列順に並べて格納する。
図4(b)に示されるように、最新側映像記録スレッドが使用する記録用キャッシュメモリ130−New1では、映像データを取得した順に、キャッシュメモリの先頭から順々に格納していく。
【0054】
一方、図4(c)に示されるように、過去側映像記録スレッドが使用する記録用キャッシュメモリ130−Old1では、映像データを取得した順に、キャシュメモリの末尾から順々に格納していく。
具体的には、NDR104−1からは、時刻が(t、t−1、t−2、t−3、t−4、t−5、・・・)といったように、新しい方から古い方へ向かって映像データを取得し、MBlock内には末尾から詰めて行くため、結果的に、MBlockの先頭からは映像データが時系列順に並ぶ。
【0055】
図5〜図7に示されるフローチャートを参照して、図2(b)、(c)、(d)に示される処理の流れを説明する。
図5(a)を参照して、NDR104−2の初期化処理の流れの一例を説明する。
NDR104−2の記録部106−2は、新品であり、カメラ用記録領域が確保されていない状態である。初期化処理では、新品の記録部106−2に、カメラ用記録領域を設ける作業を行う。
【0056】
具体的には、全記録領域の初期化処理が開始されると(ステップS1)、NDR104−2は、NDR104−1から、NDR104−1の「カメラ用記録領域」の数(何個あるか)、各「カメラ用記録領域」のブロック数、及び、未使用領域のブロック数(カメラ用記録領域に割り当てられてないブロック数)の情報を取得する(ステップS2)。そして、NDR104−2は、NDR104−2の記録装置(例えば、ハードディスク)内に、前記取得した、各「カメラ用記録領域」と未使用領域とのブロック数の比がNDR104−1と同じになるように、各「カメラ用記録領域」を作成し(ステップS3)、初期化処理を終了する(ステップS4)。
【0057】
図5(b)を参照して、各「カメラ用記録領域」別処理の初期化処理の流れの一例を説明する。
この処理が開始されると(ステップS11)、NDR104−1から、所定の変数に格納する値を取得する(ステップS12)。具体的には、NDR104−1の該当する「カメラ用記録領域」のブロック数を取得して、変数「srcNDR_numOfBlocks」に格納し、NDR104−1の該当する「カメラ用記録領域」内に存在する映像のフレーム数を取得して、変数「srcNDR_numOfFrames」に格納し、NDR104−1の該当する「カメラ用記録領域」の最新映像のフレーム番号(「最新のフレーム番号」)を取得して、変数「srcNDR_newestFrameNum」に格納する。
【0058】
次に、動作に必要な所定の変数の初期化を行う(ステップS13)。
具体的には、1ブロックのバイトサイズを「sizeOf_MBlock」に格納し、ブロック内の管理領域151のバイトサイズ「sizeOf_MBlockHeader」に格納する。なお、記録用キャッシュメモリ130のバイトサイズも「sizeOf_MBlock」となる。
また、過去側映像取得用のスレッド13−Old1の要求フレーム番号の変数「oldside_ReqFN」を(「srcNDR_newestFrameNum」−1)とし、過去側映像取得用のスレッド13−Old1の書込用フレーム番号の変数「oldside_WriteFN」を(「srcNDR_numOfFrames」−1)とし、過去側映像取得用のスレッド13−Old1の書込用ブロック番号の変数「oldside_WriteBN」を(「srcNDR_numOfBlocks」−1)とし、最新側映像取得用のスレッド13−New1の要求フレーム番号の変数「newside_ReqFN」を「srcNDR_newestFrameNum」とし、最新側映像取得用のスレッド13−New1の書込用フレーム番号の変数「newside_WriteFN」を「srcNDR_numOfFrames」とし、最新側映像取得用のスレッド13−New1の書込用ブロック番号の変数「newside_WriteBN」を「srcNDR_numOfBlocks」とする。
また、この「カメラ用記録領域」のブロック数を「ThisCh_NumOfBlocks」に格納する。
【0059】
次に、過去側映像取得用のスレッド(Thread)13−Old1を作成する(ステップS14)。
過去側映像取得用のスレッド13−Old1は、ステップS16の処理(図7(a)の処理)を開始するように移行する。
また、このスレッドは、最新側映像取得用のスレッド13−New1として、ステップS15の処理(図6(a)の処理)を開始するように移行する。
【0060】
図6を参照して、最新側映像取得用のスレッド13−New1の動作の一例を示す。
最新側映像取得用のスレッド13−New1により最新映像記録のスレッド処理が開始されると(ステップS21)、変数初期化処理として、変数「cachePtr」を「sizeOf_MBlockHeader」とする(ステップS22)。
次に、NDR104−1に対してフレーム番号「newside_ReqFN」の映像データを要求して、要求した映像データをNDR104−1から受信し、これにより取得した映像データを1フレーム用の受信用バッファ131−New1のメモリに格納する、また、取得した映像データのバイトサイズを変数「frameSize」に格納する(ステップS23)。
【0061】
次に、記録用キャッシュメモリ130−New1に受信した映像データを格納することができるか否かを確認して(ステップS24)、それぞれの結果に応じた処理へ移行する。
具体的には、(「cachePtr」+「frameSize」)が「sizeOf_MBlock」以下である場合には、ステップS28の処理へ移行し、また、(「cachePtr」+「frameSize」)が「sizeOf_MBlock」を超える場合には、ステップS25〜ステップS27の処理を行った後にステップS28の処理へ移行する。
【0062】
なお、前記した「「sizeOf_MBlock」以下である場合」と「「sizeOf_MBlock」を超える場合」の条件は、「「sizeOf_MBlock」未満である場合」と「「sizeOf_MBlock」以上である場合」の条件へ置き換えることも可能である。
【0063】
ステップS25〜ステップS27の処理について説明する。
この処理では、記録用キャッシュメモリ130−New1が映像データで満杯となったため、記録部106−2(例えば、HDD)の該当するブロックに記録する。つまり、キャッシュメモリの内容を記録部に書き出す。
具体的には、まず、ブロック(Block)内の管理領域に、ブロック番号「newside_WriteBN」の値の情報を格納(記載)し、ブロック内の全フレームのそれぞれについて「先頭アドレス」、「バイトサイズ」、「フレーム時刻」、「フレーム番号」の情報を格納(記載)する(ステップS25)。
【0064】
次に、最新側書込用キャッシュメモリである記録用キャッシュメモリ130−New1の内容を、記録部106−2における該当するカメラ用記録領域の(「newside_WriteBN」%「ThisCh_NumOfBlocks」)番目のブロックに書き込んで記録する(ステップS26)。ここで、「A%B」は、AをBで割ったときの余りを表す。
そして、変数の更新として、「newside_WriteBN」の値を1だけ増加させ(1インクリメントし)、また、「cachePtr」を「sizeOf_MBlockHeader」とする(ステップS27)。
【0065】
ステップS28の処理では、1フレーム用の受信バッファ131−New1のメモリの映像データを、最新側書込用キャッシュメモリである記録用キャッシュメモリ130−New1内の「cachePtr」に対応するアドレスの位置に格納(コピー)する。そして、変数の更新として、「cachePtr」に「frameSize」を加算し、また、「newside_ReqFN」の値を1だけ増加させて(1インクリメントして)、ステップS23の処理へ戻る。
【0066】
図7(a)、(b)を参照して、過去側映像取得用のスレッド13−Old1の動作の一例を示す。
図7(a)に示される動作について説明する。
過去側映像取得用のスレッド13−Old1により過去映像記録のスレッド処理が開始されると(ステップS31)、変数初期化処理として、変数「cachePtr」を「sizeOf_MBlock」とする(ステップS32)。
次に、過去側映像取得用のスレッドの終了条件(1)を満たすか否かを確認する(ステップS33)。
具体的には、(「newside_WriteBN」−「oldside_WriteBN」)が「ThisCh_NumOfBlocks」以上である場合には、終了条件(1)を満たしており、スレッドを終了する(ステップS34)。
【0067】
一方、(「newside_WriteBN」−「oldside_WriteBN」)が「ThisCh_NumOfBlocks」未満である場合には、NDR104−1への要求フレームの番号が0以上であるか否かを確認する(ステップS35)。
具体的には、「oldside_ReqFN」が負の数である場合には、NDR401−1の録画開始時の映像まで取得しており、過去側映像取得用のスレッドの終了条件(2)を満たしているため、「記録用キャッシュメモリ」130−Old1の映像データを記録部106−2(記録装置)に書き出す処理を行った後に(ステップS38)、スレッドを終了する(ステップS39)。
【0068】
一方、「oldside_ReqFN」が0以上である場合には、NDR104−1に対してフレーム番号「oldside_ReqFN」の映像データを要求する(ステップS36)。
次に、要求したフレーム番号「oldside_ReqFN」の映像データを取得することができたか否かを確認する(ステップS37)。
具体的には、要求したフレーム番号「oldside_ReqFN」の映像データがNDR104−1には既に無くなっていて(上書済みであって)、当該映像データを取得することができなった場合には、「記録用キャッシュメモリ」130−Old1の映像データを記録部106−2(記録装置)に書き出す処理を行った後に(ステップS38)、スレッドを終了する(ステップS39)。
【0069】
一方、要求したフレーム番号「oldside_ReqFN」の映像データを取得することができた場合には、NDR104−1から取得した当該映像データを1フレーム用の受信バッファ131−Old1のメモリに格納する。また、取得した映像データのバイトサイズを変数「frameSize」に格納する(ステップS40)。
【0070】
次に、記録用キャッシュメモリ130−Old1に受信した映像データを格納することができるか否かを確認する(ステップS41)。
具体的には、(「cachePtr」−「frameSize」)が「sizeOf_MBlockHeader」より小さい場合には、ステップS43の処理へ移行し、また、(「cachePtr」−「frameSize」)が「sizeOf_MBlockHeader」以上である場合には、ステップS42の処理を行った後にステップS43の処理へ移行する。
【0071】
ステップS42の処理では、記録用キャッシュメモリ130−Old1が映像データで満杯となったため、記録部106−2(例えば、HDD)の該当するブロックに記録する。つまり、キャッシュメモリの内容を記録部に書き出す。
ステップS43の処理では、1フレーム用の受信バッファ131−Old1のメモリの映像データを、過去側書込用キャッシュメモリである記録用キャッシュメモリ130−Old1内の「cachePtr−frameSize」に対応するアドレスの位置に格納(コピー)する。そして、変数の更新として、「cachePtr」から「frameSize」を減算し、また、「oldside_ReqFN」の値を1だけ減少させて(1デクリメントして)、ステップS33の処理へ戻る。
【0072】
図7(b)に示される動作について説明する。なお、この動作は、ステップS38やステップS42の「記録用キャッシュ」書込み処理の動作に相当する。
「記録用キャッシュ」書込み処理が開始されると(ステップS51)、過去側映像取得用のスレッドの終了条件(1)を満たすか否かを確認する(ステップS52)。
具体的には、(「newside_WriteBN」−「oldside_WriteBN」)が「ThisCh_NumOfBlocks」以上である場合には、終了条件(1)を満たしており、書込み処理を行わずに、処理をステップS51の呼び出し元へ戻す(ステップS54)。
【0073】
一方、(「newside_WriteBN」−「oldside_WriteBN」)が「ThisCh_NumOfBlocks」未満である場合には、記録用キャッシュメモリ130−Old1に映像データが格納されているか否かを確認する(ステップS53)。
具体的には、「cachePtr」が「sizeOf_MBlock」と同じ値である場合には、映像データが格納されていないため、書込み処理を行わずに、処理をステップS51の呼び出し元へ戻す(ステップS54)。
【0074】
一方、「cachePtr」が「sizeOf_MBlock」未満である場合には、1フレーム以上の映像データが格納されているため、ステップS55〜ステップS57の処理を行う。
具体的には、まず、ブロック(Block)内の管理領域に、ブロック番号「oldside_WriteBN」の値の情報を格納(記載)し、ブロック内の全フレームのそれぞれについて「先頭アドレス」、「バイトサイズ」、「フレーム時刻」、「フレーム番号」の情報を格納(記載)する(ステップS55)。
【0075】
次に、過去側書込用キャッシュメモリである記録用キャッシュメモリ130−Old1の内容を、記録部106−2における該当するカメラ用記録領域の(「oldside_WriteBN」%「ThisCh_NumOfBlocks」)番目のブロックに書き込んで記録する(ステップS56)。ここで、「A%B」は、AをBで割ったときの余りを表す。
そして、変数の更新として、「oldside_WriteBN」の値を1だけ減少させ(1デクリメントし)、また、「cachePtr」を「sizeOf_MBlock」とする(ステップS57)。
そして、処理をステップS51の呼び出し元へ戻す(ステップS58)。
【0076】
(ケース2)
以上の(ケース1)では、NDR104−2側に映像データが記録されていない状態からの映像データ同期化の処理について説明した。
次に、ケース2における処理の例を示す。
図8を参照して、NDR104−2に既に映像データが存在している場合における処理、つまり、NDR104−2がNDR104−1から映像データの取得を行っている際に、当該NDR104−2が停止し、ある程度の時間が経過した後に、当該NDR104−2が再稼働を開始した場合における当該NDR104−2の処理について説明する。
【0077】
図8には、時間軸500を示してあり、図中の左側が過去側を示し、図中の右側が未来側を示している。
図8(a)には、時刻t50時点におけるNDR104−1とNDR104−2の記録映像の状態を示してある。
t50は、図2(b)に示される時点と同じ状態を示しており、具体的には、NDR104−2がNDR104−1から映像データの取得を開始した時点を示している。
NDR104−1は、t50時点における最新映像5012から最古映像5011までの映像を保持している。
NDR104−2は、t50時点における最新映像5021から、最新側の映像取得と、過去側の映像取得を行う。
【0078】
図8(b)には、t50時点からある程度時間が経過した時刻t51時点におけるNDR104−1とNDR104−2の記録映像の状態を示してある。
NDR104−1は、t50時点からt51時点の間、最新映像を記録し続けており、映像データとしてt50時点の映像5113からt51時点の最新映像5114までを記録している。そのぶん、過去の映像データ(図8(b)において5111時点から5112時点までの区間の映像データ)が上書きされて消えている。
NDR104−2は、t50時点の映像データ5112から、未来方向では最新映像5123まで記録し、過去方向では図8(b)における5121時点の映像までNDR104−1から取得して記録している状態である。
【0079】
本例では、このt51時点で、何らかの理由でNDR104−2の動作が停止したとする。
図8(c)には、t51時点からある程度時間が経過した時刻t52時点におけるNDR104−1とNDR104−2の記録映像の状態を示してある。
本例では、このt52時点で、NDR104−2が再起動したとする。
【0080】
NDR104−1は、t51時点からt52時点の間、最新映像を記録し続けており、映像データとしてt51時点の映像5213からt52時点の最新映像5214までを記録している。そのぶん、過去の映像データ(図8(c)において5211時点から5212時点までの区間の映像データ)が上書きされて消えている。
NDR104−2は、図8(c)における5221時点から5222時点までの区間の映像データを保持している。
【0081】
NDR104−2は、NDR104−1に対して、t51時点の映像5213からt52時点の最新映像5214までの区間の映像データが何バイトあるかを問い合わせる。NDR104−1は、問い合わされた区間の全フレームのバイトサイズをNDR104−2へ通知する(戻す)。
NDR104−2は、前記問い合わせた区間の映像データを当該NDR104−2のカメラ用記録領域に格納するために必要なブロック数を計算し、そのブロック数分だけ、図8(c)における5222時点の映像データが格納されているブロックから未来方向に離れたブロック5223を特定する。
NDR104−2は、特定したブロック5223から最新映像を未来方向に記録していき、同時に、t52時点より過去の映像を前記特定したブロック5223から過去方向に記録していく。
【0082】
図8(d)には、t52時点からある程度時間が経過した時刻t53時点におけるNDR104−1とNDR104−2の記録映像の状態を示してある。
NDR104−1は、t52時点からt53時点の間、最新映像を記録し続けており、映像データとしてt52時点の映像5313からt53時点の最新映像5314までを記録している。そのぶん、過去の映像データ(図8(d)において5311時点から5312時点までの区間の映像データ)が上書きされて消えている。
【0083】
NDR104−2は、図8(d)における5321時点から5322時点までの区間の映像データを保持しており、また、再稼動したt52時点の映像データ5324から、最新側の映像を図8(d)における5325時点まで記録し、過去側の映像を図8(d)における5323時点まで記録した状態である。
NDR104−2の過去側映像取得用のスレッド13−Old1は、当該NDR104−2に保持されている図8(d)における5322時点の映像に過去方向の記録映像が達した場合には、既存部分の最古映像の時点5321より過去の映像を取得していくようにする。
【0084】
図8(e)には、t53時点からある程度時間が経過した時刻t54時点におけるNDR104−1とNDR104−2の記録映像の状態を示してある。
NDR104−1は、t53時点からt54時点の間、最新映像を記録し続けており、映像データとしてt53時点の映像5413からt54時点の最新映像5414までを記録している。そのぶん、過去の映像データ(図8(e)において5411時点から5412時点までの区間の映像データ)が上書きされて消えている。
【0085】
NDR104−2は、最新映像の記録を続け、t53時点の映像5415からt54時点の最新映像5416までを記録している。一方、過去側映像の記録は、既存部分である図8(e)における5423時点に達し、既存部分の最古であった図8(e)における5422時点より過去の5421時点の映像までを記録している。
【0086】
t54時点以後は、(ケース1)における図2(c)に示されるのと同じ状態となる。過去側映像取得の終了条件についても(ケース1)と同様である。
本例の(ケース2)では、NDR104−2側に映像データが既にある場合においても、(ケース1)を応用した処理により映像同期化を行うことができることを示した。なお、動作の詳細(例えば、フローチャートなど)については、(ケース1)の場合から容易に類推することが可能であるため、省略する。
【0087】
ここで、本例では、図5(a)に示されるステップS3におけるNDR104−2の初期化処理において、NDR104−1のチャンネルサイズ比率を継承する構成としたが、他の構成例として、管理者が各チャンネルのサイズを指定するような構成を用いることもできる。
【0088】
また、本実施例では、映像データを1フレーム単位で要求する場合について、フレーム番号を用いて説明したが、例えば、MPEG−4であれば、映像データをGOV(Group Of VOP)単位で要求するようにして、その際にGOV番号を用いることもできる。また、上記以外の場合についても、映像データを所定の単位で要求する際に、種々な所定の番号を用いることができる。
【0089】
以上のように、一例として、本例の映像記録システムでは、伝送路102と、伝送路102に接続される複数のカメラ装置101−1、101−2、・・・、101−mと、伝送路102に接続される少なくとも1台の情報端末装置(クライアントPC)103−1、103−2、・・・、103−nと、伝送路102に接続される少なくとも2台のデジタル記録装置(本例では、第1のデジタル記録装置104−1及び第2のデジタル記録装置104−2)を有する。
【0090】
第1のデジタル記録装置104−1は、第1の管理メモリ110−1、第1の記録部106−1、第1の管理メモリ110−1と第1の記録部106−1を制御する第1の制御部111−1を有し、第1の記録部106−1に複数のカメラ装置101−1、101−2、・・・、101−mからの映像データが区別されて記録されるカメラ用記録領域112−1、112−2、・・・、112−mを有する。
【0091】
第2のデジタル記録装置104−2は、第2の管理メモリ110−2、第2の記録部106−2、第2の管理メモリ110−2と第2の記録部106−2を制御する第2の制御部111−2を有する。第2の制御部111−2は、第1の管理メモリ110−1の情報を第2の管理メモリ110−2に読み込む機能を有するとともに、読み込んだ情報に基づいて第1の記録部106−1のカメラ用記録領域112−1、112−2、・・・、112−mに記録されている映像データを第2の記録部106−2に複数のカメラ装置101−1、101−2、・・・、101−m毎に区別された映像データとして読み込む機能を有する。
【0092】
また、本例の映像記録システムでは、一構成例として、第1の記録部106−1の記録容量と、第2の記録部106−2の記録容量とは、異なる記憶容量を有する。
また、本例の映像記録システムでは、一構成例として、第1の管理メモリ110−1には、複数のカメラ装置101−1、101−2、・・・、101−mのそれぞれに関係する情報及び複数のカメラ装置101−1、101−2、・・・、101−mからの映像データのフレーム単位の情報を記憶する。
【0093】
また、他の一例として、本例の映像記録システムでは、第1のデジタル記録装置104−1は、第1の管理メモリ110−1及び第1の記録部106−1を有し、第1の記録部106−1に複数のカメラ装置101−1、101−2、・・・、101−mからの映像データが区別されて記録されるカメラ用記録領域112−1、112−2、・・・、112−mを有する。
第2のデジタル記録装置104−2は、第2の管理メモリ110−2及び第2の記録部106−2を有する。
【0094】
そして、情報端末装置103−1、103−2、・・・、103−nからの指示に基づいて、第2のデジタル記録装置104−2は、第1の管理メモリ110−1の情報を第2の管理メモリ110−2に読み込むとともに、第2のデジタル記録装置104−2の第2の記録部106−2に複数のカメラ装置101−1、101−2、・・・、101−mの映像データを区別して記録するカメラ用記録領域(カメラ用記録領域113−1など)を形成し、管理メモリ110−2に読み込んだ情報に基づいて映像データを1フレーム単位で要求する送信要求を第1のデジタル記録装置104−1に対して行う。第1のデジタル記録装置104−1は、映像データの1フレーム単位の送信要求に応じて、第1の記録部106−1のカメラ用記録領域112−1、112−2、・・・、112−mから該当する映像データを第2のデジタル記録装置104−2へ送信する。第2のデジタル記録装置104−2は、前記送信されたフレーム単位の映像データを受信して、第2の記録部106−2に形成された該当するカメラ用記録領域(カメラ用記録領域113−1など)に記録する。
【0095】
また、本例の映像記録システムでは、第1の管理メモリ110−1は、複数のカメラ装置101−1、101−2、・・・、101−mからの映像データの所定のフレーム数を記憶するとともに、所定のフレーム数毎に、第1の記録部106−1の各カメラ用記録領域112−1、112−2、・・・、112−mに記録する。
また、本例の映像記録システムでは、第1の管理メモリ110−1は、少なくとも第1の記録部106−1に記録されている映像データのフレーム番号と、複数のカメラ装置101−1、101−2、・・・、101−mによる撮像中の所定枚数の映像データのフレーム番号を記録したテーブルを備える。そして、第2のデジタル記録装置104−2からのフレーム単位の映像データの送信要求に対して、第1のデジタル記録装置104−1は、前記テーブルの内容に基づいて、前記送信要求が為された映像データをフレーム単位で第2のデジタル記録装置104−2へ送信する。
【0096】
また、本例の映像記録システムでは、第1の記録部106−1と第2の記録部106−2は、複数のカメラ装置101−1、101−2、・・・、101−mからの映像データを順次循環記録する。
ここで、本例の映像記録システムの特徴点の一例としては、第2のデジタル記録装置104−2が、カメラ装置101−1、101−2、・・・、101−mからの最新映像データを(例えば、第1のデジタル記録装置104−1を介して、又は、直接的に受信して)記録すると同時に、第1のデジタル記録装置104−1から過去の映像データを新しい方から古い方へ向かって取得して記録して行くことである。
【0097】
従って、本例の映像記録システムでは、例えば、単体のNDRで運用されている監視システムで並列運用を行うために他のNDRを追加した場合、又は、置き換え機能で新しいHDDへ映像を移すような場合において、新規追加側のNDRの運用を開始した時点、又は、新しいHDDへ映像を映す時点から、カメラ装置101−1、101−2、・・・、101−mからの最新映像を(例えば、既にあったNDRを介して、又は、直接的に取得して)記録しつつ、過去の映像についても価値の高い方から移していく(記録していく)ことが可能となる。
【0098】
なお、本例の映像記録システムでは、第1のNDR104−1(第1の記録装置の一例)と、第2のNDR104−2(第2の記録装置の一例)を有しており、そして、第2のNDR104−2において、最新側映像取得用のスレッド13−New1により最新の映像を取得する機能により最新映像取得手段が構成されており、過去側映像取得用のスレッド13−Old1により過去の映像を取得する機能により過去映像取得手段が構成されている。
また、本発明は、以上に示した映像記録システムや映像記録方法の実施例に限定されるものではなく、上記以外の種々な映像記録システムや映像記録方法に広く適応することができるものである。
【0099】
ここで、本発明に係るシステムや装置などの構成としては、必ずしも以上に示したものに限られず、種々な構成が用いられてもよい。また、本発明は、例えば、本発明に係る処理を実行する方法或いは方式や、このような方法や方式を実現するためのプログラムや当該プログラムを記録する記録媒体などとして提供することも可能であり、また、種々なシステムや装置として提供することも可能である。
また、本発明の適用分野としては、必ずしも以上に示したものに限られず、本発明は、種々な分野に適用することが可能なものである。
また、本発明に係るシステムや装置などにおいて行われる各種の処理としては、例えばプロセッサやメモリ等を備えたハードウエア資源においてプロセッサがROM(Read Only Memory)に格納された制御プログラムを実行することにより制御される構成が用いられてもよく、また、例えば当該処理を実行するための各機能手段が独立したハードウエア回路として構成されてもよい。
また、本発明は上記の制御プログラムを格納したフロッピー(登録商標)ディスクやCD(Compact Disc)−ROM等のコンピュータにより読み取り可能な記録媒体や当該プログラム(自体)として把握することもでき、当該制御プログラムを当該記録媒体からコンピュータに入力してプロセッサに実行させることにより、本発明に係る処理を遂行させることができる。
【図面の簡単な説明】
【0100】
【図1】本発明の一実施例に係る映像記録システムの構成例を示す図である。
【図2】(a)〜(d)はカメラ用記録領域を用いた動作の一例を示す図である。
【図3】映像データの流れの様子の一例を示す図である。
【図4】(a)〜(c)は映像データを記録用キャッシュメモリに格納する方法の例を示す図である。
【図5】(a)はNDRの初期化処理の手順の一例を示す図であり、(b)は各「カメラ用記録領域」別処理の初期化処理の手順の一例を示す図である。
【図6】最新側映像取得用のスレッドの動作の一例を示す図である。
【図7】(a)、(b)は過去側映像取得用のスレッドの動作の一例を示す図である。
【図8】(a)〜(e)はNDRが再稼働を開始した場合の処理の一例を示す図である。
【図9】映像記録システムの一例を示す図である。
【図10】NDRの録画動作に必要な情報の一例を示す図である。
【図11】領域設定画面(入力設定画面)の一例を示す図である。
【図12】映像記録システムにおける動作の一例を示す図である。
【符号の説明】
【0101】
101、101−1〜101−m・・カメラ装置、 102・・伝送路、 103、103−1〜103−n・・情報端末装置(クライアントPC)、 104、104−1、104−2・・ネットワークデジタル記録装置(NDR)、 105、105−1、105−2・・コンピュータボード、 106、106−1、106−2・・記録部、 107、107−1、107−2・・制御バス、 108、108−1、108−2・・ネットワークI/F、 109、109−1、109−2・・記録部I/F、 110、110−1、110−2・・メモリ(管理メモリ)、 111、111−1、111−2・・CPU(制御部)、 112、112−1〜112−m、113−1・・カメラ用記録領域、
13−New1、13−Old1・・スレッド、
130、130−New1、130−Old1・・記録用キャッシュメモリ、 131−New1、131−Old1・・受信用バッファ、 140、140−1、140−2・・読み出し用キャッシュメモリ、 151・・管理領域、
401・・表示画面(入力設定画面)、 402・・設定権限者パスワード入力領域、 403・・カメラNo.選択領域、 404・・記録領域指定領域、 405・・フレームレート選択領域、 406・・記録開始時刻設定領域、 407・・記録終了時刻設定領域、 408・・記録容量選択領域、 409・・OKボタン、 410・・Cancelボタン、
1120・・ブロック、 1310・・フレーム番号、 1311・・先頭アドレス、 1312・・バイトサイズ、 1313・・フレーム時刻、
【技術分野】
【0001】
本発明は、映像記録システムに関し、特に、ネットワークに接続されているネットワークデジタル映像記録システムに関し、複数台のネットワークデジタル映像記録システムの間において映像データを同期化する技術(記録映像同期化技術)に関する。
【背景技術】
【0002】
遠隔監視システム等では、Webカメラ等の撮像装置で監視領域を順次撮影し、撮影された映像について複数のサイトから時系列的に入力される映像データを磁気ディスク(例えば、ハードディスク)、光ディスク、半導体メモリ等の大容量の記録装置に蓄積(記録又は保存)するとともに、映像をネットワークを介して利用者に配信し、例えば、遠隔地にあるモニタ画面で映像を監視できるようにしている。
【0003】
図9には、このような映像記録システムの一例を示してある。
複数であるm個のカメラ装置101−1、101−2、・・・、101−mは、それぞれ、被写体を撮影するカメラから構成され、例えば、監視カメラ或いはIP(Internet Protocol)カメラ等から構成され、撮影した被写体の映像信号を出力する。
なお、以下の説明では、複数のカメラ装置101−1、101−2、・・・、101−mを代表して示す場合には、カメラ装置101と称する。
また、カメラ装置101には、マイク(図示せず)或いは進入物体検出用のセンサ(図示せず)が設けられているものもあり、この場合には、例えば、これらの出力信号も映像信号に含まれるものとする。但し、他の構成が用いられてもよい。
【0004】
伝送路102は、上述の映像信号を伝送するものであり、例えば、LAN(Local Area Network)、インターネット或いは公衆回線等のネットワークを含み、複数のコンピュータを結んで制御信号やデータなどの信号を伝送する。
複数であるn個の情報端末装置103−1、103−2、・・・、103−nは、それぞれ、例えば、パーソナルコンピュータ(PC:Personal Computer)等のデータ処理装置であり、ネットワーク接続でWebブラウザ等を搭載し、クライアントPCとも呼ばれる。
なお、以下の説明では、複数のクライアントPC103−1、103−2、・・・、103−nを代表して示す場合には、クライアントPC103と称する。
【0005】
デジタル記録装置104は、ネットワーク(伝送路)102に接続されており、例えば、ネットワークデジタルレコーダNDR(NDRは、株式会社 日立国際電気の登録商標)である。
なお、以下の説明では、ネットワークデジタルレコーダNDR104をNDR104と称する。
【0006】
NDR104は、伝送路102を介して、映像の取得や、記録等のための配信を行う装置である。NDR104は、伝送路102を介して、カメラ装置101及び映像データ等の視聴やNDR104の設定を行う複数のクライアントPC103と接続されている。
また、NDR104は、コンピュータボード105と記録部(記録装置)106から構成されている。
【0007】
コンピュータボード105には、伝送路102と接続するためのネットワークインターフェイス(ネットワークI/F)108と、記録部106と接続するための記録部インターフェイス(記録部I/F)109と、メモリ110と、CPU(Central Processing Unit)112が設けられており、これらは制御バス107で接続されている。
【0008】
記録部106は、例えば、磁気ディスク、光ディスク、DVD(Digital Versatile Disc)、半導体ディスク等の記録装置から構成することができる。
記録部106内には、カメラ装置101−1、101−2、・・・、101−mのそれぞれに対応する記録領域112−1、112−2、・・・、112−mが記録を行う複数のカメラ装置101−1、101−2、・・・、101−mの数分存在し、各カメラ装置101−1、101−2、・・・、101−mからの映像データが各記録領域112−1、112−2、・・・、112−mに記録される。
なお、以下では、複数の記録領域を代表して示す場合には、記録領域112と称する。
【0009】
まず、カメラ装置101で撮影された映像をNDR104に記録する場合について説明する。
カメラ装置101は、撮影した映像信号を、例えば、1フレームずつ、MPEG2(Moving Picture Experts Group 2)やJPEG(Joint Photographics Experts Group)等の画像圧縮方式で圧縮し、IP(Internet Protocol)パケット形式で、伝送路102を介してNDR104へ送信する。
【0010】
ネットワークI/F108は、受信したIPパケット形式の映像データを、制御バス107上を伝送する形式へ変換して、CPU111上で動作するNDRソフトウエアへその映像データを引き渡す。
CPU111のNDRソフトウエアは、受信した映像データを一旦メモリ110に格納し、例えば、10〜100フレーム程度データをまとめ、そして、カメラ装置101の各記録領域112の格納位置を計算し、記録部I/F109を介して記録領域112に格納する。
【0011】
ここで、コンピュータボード105のメモリ110には、NDR104の録画動作に必要な情報が格納され、例えば、設定権限者パスワードPW1、或いは、カメラ毎の情報CIが記録される。
図10には、このような情報の内の代表的なものを示してある。
具体的には、NDR104に関して、設定権限者パスワードの情報が格納され、また、各カメラ装置101に関して、カメラ名、カメラタイプ、URL(Uniform Resource Locator)やIPアドレス等からなるアドレス、設定権限者パスワード、スケジュール、記憶領域サイズ(バイト)、先頭フレーム番号と末尾フレーム番号、フレーム番号とフレーム取得時刻、の情報が格納される。なお、他の情報が格納されてもよい。
【0012】
NDR104の設定権限者パスワードPW1は、NDR104の設定変更を行う権限者を識別するめのパスワードである。
各カメラ装置101−1、101−2、・・・、101−mに関する情報として、カメラ名は、設定管理者が識別しやすいように名前として付与した文字列である。カメラタイプは、カメラの機種によって通信方式が異なる場合があることから、カメラの機種識別名である。アドレスは、NDR104を伝送路102を介して各カメラ装置101−1、101−2、・・・、101−mに接続するために必要なアドレスであり、例えば、各カメラ装置のURLやIPアドレス等である。各カメラ装置101−1、101−2、・・・、101−mの設定権限者パスワードは、録画処理によっては各カメラ装置101−1、101−2、・・・、101−mの設定を変更する必要があり、また、カメラ装置101の設定変更には設定権限者の確認を行うためにパスワードを要求することがあることから、NDR104から各カメラ装置101−1、101−2、・・・、101−mの設定を変更する際に送信するパスワードである。なお、このパスワードは、各カメラ装置101−1、101−2、・・・、101−mについて、別個に設定されてもよく、或いは、共通に設定されてもよい。
【0013】
また、各カメラ装置101−1、101−2、・・・、101−mに関する情報として、スケジュールは、NDR104が昼と夜で録画のフレームレートを変える等といった処理ができることから、何時の時間にどれくらいのフレームで撮影するかを定めたものであり、例えば、スケジュールテーブルから構成される。記録領域サイズは、記録部106上における該当するカメラ装置(例えば、カメラ装置101−1等)用の記録領域112への記録に必要なバイトサイズである。先頭フレーム番号と、末尾フレーム番号は、それぞれ、各カメラ装置101−1、101−2、・・・、101−mからの映像を記録した最初のフレーム番号と、記録を終了した時の最後のフレーム番号である。各フレーム番号と、各フレームの取得時刻は、それぞれ、各カメラ装置101−1、101−2、・・・、101−mが被写体を撮像した時の各フレーム番号と、各フレーム毎の取得時刻である。
【0014】
なお、図10に示される各カメラ装置101に関する情報は、例えば、クライアントPC103のWebブラウザに表示される設定画面から設定することができ、これらについては従来から周知の技術を用いることができるため、ここでは、詳細な説明は省略する。
【0015】
NDR104のカメラ101用記録領域112は、例えば、映像取得開始前に、NDR104の設定権限者が、クライアントPC103から、図11に示されるような領域設定画面を用いて作成する。
図11には、例えば、クライアントPC103−1の表示画面401に表示された領域設定画面(入力設定画面)の一例を示してある。
本例の表示画面401における入力設定画面では、NDR104の設定権限者パスワード入力領域402と、カメラNo.選択領域403と、記録領域指定領域404と、フレームレート選択領域405と、記録開始時刻設定領域406と、記録終了時刻設定領域407と、記録容量選択領域408と、OKボタン409と、Cancelボタン410が表示される。
【0016】
図11の例では、カメラNo.選択領域403では、例えば、カメラ装置101−1が選択表示されている。記録部106の記録領域指定領域404では、例えば、カメラ101−1用の記録領域112−1が指定されている。フレームレート選択領域405では、例えば、10枚/秒が設定されている。記録開始時刻設定領域406は、記録開始時刻を入力する領域である。記録終了時刻設定領域407は、記録終了時刻を入力する領域である。記録容量選択領域408は、記録容量を選択する領域であり、例えば、200MBが選択されている。また、上述した各項目の入力及び選択が正しければ、OKボタン409を押すことで、各項目が実行される。また、上述した各項目について修正や変更等がある場合には、Cancelボタン410を押して、再入力等を行う。
以上のようにして、NDR104の設定権限者は、接続するカメラ装置101の録画の際のフレームレートや記録時間等を勘案して、カメラ101用の記録領域112のバイトサイズを決定する。
【0017】
図12には、例えば、カメラ装置101−1で撮像された映像データをNDR104のカメラ101−1用記録領域112−1に記録し、クライアントPC103−1からの映像要求に従って、映像データを読み出す場合における動作の一例を概念的に示してある。
本例では、映像データをカメラ101−1用記録領域112−1に記録する方式として、領域の先頭から記録を開始して末尾に到達するとまた先頭から上書きを行う方式、所謂、循環記録方式を採用している。
【0018】
本例では、映像1フレームよりも充分に大きい固定長の管理単位(例えば、1MByte)をブロックと呼称する。
カメラ用記録領域112は、複数のブロック1120で構成される。ブロックを循環的に利用することで循環記録を実現している。
映像録画時には、自動的に容量拡張を行わず、予め確保された領域内での循環記録を行う。
また、メモリ110に、映像記録時に用いる記録用キャッシュメモリ130と、読み出し用キャッシュメモリ140が確保されている。これら、映像記録時に用いる記録用キャッシュメモリ130と、読み出し用キャッシュメモリ140のバイトサイズは、それぞれ、ブロックのバイトサイズと同一である。
【0019】
カメラ装置101から取得された映像データを、一旦、記録用キャッシュメモリ130にフレーム単位で詰めて格納していき、1ブロック分の映像データを溜めてから、カメラ用記録領域112に格納する。
フレーム毎に、管理用の、例えば、フレーム番号(一例として、カメラ毎に独立した1からの連番)を付与し、同時に、映像取得時刻も記録する。従って、メモリ110には、先頭フレーム番号及び末尾フレーム番号も記録している。
同様に、ブロックの管理用に、ブロック番号(一例として、カメラ毎に独立した1からの連番)を付与する。従って、メモリ110には、先頭ブロック番号及び末尾フレーム番号も記録している。
【0020】
次に、上記のようにして記録された映像を再生する場合について説明する。
NDR104に記録された映像を視聴したいユーザは、クライアントPC103、例えば、クライアントPC103−1の再生ソフトウエアを稼働させる。これによって、NDR再生ソフトウエアは、NDR104から1フレーム単位で映像データを取得し、クライアントPC103−1の画面上に映像の表示、再生処理を行うことができる。
【0021】
これについて更に詳述する。
クライアントPC103−1上のNDR再生ソフトウエアは、IPパケット形式で映像配信要求を伝送路102を介してNDR104へ送信する。クライアントPC103−1から送出された映像配信要求は、IP形式で、伝送路102を伝達し、NDR104のネットワークI/F108に到達する。ネットワークI/F108は、受信したIP形式の映像配信要求を制御バス107上に伝送する形式へ変換して、CPU111上で動作するNDRソフトウエアへ伝送する。
【0022】
NDRソフトウエアは、映像配信要求に従い、記録部I/F109を介して、例えば、カメラ101−1用記録領域112−1から、要求フレームを含むブロックを読み出し用キャッシュメモリ140に読み出し、キャッシュメモリ上の当該フレームの映像データを、IP形式で、ネットワークI/F108及び伝送路102を介して、クライアントPC103−1へ送信する。
クライアントPC103−1上のNDR再生ソフトウエアは、受信した映像データをデコードして、画面上に表示する。なお、クライアントPC103−1から映像データの1フレームを取得する際には、映像取得時刻又はフレーム番号で指定して目的の映像データを取得することができる。
【0023】
ところで、映像監視システムにおいて、高いセキュリティが要求される場合には、NDRの故障による録画停止も許されないことがある。この場合には、2台のNDRで録画を行い、一方が故障で停止していても、もう一方で録画を続け、そして、故障から復帰したNDRが、停止期間の映像を、稼動中のNDRから取得して映像データを補完する、といった並列運用が行われる。
また、単体のNDRで録画を行うシステムにおいても、記録装置のHDDは消耗品であり、一定期間毎に交換することが望ましい。この交換の際にも、既存のHDD内の映像データを新しいHDDへ移した上で、運用することが望まれており、停止時間無しに置き換える方法が検討等されている。
【0024】
【特許文献1】特開2004−227719号公報
【特許文献2】特開2007−228121号公報
【発明の開示】
【発明が解決しようとする課題】
【0025】
監視システムにおける常時記録では、何らかの事象があった場合に、その時に何が起こったのかを映像で確認できることが重要である。
言い換えれば、通常、監視システムにおける映像記録では、常時記録は行われていても、その映像の視聴は何らかの事象があった場合にしか行われない。
視聴者が、事象があったことに気付くまでに要する時間は、数時間から数日と言われており、その間に一度も視聴されなかった映像は、そのまま上書きされるまで視聴されない場合がほとんどである。
そういう意味で、視聴者の立場で記録映像に価値を付けるとすれば、現在時刻から一定時間前(例えば、数時間〜数日の前)までの映像の価値が高く、それ以前の古い映像の価値は時間経過と共に緩やかに減少していく、と言える。
【0026】
単体のNDR104で運用されている監視システムに対して並列運用を行うためにNDRを追加した場合、又は、置き換え機能で新しいHDDへ映像を移す場合において、既存の方法では、既存のNDR104内の最古の映像から順次新しい方向へ移しており、記録容量が大きいときには、既存の映像データの移動に時間を要し、新しいHDDで最新(現在時刻)の映像データを記録するまでに(現在時刻に追いつくまでに)、相当の時間を要する。
【0027】
しかしながら、このような映像データの移動中に、既存側のNDR104が故障等で停止したような場合があるとすると、映像データの移動が完全には行われなくなると考えられる。
また、例えば、既存側のNDR104が停止した時点から、カメラ装置101からの映像記録を新規側のNDRで行うとしても、既存側のNDR104が停止した直前辺りの映像は欠落すると考えられる。この場合、新規側のNDRには先の例で言う価値の高い映像が記録されていない状態が発生し得る。
【0028】
本発明は、このような従来の事情に鑑み為されたもので、例えば、単体のNDRで運用されている監視システムで並列運用を行うために他のNDRを追加した場合、又は、置き換え機能で新しいHDDへ映像を移すような場合において、複数の記録装置の間で記録映像の同期を効果的に確立することができる映像記録システムを提供することを目的とする。
【課題を解決するための手段】
【0029】
上記目的を達成するため、本発明では、映像を記録する映像記録システムにおいて、次のような構成とした。
すなわち、記録対象となる映像を記録する第1の記録装置と、前記第1の記録装置に映像が記録された状態において前記記録対象となる映像の記録を開始する第2の記録装置が設けられる。
前記第2の記録装置は、前記記録対象となる映像の最新のものを取得する最新映像取得手段と、前記第1の記録装置に記録された過去の映像を新しいものから過去のものへ向かう順序で取得する過去映像取得手段を備える。そして、前記第2の記録装置では、前記最新映像取得手段により前記記録対象となる映像の最新のものを取得して記録しつつ、前記過去映像取得手段により前記第1の記録装置に記録された過去の映像を新しいものから過去のものへ向かう順序で取得して記録する。
【0030】
従って、記録対象となる映像について、第1の記録装置に映像が記録された状態において、その後に第2の記録装置により映像を記録することを開始する場合に、その開始時点を起点として未来方向の映像(最新のもの)と過去方向の映像の両方を同時に順次取得して記録していくことにより、例えば、未来方向の映像を記録していくことができるとともに、現時点に近くて価値があると考えられる新しいものを優先させて過去のものへ向かう順序で過去の映像を記録していくことができる。具体例として、単体のNDRで運用されている監視システムで並列運用を行うために他のNDRを追加した場合、又は、置き換え機能で新しいHDDへ映像を移すような場合において、複数の記録装置の間で記録映像の同期を効果的に確立することができる。
【0031】
ここで、映像としては、種々なものが用いられてもよく、例えば、カメラにより撮像されるリアルタイムの映像を用いることができる。
また、第2の記録装置が記録対象となる映像の最新のものを取得する手法としては、例えば、カメラにより撮像されるリアルタイムの映像を第1の記録装置により取得して記録していく場合に、第1の記録装置によりカメラから取得された最新の映像を当該第1の記録装置から間接的に取得する手法が用いられてもよく、或いは、最新の映像をカメラから直接的に取得する手法が用いられてもよい。
【発明の効果】
【0032】
以上説明したように、本発明に係る映像記録システムによると、第1の記録装置に映像が記録された状態から第2の記録装置により映像の記録を開始する場合に、第2の記録装置では、その時点を起点として未来方向の映像と過去方向の映像を順次取得して記録していくようにしたため、価値が高いと考えられる映像を時間的に優先させて先に記録することができ、複数の記録装置の間で記録映像の同期を効果的に確立することができる。
【発明を実施するための最良の形態】
【0033】
本発明に係る実施例を図面を参照して説明する。
図1には、本発明の一実施例に係る映像記録システムの構成例を示す図である。
なお、説明の便宜上から、図1では、図9に示される構成部と同様なものには、同一の符号又は同様な符号が付されているが、本実施例で特徴的な構成や動作については、必ずしも図9に示される場合と同じではない。
【0034】
本例の映像記録システムは、複数であるm個のカメラ装置101−1、101−2、・・・、101−mと、伝送路102と、複数であるn個の情報端末装置(クライアントPCとも言う)103−1、103−2、・・・、103−nと、2個のネットワークデジタル記録装置104−1、104−2を備えている。
本例では、各ネットワークデジタル記録装置104−1、104−2は、伝送路(ネットワーク)102に接続されているネットワークデジタルレコーダNDR(NDRは、株式会社 日立国際電気の登録商標)である。
【0035】
なお、以下の説明では、各ネットワークデジタルレコーダNDR104−1、104−2を、それぞれ、NDR104−1(第1のデジタル記録装置とも言う)、NDR104−2(第2のデジタル記録装置とも言う)と称する。
また、以下の説明では、複数のカメラ装置101−1、101−2、・・・、101−mを代表して示す場合には、カメラ装置101と称する。
また、以下の説明では、複数のクライアントPC103−1、103−2、・・・、103−nを代表して示す場合には、クライアントPC103と称する。
【0036】
ここで、NDR104−1は、既に、カメラ装置101からの映像が記録されている記録装置であり、また、NDR104−2は、新たに設置された記録装置である。
NDR104−1及びNDR104−2は、伝送路102を介して、映像の取得や記録等のための配信を行う装置である。NDR104−1及びNDR104−2は、伝送路102を介して、カメラ装置101及び映像データ等の視聴やNDRの設定を行う複数のクライアントPC103と接続されている。
【0037】
NDR104−1(第1のデジタル記録装置)は、コンピュータボード105−1と記録部106−1から構成されている。
コンピュータボード105−1には、伝送路102と接続するためのネットワークインターフェイス(ネットワークI/F)108−1と、記録部106−1と接続するための記録部インターフェイス(記録部I/F)109−1と、メモリ110−1(以下、第1の管理メモリ110−1とも称する)と、CPU111−1(以下、第1の制御部111−1とも言う)が設けられており、これらは制御バス107−1で接続されている。
【0038】
記録部106−1は、例えば、磁気ディスク、光ディスク、DVD、半導体ディスク等の記録装置から構成することができる。
記録部106−1内には、複数のカメラ装置101−1、101−2、・・・、101−mのそれぞれに対応する記録領域112−1、112−2、・・・、112−mが記録を行う複数のカメラ装置101の数分存在し、各カメラ装置101−1、101−2、・・・、101−mからの映像データが各記録領域112−1、112−2、・・・、112−mに記録される。
なお、以下では、複数の記録領域を代表して示す場合には、記録領域112と称する。
【0039】
本例の記録領域112には、図9に示されるシステムについて説明したのと同様に、各カメラ装置101からの映像、例えば、監視映像がフレーム単位で記録されている。
また、第1の管理メモリ110−1には、図10に示されるように、各カメラ装置101に関係する情報が記録されている。
なお、図10に示されるような各カメラ装置101に関係する情報は、例えば、記録部106−1の各記録領域112にも記録することもできる。
【0040】
同様に、NDR104−2(第2のデジタル記録装置)は、コンピュータボード105−2と記録部106−2から構成されている。
コンピュータボード105−2には、伝送路102と接続するためのネットワークインターフェイス(ネットワークI/F)108−2と、記録部106−2と接続するための記録部インターフェイス(記録部I/F)109−2と、メモリ110−2(以下、第2の管理メモリ110−2とも称する)と、CPU111−2(以下、第2の制御部とも言う)が設けられており、これらは制御バス107−2で接続されている。
【0041】
記録部106−2は、例えば、磁気ディスク、光ディスク、DVD、半導体ディスク等の記録装置から構成することができる。
記録部106−2は、まだ、映像が記録されていない状態、即ち、フォーマットはされているが、記録領域は形成されていない状態である。なお、記録領域が形成されていない状態とは、未使用の新品である状態や、或いは、予め映像データを全て削除した状態等を言う。
図1では、一例として、カメラ101−1用記録領域113−1を示してある。このカメラ101−1用記録領域113−1は、NDR104−1の記録部106−1のカメラ101−1用記録領域112−1の記録データ及びカメラ装置101−1で撮像中の映像データを引き継ぐ記録領域である。また、他のカメラ装置101−2、・・・、101−mについても、カメラ装置101−1と同様に、データを引き継ぐ記録領域113−2、・・・、113−mを設けることができる。
なお、記録部106−1の記録容量と記録部106−2の記録容量としては、例えば、同じ容量であってもよく、或いは、異なる容量であってもよい。
【0042】
以下では、以上のような状態において、まず、単純なケースである(ケース1)として、1台が既に稼動中でカメラ装置101からの監視映像を記録している状態であり、もう一方が記録領域に監視映像が記録されていない状態(HDDが新品等の状態)である場合における処理の例を説明する。その後に、(ケース2)として、2台での並列稼働中に1台が停止した後に復帰した場合における処理の例を説明する。
【0043】
(ケース1)
ケース1における処理の例を示す。
1台が稼動中であり、もう1台が例えば新品である場合について説明する。
本例では、説明のために、NDR104−1が稼動中であって、既に、カメラ装置101−1から映像データを取得して記録しているとし、また、NDR104−2が新品であって、記録部106−2内に映像データが存在せず、カメラ用記録用領域も割り当てられていないとする。
【0044】
図2(a)〜(d)を参照して、処理の概要を説明する。
図2(a)には、NDR104−1のカメラ用記録領域の一例を示してある。このカメラ用記録領域は、既に長時間稼動しており、カメラ装置からの最新映像を、古い映像に、上書きしている状態である。図では、時計回りで循環記録を行っている場合を示してある。
図2(b)には、NDR104−2のカメラ用記録領域の初期時の状態の一例を示してある。カメラ用記録領域に映像データが無い状態である。本例では、説明の便宜上から、図中の0時の位置から映像データの記録を行うとする。
【0045】
図2(c)には、NDR104−2がNDR104−1から映像データの取得を行っている際におけるNDR104−2のカメラ用記録領域の状態の一例を示してある。最新の映像を取得して時計周りに記録すると同時に、並行して、過去側の映像を取得して反時計周りに記録している様子を示してある。
図2(d)には、NDR104−2が過去側の映像取得を終える時点におけるNDR104−2のカメラ用記録領域の状態の一例を示してある。最新映像の記録先と過去側の映像の記録先とが重なった際に、過去側映像の取得と記録を終了する。以後は、最新映像の取得と記録のみを行う。この時点で、NDR104−1と映像データの同期化が完了したとする。
【0046】
図3を参照して、図2(c)に示される状態における映像データの流れの様子の一例を説明する。なお、本例では、カメラ装置101−1からの映像データの流れについて示すが、他のカメラ装置101−2、・・・、101−mからの映像データの流れについても同様である。
カメラ装置101−1からの映像データを、NDR104−1の記録用キャシュメモリ130に一旦溜めた後に、記録部106−1のカメラ101−1用記録領域112−1に前述と同様に循環記録で保存する。
本例では、カメラ装置101からの映像データの取得の方法としては、例えば、NDR104−1からの1フレーム毎の映像要求に対してカメラ装置101−1から1フレーム単位で映像データが送られ、記録用キャシュメモリ130にブロックに収まる範囲で映像データを溜めた後に、NDR104−1の記録部106−1に記録する。
【0047】
そして、NDR104−2は、初期化処理としてカメラ用記録領域の領域確保を行い、その後に映像同期化処理を開始する。
映像同期化処理を開始すると、NDR104−2は、カメラ装置101−1の映像データを取得するために、最新側映像取得用のスレッド(最新側映像データ取得スレッド)13−New1と、過去側映像取得用のスレッド(過去側映像データ取得スレッド)13−Old1を起動する。
ここで、最新側映像取得用のスレッド13−New1は、1フレーム分の受信用バッファ131−New1と、記録用キャッシュメモリ130−New1を持つ。
また、過去側映像取得用のスレッド13−Old1は、1フレーム分の受信用バッファ131−Old1と、記録用キャッシュメモリ130−Old1を持つ。
【0048】
最新側映像取得用のスレッド13−New1は、常時、NDR104−1から最新映像を取得し、カメラ101−1用記録領域に映像データを記録していく働きをする。
最新側映像取得用のスレッド13−New1は、NDR104−1に対して最新映像を要求し、NDR104−1の読み出し用キャッシュメモリ140−1から返送されたフレーム単位の映像データを、1フレーム分の受信用バッファ131−New1に格納し、そして、記録用キャッシュメモリ130−New1に受信した映像データを格納できるだけの空きサイズがあれば、受信した映像データを記録用キャッシュメモリ130−New1に即座に格納し、また、空きがなければ、記録用キャッシュメモリ130−New1の内容をカメラ101−1用記録領域113−1の該当するブロックに書き出して、記録用キャッシュメモリ130−New1をクリアした後に、受信した映像データを記録用キャッシュメモリ130−New1に格納する。
ここで、最新映像データを溜めた記録用キャッシュメモリ130−New1の書き出し先のブロックとしては、図2(c)に示されるように、順方向(図2(c)中で時計回り)に、順々に書き加えていく。
【0049】
過去側映像取得用のスレッド13−Old1は、新しい方から古い方へと順々に過去映像を取得して、カメラ101−1用記録領域に映像データを記録していく働きをする。
過去側映像取得用のスレッド13−Old1は、NDR104−1に対して過去映像を要求し、NDR104−1の読み出し用キャッシュメモリ140−2から返送されたフレーム単位の映像データを、1フレーム分の受信用バッファ131−Old1に格納し、そして、記録用キャッシュメモリ130−Old1に受信した映像データを格納できるだけの空きサイズがあれば、受信した映像データを記録用キャッシュメモリ130−Old1に即座に格納し、また、空きがなければ、記録用キャッシュメモリ130−Old1の内容をカメラ101−1用記録領域113−1の該当するブロックに書き出して、記録用キャッシュメモリ130−Old1をクリアした後に、受信した映像データを記録用キャッシュメモリ130−Old1に格納する。
ここで、過去映像データを溜めた記録用キャッシュメモリ130−Old1の書き出し先のブロックとしては、図2(c)に示されるように、逆方向(図2(c)中で反時計回り)に、下記の終了条件を満たすまで、順々に書き加えていく。
【0050】
過去側映像取得用のスレッド13−Old1が終了する条件を記す。
過去側映像取得用のスレッド13−Old1が終了する条件1としては、カメラ用記録領域内で、最新映像で上書きされるブロックまで過去側の映像データを取得した場合がある。
過去側映像取得用のスレッド13−Old1が終了する条件2としては、映像取得元(本例では、NDR104−1)内に存在する過去側映像データを全て取得し終えた場合がある。
過去側映像取得用のスレッド13−Old1が終了する条件3としては、予め指定されていた条件を満たした場合がある。ここで、この条件としては、例えば、何時間前までといった時間指定の条件や、或いは、過去側映像データの総バイトサイズの条件や、或いは、カメラ用記録領域に対する比率の条件などを用いることができる。
【0051】
受信した映像データを記録用キャッシュメモリに格納する方法は、最新側映像取得用のスレッド13−New1と過去側映像取得用のスレッド13−Old1とで異なる。
図4(a)〜(c)を参照して、この違いを説明する。
記録用キャッシュメモリ130の内容は、そのまま記録部のカメラ用記録領域の該当するブロックに書き込まれる。このため、図4(a)に示されるように、記録用キャッシュメモリ130の先頭部分には、ブロックの管理用の情報を格納するブロック管理領域151を確保してある。
ブロック管理領域151には、このブロック内に格納している全映像フレームのそれぞれについて、「フレーム番号」1310、「先頭アドレス」1311、「バイトサイズ」1312、「フレーム時刻」1313を保持する。
【0052】
フレーム番号1310には、該当するフレームの管理用番号を記してある。
先頭アドレス1311には、該当するフレームのブロック内での開始アドレスを記してある。
バイトサイズ1312には、該等するフレームのバイトサイズを記してある。
フレーム時刻1313には、映像データがカメラ装置(例えば、IPカメラ)で生成された時刻を記してある。
【0053】
図4(a)に示されるように、記録用キャッシュメモリ130の領域からブロック管理領域151を除いた領域に、フレーム単位の映像データを時系列順に並べて格納する。
図4(b)に示されるように、最新側映像記録スレッドが使用する記録用キャッシュメモリ130−New1では、映像データを取得した順に、キャッシュメモリの先頭から順々に格納していく。
【0054】
一方、図4(c)に示されるように、過去側映像記録スレッドが使用する記録用キャッシュメモリ130−Old1では、映像データを取得した順に、キャシュメモリの末尾から順々に格納していく。
具体的には、NDR104−1からは、時刻が(t、t−1、t−2、t−3、t−4、t−5、・・・)といったように、新しい方から古い方へ向かって映像データを取得し、MBlock内には末尾から詰めて行くため、結果的に、MBlockの先頭からは映像データが時系列順に並ぶ。
【0055】
図5〜図7に示されるフローチャートを参照して、図2(b)、(c)、(d)に示される処理の流れを説明する。
図5(a)を参照して、NDR104−2の初期化処理の流れの一例を説明する。
NDR104−2の記録部106−2は、新品であり、カメラ用記録領域が確保されていない状態である。初期化処理では、新品の記録部106−2に、カメラ用記録領域を設ける作業を行う。
【0056】
具体的には、全記録領域の初期化処理が開始されると(ステップS1)、NDR104−2は、NDR104−1から、NDR104−1の「カメラ用記録領域」の数(何個あるか)、各「カメラ用記録領域」のブロック数、及び、未使用領域のブロック数(カメラ用記録領域に割り当てられてないブロック数)の情報を取得する(ステップS2)。そして、NDR104−2は、NDR104−2の記録装置(例えば、ハードディスク)内に、前記取得した、各「カメラ用記録領域」と未使用領域とのブロック数の比がNDR104−1と同じになるように、各「カメラ用記録領域」を作成し(ステップS3)、初期化処理を終了する(ステップS4)。
【0057】
図5(b)を参照して、各「カメラ用記録領域」別処理の初期化処理の流れの一例を説明する。
この処理が開始されると(ステップS11)、NDR104−1から、所定の変数に格納する値を取得する(ステップS12)。具体的には、NDR104−1の該当する「カメラ用記録領域」のブロック数を取得して、変数「srcNDR_numOfBlocks」に格納し、NDR104−1の該当する「カメラ用記録領域」内に存在する映像のフレーム数を取得して、変数「srcNDR_numOfFrames」に格納し、NDR104−1の該当する「カメラ用記録領域」の最新映像のフレーム番号(「最新のフレーム番号」)を取得して、変数「srcNDR_newestFrameNum」に格納する。
【0058】
次に、動作に必要な所定の変数の初期化を行う(ステップS13)。
具体的には、1ブロックのバイトサイズを「sizeOf_MBlock」に格納し、ブロック内の管理領域151のバイトサイズ「sizeOf_MBlockHeader」に格納する。なお、記録用キャッシュメモリ130のバイトサイズも「sizeOf_MBlock」となる。
また、過去側映像取得用のスレッド13−Old1の要求フレーム番号の変数「oldside_ReqFN」を(「srcNDR_newestFrameNum」−1)とし、過去側映像取得用のスレッド13−Old1の書込用フレーム番号の変数「oldside_WriteFN」を(「srcNDR_numOfFrames」−1)とし、過去側映像取得用のスレッド13−Old1の書込用ブロック番号の変数「oldside_WriteBN」を(「srcNDR_numOfBlocks」−1)とし、最新側映像取得用のスレッド13−New1の要求フレーム番号の変数「newside_ReqFN」を「srcNDR_newestFrameNum」とし、最新側映像取得用のスレッド13−New1の書込用フレーム番号の変数「newside_WriteFN」を「srcNDR_numOfFrames」とし、最新側映像取得用のスレッド13−New1の書込用ブロック番号の変数「newside_WriteBN」を「srcNDR_numOfBlocks」とする。
また、この「カメラ用記録領域」のブロック数を「ThisCh_NumOfBlocks」に格納する。
【0059】
次に、過去側映像取得用のスレッド(Thread)13−Old1を作成する(ステップS14)。
過去側映像取得用のスレッド13−Old1は、ステップS16の処理(図7(a)の処理)を開始するように移行する。
また、このスレッドは、最新側映像取得用のスレッド13−New1として、ステップS15の処理(図6(a)の処理)を開始するように移行する。
【0060】
図6を参照して、最新側映像取得用のスレッド13−New1の動作の一例を示す。
最新側映像取得用のスレッド13−New1により最新映像記録のスレッド処理が開始されると(ステップS21)、変数初期化処理として、変数「cachePtr」を「sizeOf_MBlockHeader」とする(ステップS22)。
次に、NDR104−1に対してフレーム番号「newside_ReqFN」の映像データを要求して、要求した映像データをNDR104−1から受信し、これにより取得した映像データを1フレーム用の受信用バッファ131−New1のメモリに格納する、また、取得した映像データのバイトサイズを変数「frameSize」に格納する(ステップS23)。
【0061】
次に、記録用キャッシュメモリ130−New1に受信した映像データを格納することができるか否かを確認して(ステップS24)、それぞれの結果に応じた処理へ移行する。
具体的には、(「cachePtr」+「frameSize」)が「sizeOf_MBlock」以下である場合には、ステップS28の処理へ移行し、また、(「cachePtr」+「frameSize」)が「sizeOf_MBlock」を超える場合には、ステップS25〜ステップS27の処理を行った後にステップS28の処理へ移行する。
【0062】
なお、前記した「「sizeOf_MBlock」以下である場合」と「「sizeOf_MBlock」を超える場合」の条件は、「「sizeOf_MBlock」未満である場合」と「「sizeOf_MBlock」以上である場合」の条件へ置き換えることも可能である。
【0063】
ステップS25〜ステップS27の処理について説明する。
この処理では、記録用キャッシュメモリ130−New1が映像データで満杯となったため、記録部106−2(例えば、HDD)の該当するブロックに記録する。つまり、キャッシュメモリの内容を記録部に書き出す。
具体的には、まず、ブロック(Block)内の管理領域に、ブロック番号「newside_WriteBN」の値の情報を格納(記載)し、ブロック内の全フレームのそれぞれについて「先頭アドレス」、「バイトサイズ」、「フレーム時刻」、「フレーム番号」の情報を格納(記載)する(ステップS25)。
【0064】
次に、最新側書込用キャッシュメモリである記録用キャッシュメモリ130−New1の内容を、記録部106−2における該当するカメラ用記録領域の(「newside_WriteBN」%「ThisCh_NumOfBlocks」)番目のブロックに書き込んで記録する(ステップS26)。ここで、「A%B」は、AをBで割ったときの余りを表す。
そして、変数の更新として、「newside_WriteBN」の値を1だけ増加させ(1インクリメントし)、また、「cachePtr」を「sizeOf_MBlockHeader」とする(ステップS27)。
【0065】
ステップS28の処理では、1フレーム用の受信バッファ131−New1のメモリの映像データを、最新側書込用キャッシュメモリである記録用キャッシュメモリ130−New1内の「cachePtr」に対応するアドレスの位置に格納(コピー)する。そして、変数の更新として、「cachePtr」に「frameSize」を加算し、また、「newside_ReqFN」の値を1だけ増加させて(1インクリメントして)、ステップS23の処理へ戻る。
【0066】
図7(a)、(b)を参照して、過去側映像取得用のスレッド13−Old1の動作の一例を示す。
図7(a)に示される動作について説明する。
過去側映像取得用のスレッド13−Old1により過去映像記録のスレッド処理が開始されると(ステップS31)、変数初期化処理として、変数「cachePtr」を「sizeOf_MBlock」とする(ステップS32)。
次に、過去側映像取得用のスレッドの終了条件(1)を満たすか否かを確認する(ステップS33)。
具体的には、(「newside_WriteBN」−「oldside_WriteBN」)が「ThisCh_NumOfBlocks」以上である場合には、終了条件(1)を満たしており、スレッドを終了する(ステップS34)。
【0067】
一方、(「newside_WriteBN」−「oldside_WriteBN」)が「ThisCh_NumOfBlocks」未満である場合には、NDR104−1への要求フレームの番号が0以上であるか否かを確認する(ステップS35)。
具体的には、「oldside_ReqFN」が負の数である場合には、NDR401−1の録画開始時の映像まで取得しており、過去側映像取得用のスレッドの終了条件(2)を満たしているため、「記録用キャッシュメモリ」130−Old1の映像データを記録部106−2(記録装置)に書き出す処理を行った後に(ステップS38)、スレッドを終了する(ステップS39)。
【0068】
一方、「oldside_ReqFN」が0以上である場合には、NDR104−1に対してフレーム番号「oldside_ReqFN」の映像データを要求する(ステップS36)。
次に、要求したフレーム番号「oldside_ReqFN」の映像データを取得することができたか否かを確認する(ステップS37)。
具体的には、要求したフレーム番号「oldside_ReqFN」の映像データがNDR104−1には既に無くなっていて(上書済みであって)、当該映像データを取得することができなった場合には、「記録用キャッシュメモリ」130−Old1の映像データを記録部106−2(記録装置)に書き出す処理を行った後に(ステップS38)、スレッドを終了する(ステップS39)。
【0069】
一方、要求したフレーム番号「oldside_ReqFN」の映像データを取得することができた場合には、NDR104−1から取得した当該映像データを1フレーム用の受信バッファ131−Old1のメモリに格納する。また、取得した映像データのバイトサイズを変数「frameSize」に格納する(ステップS40)。
【0070】
次に、記録用キャッシュメモリ130−Old1に受信した映像データを格納することができるか否かを確認する(ステップS41)。
具体的には、(「cachePtr」−「frameSize」)が「sizeOf_MBlockHeader」より小さい場合には、ステップS43の処理へ移行し、また、(「cachePtr」−「frameSize」)が「sizeOf_MBlockHeader」以上である場合には、ステップS42の処理を行った後にステップS43の処理へ移行する。
【0071】
ステップS42の処理では、記録用キャッシュメモリ130−Old1が映像データで満杯となったため、記録部106−2(例えば、HDD)の該当するブロックに記録する。つまり、キャッシュメモリの内容を記録部に書き出す。
ステップS43の処理では、1フレーム用の受信バッファ131−Old1のメモリの映像データを、過去側書込用キャッシュメモリである記録用キャッシュメモリ130−Old1内の「cachePtr−frameSize」に対応するアドレスの位置に格納(コピー)する。そして、変数の更新として、「cachePtr」から「frameSize」を減算し、また、「oldside_ReqFN」の値を1だけ減少させて(1デクリメントして)、ステップS33の処理へ戻る。
【0072】
図7(b)に示される動作について説明する。なお、この動作は、ステップS38やステップS42の「記録用キャッシュ」書込み処理の動作に相当する。
「記録用キャッシュ」書込み処理が開始されると(ステップS51)、過去側映像取得用のスレッドの終了条件(1)を満たすか否かを確認する(ステップS52)。
具体的には、(「newside_WriteBN」−「oldside_WriteBN」)が「ThisCh_NumOfBlocks」以上である場合には、終了条件(1)を満たしており、書込み処理を行わずに、処理をステップS51の呼び出し元へ戻す(ステップS54)。
【0073】
一方、(「newside_WriteBN」−「oldside_WriteBN」)が「ThisCh_NumOfBlocks」未満である場合には、記録用キャッシュメモリ130−Old1に映像データが格納されているか否かを確認する(ステップS53)。
具体的には、「cachePtr」が「sizeOf_MBlock」と同じ値である場合には、映像データが格納されていないため、書込み処理を行わずに、処理をステップS51の呼び出し元へ戻す(ステップS54)。
【0074】
一方、「cachePtr」が「sizeOf_MBlock」未満である場合には、1フレーム以上の映像データが格納されているため、ステップS55〜ステップS57の処理を行う。
具体的には、まず、ブロック(Block)内の管理領域に、ブロック番号「oldside_WriteBN」の値の情報を格納(記載)し、ブロック内の全フレームのそれぞれについて「先頭アドレス」、「バイトサイズ」、「フレーム時刻」、「フレーム番号」の情報を格納(記載)する(ステップS55)。
【0075】
次に、過去側書込用キャッシュメモリである記録用キャッシュメモリ130−Old1の内容を、記録部106−2における該当するカメラ用記録領域の(「oldside_WriteBN」%「ThisCh_NumOfBlocks」)番目のブロックに書き込んで記録する(ステップS56)。ここで、「A%B」は、AをBで割ったときの余りを表す。
そして、変数の更新として、「oldside_WriteBN」の値を1だけ減少させ(1デクリメントし)、また、「cachePtr」を「sizeOf_MBlock」とする(ステップS57)。
そして、処理をステップS51の呼び出し元へ戻す(ステップS58)。
【0076】
(ケース2)
以上の(ケース1)では、NDR104−2側に映像データが記録されていない状態からの映像データ同期化の処理について説明した。
次に、ケース2における処理の例を示す。
図8を参照して、NDR104−2に既に映像データが存在している場合における処理、つまり、NDR104−2がNDR104−1から映像データの取得を行っている際に、当該NDR104−2が停止し、ある程度の時間が経過した後に、当該NDR104−2が再稼働を開始した場合における当該NDR104−2の処理について説明する。
【0077】
図8には、時間軸500を示してあり、図中の左側が過去側を示し、図中の右側が未来側を示している。
図8(a)には、時刻t50時点におけるNDR104−1とNDR104−2の記録映像の状態を示してある。
t50は、図2(b)に示される時点と同じ状態を示しており、具体的には、NDR104−2がNDR104−1から映像データの取得を開始した時点を示している。
NDR104−1は、t50時点における最新映像5012から最古映像5011までの映像を保持している。
NDR104−2は、t50時点における最新映像5021から、最新側の映像取得と、過去側の映像取得を行う。
【0078】
図8(b)には、t50時点からある程度時間が経過した時刻t51時点におけるNDR104−1とNDR104−2の記録映像の状態を示してある。
NDR104−1は、t50時点からt51時点の間、最新映像を記録し続けており、映像データとしてt50時点の映像5113からt51時点の最新映像5114までを記録している。そのぶん、過去の映像データ(図8(b)において5111時点から5112時点までの区間の映像データ)が上書きされて消えている。
NDR104−2は、t50時点の映像データ5112から、未来方向では最新映像5123まで記録し、過去方向では図8(b)における5121時点の映像までNDR104−1から取得して記録している状態である。
【0079】
本例では、このt51時点で、何らかの理由でNDR104−2の動作が停止したとする。
図8(c)には、t51時点からある程度時間が経過した時刻t52時点におけるNDR104−1とNDR104−2の記録映像の状態を示してある。
本例では、このt52時点で、NDR104−2が再起動したとする。
【0080】
NDR104−1は、t51時点からt52時点の間、最新映像を記録し続けており、映像データとしてt51時点の映像5213からt52時点の最新映像5214までを記録している。そのぶん、過去の映像データ(図8(c)において5211時点から5212時点までの区間の映像データ)が上書きされて消えている。
NDR104−2は、図8(c)における5221時点から5222時点までの区間の映像データを保持している。
【0081】
NDR104−2は、NDR104−1に対して、t51時点の映像5213からt52時点の最新映像5214までの区間の映像データが何バイトあるかを問い合わせる。NDR104−1は、問い合わされた区間の全フレームのバイトサイズをNDR104−2へ通知する(戻す)。
NDR104−2は、前記問い合わせた区間の映像データを当該NDR104−2のカメラ用記録領域に格納するために必要なブロック数を計算し、そのブロック数分だけ、図8(c)における5222時点の映像データが格納されているブロックから未来方向に離れたブロック5223を特定する。
NDR104−2は、特定したブロック5223から最新映像を未来方向に記録していき、同時に、t52時点より過去の映像を前記特定したブロック5223から過去方向に記録していく。
【0082】
図8(d)には、t52時点からある程度時間が経過した時刻t53時点におけるNDR104−1とNDR104−2の記録映像の状態を示してある。
NDR104−1は、t52時点からt53時点の間、最新映像を記録し続けており、映像データとしてt52時点の映像5313からt53時点の最新映像5314までを記録している。そのぶん、過去の映像データ(図8(d)において5311時点から5312時点までの区間の映像データ)が上書きされて消えている。
【0083】
NDR104−2は、図8(d)における5321時点から5322時点までの区間の映像データを保持しており、また、再稼動したt52時点の映像データ5324から、最新側の映像を図8(d)における5325時点まで記録し、過去側の映像を図8(d)における5323時点まで記録した状態である。
NDR104−2の過去側映像取得用のスレッド13−Old1は、当該NDR104−2に保持されている図8(d)における5322時点の映像に過去方向の記録映像が達した場合には、既存部分の最古映像の時点5321より過去の映像を取得していくようにする。
【0084】
図8(e)には、t53時点からある程度時間が経過した時刻t54時点におけるNDR104−1とNDR104−2の記録映像の状態を示してある。
NDR104−1は、t53時点からt54時点の間、最新映像を記録し続けており、映像データとしてt53時点の映像5413からt54時点の最新映像5414までを記録している。そのぶん、過去の映像データ(図8(e)において5411時点から5412時点までの区間の映像データ)が上書きされて消えている。
【0085】
NDR104−2は、最新映像の記録を続け、t53時点の映像5415からt54時点の最新映像5416までを記録している。一方、過去側映像の記録は、既存部分である図8(e)における5423時点に達し、既存部分の最古であった図8(e)における5422時点より過去の5421時点の映像までを記録している。
【0086】
t54時点以後は、(ケース1)における図2(c)に示されるのと同じ状態となる。過去側映像取得の終了条件についても(ケース1)と同様である。
本例の(ケース2)では、NDR104−2側に映像データが既にある場合においても、(ケース1)を応用した処理により映像同期化を行うことができることを示した。なお、動作の詳細(例えば、フローチャートなど)については、(ケース1)の場合から容易に類推することが可能であるため、省略する。
【0087】
ここで、本例では、図5(a)に示されるステップS3におけるNDR104−2の初期化処理において、NDR104−1のチャンネルサイズ比率を継承する構成としたが、他の構成例として、管理者が各チャンネルのサイズを指定するような構成を用いることもできる。
【0088】
また、本実施例では、映像データを1フレーム単位で要求する場合について、フレーム番号を用いて説明したが、例えば、MPEG−4であれば、映像データをGOV(Group Of VOP)単位で要求するようにして、その際にGOV番号を用いることもできる。また、上記以外の場合についても、映像データを所定の単位で要求する際に、種々な所定の番号を用いることができる。
【0089】
以上のように、一例として、本例の映像記録システムでは、伝送路102と、伝送路102に接続される複数のカメラ装置101−1、101−2、・・・、101−mと、伝送路102に接続される少なくとも1台の情報端末装置(クライアントPC)103−1、103−2、・・・、103−nと、伝送路102に接続される少なくとも2台のデジタル記録装置(本例では、第1のデジタル記録装置104−1及び第2のデジタル記録装置104−2)を有する。
【0090】
第1のデジタル記録装置104−1は、第1の管理メモリ110−1、第1の記録部106−1、第1の管理メモリ110−1と第1の記録部106−1を制御する第1の制御部111−1を有し、第1の記録部106−1に複数のカメラ装置101−1、101−2、・・・、101−mからの映像データが区別されて記録されるカメラ用記録領域112−1、112−2、・・・、112−mを有する。
【0091】
第2のデジタル記録装置104−2は、第2の管理メモリ110−2、第2の記録部106−2、第2の管理メモリ110−2と第2の記録部106−2を制御する第2の制御部111−2を有する。第2の制御部111−2は、第1の管理メモリ110−1の情報を第2の管理メモリ110−2に読み込む機能を有するとともに、読み込んだ情報に基づいて第1の記録部106−1のカメラ用記録領域112−1、112−2、・・・、112−mに記録されている映像データを第2の記録部106−2に複数のカメラ装置101−1、101−2、・・・、101−m毎に区別された映像データとして読み込む機能を有する。
【0092】
また、本例の映像記録システムでは、一構成例として、第1の記録部106−1の記録容量と、第2の記録部106−2の記録容量とは、異なる記憶容量を有する。
また、本例の映像記録システムでは、一構成例として、第1の管理メモリ110−1には、複数のカメラ装置101−1、101−2、・・・、101−mのそれぞれに関係する情報及び複数のカメラ装置101−1、101−2、・・・、101−mからの映像データのフレーム単位の情報を記憶する。
【0093】
また、他の一例として、本例の映像記録システムでは、第1のデジタル記録装置104−1は、第1の管理メモリ110−1及び第1の記録部106−1を有し、第1の記録部106−1に複数のカメラ装置101−1、101−2、・・・、101−mからの映像データが区別されて記録されるカメラ用記録領域112−1、112−2、・・・、112−mを有する。
第2のデジタル記録装置104−2は、第2の管理メモリ110−2及び第2の記録部106−2を有する。
【0094】
そして、情報端末装置103−1、103−2、・・・、103−nからの指示に基づいて、第2のデジタル記録装置104−2は、第1の管理メモリ110−1の情報を第2の管理メモリ110−2に読み込むとともに、第2のデジタル記録装置104−2の第2の記録部106−2に複数のカメラ装置101−1、101−2、・・・、101−mの映像データを区別して記録するカメラ用記録領域(カメラ用記録領域113−1など)を形成し、管理メモリ110−2に読み込んだ情報に基づいて映像データを1フレーム単位で要求する送信要求を第1のデジタル記録装置104−1に対して行う。第1のデジタル記録装置104−1は、映像データの1フレーム単位の送信要求に応じて、第1の記録部106−1のカメラ用記録領域112−1、112−2、・・・、112−mから該当する映像データを第2のデジタル記録装置104−2へ送信する。第2のデジタル記録装置104−2は、前記送信されたフレーム単位の映像データを受信して、第2の記録部106−2に形成された該当するカメラ用記録領域(カメラ用記録領域113−1など)に記録する。
【0095】
また、本例の映像記録システムでは、第1の管理メモリ110−1は、複数のカメラ装置101−1、101−2、・・・、101−mからの映像データの所定のフレーム数を記憶するとともに、所定のフレーム数毎に、第1の記録部106−1の各カメラ用記録領域112−1、112−2、・・・、112−mに記録する。
また、本例の映像記録システムでは、第1の管理メモリ110−1は、少なくとも第1の記録部106−1に記録されている映像データのフレーム番号と、複数のカメラ装置101−1、101−2、・・・、101−mによる撮像中の所定枚数の映像データのフレーム番号を記録したテーブルを備える。そして、第2のデジタル記録装置104−2からのフレーム単位の映像データの送信要求に対して、第1のデジタル記録装置104−1は、前記テーブルの内容に基づいて、前記送信要求が為された映像データをフレーム単位で第2のデジタル記録装置104−2へ送信する。
【0096】
また、本例の映像記録システムでは、第1の記録部106−1と第2の記録部106−2は、複数のカメラ装置101−1、101−2、・・・、101−mからの映像データを順次循環記録する。
ここで、本例の映像記録システムの特徴点の一例としては、第2のデジタル記録装置104−2が、カメラ装置101−1、101−2、・・・、101−mからの最新映像データを(例えば、第1のデジタル記録装置104−1を介して、又は、直接的に受信して)記録すると同時に、第1のデジタル記録装置104−1から過去の映像データを新しい方から古い方へ向かって取得して記録して行くことである。
【0097】
従って、本例の映像記録システムでは、例えば、単体のNDRで運用されている監視システムで並列運用を行うために他のNDRを追加した場合、又は、置き換え機能で新しいHDDへ映像を移すような場合において、新規追加側のNDRの運用を開始した時点、又は、新しいHDDへ映像を映す時点から、カメラ装置101−1、101−2、・・・、101−mからの最新映像を(例えば、既にあったNDRを介して、又は、直接的に取得して)記録しつつ、過去の映像についても価値の高い方から移していく(記録していく)ことが可能となる。
【0098】
なお、本例の映像記録システムでは、第1のNDR104−1(第1の記録装置の一例)と、第2のNDR104−2(第2の記録装置の一例)を有しており、そして、第2のNDR104−2において、最新側映像取得用のスレッド13−New1により最新の映像を取得する機能により最新映像取得手段が構成されており、過去側映像取得用のスレッド13−Old1により過去の映像を取得する機能により過去映像取得手段が構成されている。
また、本発明は、以上に示した映像記録システムや映像記録方法の実施例に限定されるものではなく、上記以外の種々な映像記録システムや映像記録方法に広く適応することができるものである。
【0099】
ここで、本発明に係るシステムや装置などの構成としては、必ずしも以上に示したものに限られず、種々な構成が用いられてもよい。また、本発明は、例えば、本発明に係る処理を実行する方法或いは方式や、このような方法や方式を実現するためのプログラムや当該プログラムを記録する記録媒体などとして提供することも可能であり、また、種々なシステムや装置として提供することも可能である。
また、本発明の適用分野としては、必ずしも以上に示したものに限られず、本発明は、種々な分野に適用することが可能なものである。
また、本発明に係るシステムや装置などにおいて行われる各種の処理としては、例えばプロセッサやメモリ等を備えたハードウエア資源においてプロセッサがROM(Read Only Memory)に格納された制御プログラムを実行することにより制御される構成が用いられてもよく、また、例えば当該処理を実行するための各機能手段が独立したハードウエア回路として構成されてもよい。
また、本発明は上記の制御プログラムを格納したフロッピー(登録商標)ディスクやCD(Compact Disc)−ROM等のコンピュータにより読み取り可能な記録媒体や当該プログラム(自体)として把握することもでき、当該制御プログラムを当該記録媒体からコンピュータに入力してプロセッサに実行させることにより、本発明に係る処理を遂行させることができる。
【図面の簡単な説明】
【0100】
【図1】本発明の一実施例に係る映像記録システムの構成例を示す図である。
【図2】(a)〜(d)はカメラ用記録領域を用いた動作の一例を示す図である。
【図3】映像データの流れの様子の一例を示す図である。
【図4】(a)〜(c)は映像データを記録用キャッシュメモリに格納する方法の例を示す図である。
【図5】(a)はNDRの初期化処理の手順の一例を示す図であり、(b)は各「カメラ用記録領域」別処理の初期化処理の手順の一例を示す図である。
【図6】最新側映像取得用のスレッドの動作の一例を示す図である。
【図7】(a)、(b)は過去側映像取得用のスレッドの動作の一例を示す図である。
【図8】(a)〜(e)はNDRが再稼働を開始した場合の処理の一例を示す図である。
【図9】映像記録システムの一例を示す図である。
【図10】NDRの録画動作に必要な情報の一例を示す図である。
【図11】領域設定画面(入力設定画面)の一例を示す図である。
【図12】映像記録システムにおける動作の一例を示す図である。
【符号の説明】
【0101】
101、101−1〜101−m・・カメラ装置、 102・・伝送路、 103、103−1〜103−n・・情報端末装置(クライアントPC)、 104、104−1、104−2・・ネットワークデジタル記録装置(NDR)、 105、105−1、105−2・・コンピュータボード、 106、106−1、106−2・・記録部、 107、107−1、107−2・・制御バス、 108、108−1、108−2・・ネットワークI/F、 109、109−1、109−2・・記録部I/F、 110、110−1、110−2・・メモリ(管理メモリ)、 111、111−1、111−2・・CPU(制御部)、 112、112−1〜112−m、113−1・・カメラ用記録領域、
13−New1、13−Old1・・スレッド、
130、130−New1、130−Old1・・記録用キャッシュメモリ、 131−New1、131−Old1・・受信用バッファ、 140、140−1、140−2・・読み出し用キャッシュメモリ、 151・・管理領域、
401・・表示画面(入力設定画面)、 402・・設定権限者パスワード入力領域、 403・・カメラNo.選択領域、 404・・記録領域指定領域、 405・・フレームレート選択領域、 406・・記録開始時刻設定領域、 407・・記録終了時刻設定領域、 408・・記録容量選択領域、 409・・OKボタン、 410・・Cancelボタン、
1120・・ブロック、 1310・・フレーム番号、 1311・・先頭アドレス、 1312・・バイトサイズ、 1313・・フレーム時刻、
【特許請求の範囲】
【請求項1】
映像を記録する映像記録システムにおいて、
記録対象となる映像を記録する第1の記録装置と、前記第1の記録装置に映像が記録された状態において前記記録対象となる映像の記録を開始する第2の記録装置が設けられ、
前記第2の記録装置は、前記記録対象となる映像の最新のものを取得する最新映像取得手段と、前記第1の記録装置に記録された過去の映像を新しいものから過去のものへ向かう順序で取得する過去映像取得手段を備え、前記最新映像取得手段により前記記録対象となる映像の最新のものを取得して記録しつつ、前記過去映像取得手段により前記第1の記録装置に記録された過去の映像を新しいものから過去のものへ向かう順序で取得して記録する、
ことを特徴とする映像記録システム。
【請求項1】
映像を記録する映像記録システムにおいて、
記録対象となる映像を記録する第1の記録装置と、前記第1の記録装置に映像が記録された状態において前記記録対象となる映像の記録を開始する第2の記録装置が設けられ、
前記第2の記録装置は、前記記録対象となる映像の最新のものを取得する最新映像取得手段と、前記第1の記録装置に記録された過去の映像を新しいものから過去のものへ向かう順序で取得する過去映像取得手段を備え、前記最新映像取得手段により前記記録対象となる映像の最新のものを取得して記録しつつ、前記過去映像取得手段により前記第1の記録装置に記録された過去の映像を新しいものから過去のものへ向かう順序で取得して記録する、
ことを特徴とする映像記録システム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【公開番号】特開2009−171485(P2009−171485A)
【公開日】平成21年7月30日(2009.7.30)
【国際特許分類】
【出願番号】特願2008−10026(P2008−10026)
【出願日】平成20年1月21日(2008.1.21)
【出願人】(000001122)株式会社日立国際電気 (5,007)
【Fターム(参考)】
【公開日】平成21年7月30日(2009.7.30)
【国際特許分類】
【出願日】平成20年1月21日(2008.1.21)
【出願人】(000001122)株式会社日立国際電気 (5,007)
【Fターム(参考)】
[ Back to top ]