(57)【要約】【課題】ハードディスクドライブに記録するデータを一時的に記憶するバッファメモリのサイズを低減する。【解決手段】監視用レコーダー１００は、カメラ１０の映像信号を符号化して映像データを生成するエンコーダー１０３と、映像データを一時的に記憶するバッファメモリ１０５と、ハードディスクドライブ１１０のハードディスク１１４に映像データを記録する制御をＨＤＤコントローラー１０６を介して実行する制御部１０４とを備える。制御部１０４は、記録データを保証するためにフラッシュコマンドを用いて映像データをハードディスク１１４に記録する。その際、制御部１０は、フラッシュコマンドが連続してフラッシュ制御期間が長くなると、バッファメモリ１０５がオーバーフローすることを防ぐために、別にフラッシュコマンドを用いて、フラッシュ制御期間を短くする。【選択図】図１
2015114887.tif 000002
【特許請求の範囲】
【請求項１】
カメラの映像信号を符号化して映像データを生成するエンコーダーと、
前記映像データを一時的に記憶するバッファメモリと、
前記バッファメモリから読み出した映像データをハードディスクドライブのハードディスクの指定したアドレスに記録する制御を実行する制御部と、
を備え、
前記制御部は、フラッシュコマンドを用いた前記記録したデータを保証するための第１のフラッシュ制御によって前記映像データを前記ハードディスクに記録するとともに、前記第１のフラッシュ制御を実行する所定時間前に、前記第１のフラッシュ制御とは異なる第２のフラッシュ制御を実行する
ことを特徴とする監視用レコーダー。
【請求項２】
前記制御部は、前記第１のフラッシュ制御を、前記ハードディスクの所定の大きさを単位とする管理ブロックごとに実行する
ことを特徴とする請求項１に記載の監視用レコーダー。
【請求項３】
前記ハードディスクに記録されるエリアが、前記カメラに応じて複数存在する場合、
前記制御部は、前記エリアごとに、そのエリアに対応する前記第１のフラッシュ制御の時刻を、前記エンコーダーによって生成された前記映像データの量、前記ハードディスクに書き込むアドレスおよび前記管理ブロックのサイズに基づいて予測し、前記予測した第１のフラッシュ制御の時刻と他の第１のフラッシュ制御の時刻との差分絶対値が予め設定された閾値以下か否かを判定し、閾値以下と判定したときに、前記第１のフラッシュ制御を実行する所定時間前に、前記第２のフラッシュ制御を実行する
ことを特徴とする請求項２に記載の監視用レコーダー。
【請求項４】
前記制御部は、前記第１のフラッシュ制御を、予め決められた所定の周期ごとに実行する
ことを特徴とする請求項１に記載の監視用レコーダー。
【請求項５】
前記ハードディスクに記録されるエリアが、前記カメラに応じて複数存在する場合、
前記制御部は、前記エリアごとに、そのエリアに対応する前記第１のフラッシュ制御の時刻を、前記所定の周期の終了時刻に基づいて予測し、前記予測した第１のフラッシュ制御の時刻と他の第１のフラッシュ制御の時刻との差分絶対値が予め設定された閾値以下か否かを判定し、閾値以下と判定したときに、前記第１のフラッシュ制御を実行する所定時間前に、前記第２のフラッシュ制御を実行する
ことを特徴とする請求項４に記載の監視用レコーダー。
【請求項６】
前記所定時間は、前記第１のフラッシュ制御と前記第２のフラッシュ制御とが連続しないことを満たす期間の長さである
ことを特徴とする請求項１に記載の監視用レコーダー。
【請求項７】
カメラの映像信号を符号化して映像データを生成するエンコーダーと、前記映像データを一時的に記憶するバッファメモリと、前記バッファメモリから読み出した映像データをハードディスクドライブのハードディスクの指定したアドレスに記録する制御を実行する制御部と、を備える監視用レコーダーのデータ記録方法であって、
前記制御部は、
フラッシュコマンドを用いた前記記録したデータを保証するための第１のフラッシュ制御によって前記映像データを前記ハードディスクに記録するステップと、
前記第１のフラッシュ制御を実行する所定時間前に、前記第１のフラッシュ制御とは異なる第２のフラッシュ制御を行うステップと
を実行することを特徴とするデータ記録方法。
【請求項８】
前記制御部は、前記第１のフラッシュ制御を、前記ハードディスクの所定の大きさを単位とする管理ブロックごとに実行する
ことを特徴とする請求項７に記載のデータ記録方法。
【請求項９】
前記ハードディスクに記録されるエリアが、前記カメラに応じて複数存在する場合、
前記制御部は、前記エリアごとに、そのエリアに対応する前記第１のフラッシュ制御の時刻を、前記エンコーダーによって生成された前記映像データの量、前記ハードディスクに書き込むアドレスおよび前記管理ブロックのサイズに基づいて予測し、前記予測した第１のフラッシュ制御の時刻と他の第１のフラッシュ制御の時刻との差分絶対値が予め設定された閾値以下か否かを判定し、閾値以下と判定したときに、前記第１のフラッシュ制御を実行する所定時間前に、前記第２のフラッシュ制御を実行する
ことを特徴とする請求項８に記載のデータ記録方法。
【請求項１０】
前記制御部は、前記第１のフラッシュ制御を、予め決められた所定の周期ごとに実行する
ことを特徴とする請求項７に記載のデータ記録方法。
【請求項１１】
前記ハードディスクに記録されるエリアが、前記カメラに応じて複数存在する場合、
前記制御部は、前記エリアごとに、そのエリアに対応する前記第１のフラッシュ制御の時刻を、前記所定の周期の終了時刻に基づいて予測し、前記予測した第１のフラッシュ制御の時刻と他の第１のフラッシュ制御の時刻との差分絶対値が予め設定された閾値以下か否かを判定し、閾値以下と判定したときに、前記第１のフラッシュ制御を実行する所定時間前に、前記第２のフラッシュ制御を実行する
ことを特徴とする請求項１０に記載のデータ記録方法。
【請求項１２】
前記所定時間は、前記第１のフラッシュ制御と前記第２のフラッシュ制御とが連続しないことを満たす期間の長さである
ことを特徴とする請求項７に記載のデータ記録方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ハードディスクドライブに記録するデータを一時的に記憶するバッファメモリのサイズを低減する技術に関する。
【背景技術】
【０００２】
近年、犯罪抑制や事件の早期解決等を目的として、監視用カメラと監視用レコーダー等とで構成される監視システムが、マンションやビル等の建物、銀行やコンビニエンスストア等の店舗、さらには街角に設置されてきている。
【０００３】
監視用レコーダーは、複数の監視用カメラの映像を一定期間記録および保存する機能を備えており、その一定期間が過ぎると古い記録映像データに新しい映像データを上書きすることで記録の継続性を維持している。また、監視用レコーダーは、一般的にハードディスクドライブ（ＨＤＤ）を備えてハードディスク（ＨＤ）に映像データを記録し、その書き込み性能を向上するためにキャッシュメモリを備えている。また、ハードディスクは、ランダムアクセス性能が高くなって大容量化され、複数台のハードディスクを組み合わせたＲＡＩＤ(Redundant Arrays of Inexpensive Disks)システム等のディスクドライブを構成して、冗長性を持たせて信頼性を向上させるようになっている。
【０００４】
監視用レコーダーは、監視者の居ない無人の時間帯や無人の場所において、監視用カメラの映像を継続して記録するため、停電が発生して復旧した後であっても、映像記録を正しく継続する必要がある。監視用レコーダーがキャッシュメモリを備えている場合には、ハードディスクドライブに入力した映像データの順番とハードディスクドライブ内のハードディスクに書き込む映像データの順番が異なることがある。これは、書き込み性能を向上させるための現象である。そのため、停電から復帰後に読み出したデータのどこまでが正しいのかを保証できなくなるという問題がある。
【０００５】
特許文献１には、ハードディスクに記録したデータの保証方法として、キャッシュメモリの内容をハードディスクに強制的に書き込むフラッシュ制御を、所定のタイミングで実行することが開示されている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００１−１８４２４６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
フラッシュ制御が行われている間は、ハードディスクドライブは、データ入力を受け付けなくなる。そのため、監視用レコーダーは、バッファメモリを備えることによって、カメラから出力される映像データを、一旦バッファメモリに蓄積することになる。
【０００８】
ここで、監視用レコーダーが、キャッシュメモリを有するハードディスクドライブとバッファメモリとを備えている場合で、かつ、複数の監視用カメラそれぞれに対してハードディスクに記録エリアを設け、その記録エリアごとに所定の周期でフラッシュ制御を実行する場合を想定する。
【０００９】
この場合には、異なる記録エリアに適用されるフラッシュ制御のタイミングが重なって、フラッシュ制御が連続して実行されることが起きる。そのため、フラッシュ制御の間に、バッファメモリに蓄積されるデータ量が大きなピークを有するようになる。
【００１０】
バッファメモリからデータがオーバーフローしないようにするために、バッファメモリのサイズをピークに合わせて設定する必要がある。バッファメモリに記憶されるデータ量が大きなピークを有する場合には、そのピークに対応する大容量のバッファメモリを備える必要があり、経済的でないという問題がある。また、バッファメモリのサイズを大きくした場合には、コストが嵩むという問題もある。しかしながら、特許文献１には、バッファメモリのサイズを低減する技術に関しては記載されていない。
【００１１】
そこで、本発明では、ハードディスクドライブに記録するデータを一時的に記憶するバッファメモリのサイズを低減する技術を提供することを課題とする。
【課題を解決するための手段】
【００１２】
前記課題を解決するために、本発明の監視用レコーダーは、カメラの映像信号を符号化して映像データを生成するエンコーダーと、前記映像データを一時的に記憶するバッファメモリと、前記バッファメモリから読み出した映像データをハードディスクドライブのハードディスクの指定したアドレスに記録する制御を実行する制御部と、を備え、前記制御部が、フラッシュコマンドを用いた前記記録したデータを保証するための第１のフラッシュ制御によって前記映像データを前記ハードディスクに記録するとともに、前記第１のフラッシュ制御を実行する所定時間前に、前記第１のフラッシュ制御とは異なる第２のフラッシュ制御を実行することを特徴とする。
【発明の効果】
【００１３】
本発明によれば、ハードディスクドライブに記録するデータを一時的に記憶するバッファメモリのサイズを低減することができる。
【図面の簡単な説明】
【００１４】
【図１】監視用レコーダーの機能例を示す図である。
【図２Ａ】ｗｒｉｔｅコマンドによる書き込み状態の一例を示す図である。
【図２Ｂ】フラッシュコマンドによる書き込み状態の一例を示す図である。
【図３Ａ】書き込んだデータが保証される場合の一例を示す図である。
【図３Ｂ】書き込んだデータが保証されない場合の一例を示す図である。
【図４】フラッシュ制御を実行するタイミングの一例を示す図であり、（ａ）はフラッシュ制御が管理ブロックの終端で実行される場合を表し、（ｂ）はフラッシュ制御のタイミング間隔が図４（ａ）の場合に比べて長い場合を表し、（ｃ）はフラッシュ制御が時間によって強制的に実行される場合を表す。
【図５】バッファメモリがオーバーフローとなる場合の一例を示す図であり、（ａ）はキャッシュメモリに書き込まれる状態を表し、（ｂ）はハードディスクへの書き込みのタイミングを表し、（ｃ）はバッファメモリの占有量を表す。
【図６】バッファメモリのオーバーフローを回避する場合の一例を示す図であり、（ａ）はキャッシュメモリに書き込まれる状態を表し、（ｂ）はハードディスクへの書き込みのタイミングを表し、（ｃ）はバッファメモリの占有量を表す。
【図７】第１の実施例における処理フロー例を示す図である。
【図８】第２の実施例における処理フロー例を示す図である。
【図９】第３の実施例における処理フロー例を示す図である。
【発明を実施するための形態】
【００１５】
ここで、本発明を実施するための形態（以降、「本実施形態」と称す。）について、適宜図面を参照しながら詳細に説明する。
【００１６】
はじめに、監視用レコーダー１００の機能例について、図１を用いて説明する。図１は、本発明の説明に必要な機能だけを示しており、監視用レコーダー１００の機能のすべてを示しているものではない。
【００１７】
図１に示すように、監視用レコーダー１００は、１台以上のカメラ１０を接続し、映像データを記録する機能を有する。監視用レコーダー１００は、少なくとも、Ａ／Ｄ（アナログディジタル変換器）１０１、ＭＩＸ（ミキサー）１０２、エンコーダー１０３、制御部１０４、バッファメモリ１０５、ＨＤＤコントローラー１０６およびハードディスクドライブ（ＨＤＤ）１１０を備える。
【００１８】
Ａ／Ｄ１０１は、カメラ１０から出力されるアナログ映像信号を、ディジタル信号に変換する機能を有する。
ＭＩＸ１０２は、ディジタル信号を混合し、所定フォーマットの信号に変換する機能を有する。
【００１９】
エンコーダー１０３は、ＭＩＸ１０２から出力された信号を圧縮して映像データ（以降、単にデータと称することもある。）に変換する機能を有する。
制御部１０４は、エンコーダー１０３から出力される映像データをハードディスクドライブ１１０に記録するため、バッファメモリ１０５との間で映像データを読み書きする処理や、ＨＤＤコントローラー１０６を制御する機能を有する。また、制御部１０４は、不図示のタイマー等から現在時刻を取得する機能を有する。制御部１０４は、図示しないＣＰＵ（Central Processing Unit）およびメインメモリによって構成され、図示しない記憶部に記憶されているアプリケーションプログラムをメインメモリに展開して、機能を具現化している。制御部１０４は、映像データをハードディスクドライブ１１０に記録する場合、ＨＤＤ用コマンド（例えば、ＡＴＡ（Advanced Technology Attachment）コマンド）を用い、ＨＤＤコントローラー１０６を介して、ハードディスク１１４の書き込み先のアドレスを指定して書き込む。
【００２０】
バッファメモリ１０５は、記憶装置であり、制御部１０４の制御に基づいて、映像データが一時的に記憶され、所定のタイミングで読み出される。
ＨＤＤコントローラー１０６は、制御部１０４によって制御され、ＨＤＤ用コマンド、書き込み先のアドレスおよび映像データをハードディスクドライブ１１０に出力する機能を有する。ハードディスクドライブ１１０に映像データを書き込むコマンドには、ｗｒｉｔｅコマンドおよびフラッシュコマンドがあるが、これらの違いについては後記する。
【００２１】
ハードディスクドライブ１１０は、少なくとも、Ｉ／Ｆ（インタフェース）１１１、コントローラー１１２、キャッシュメモリ１１３およびハードディスク１１４を備える。
Ｉ／Ｆ１１１は、例えば、ＳＡＴＡ（Serial ATA）Ｉ／Ｆのようなインタフェースであり、ＨＤＤコントローラー１０６のＨＤＤ用コマンド、書き込み先のアドレスおよび映像データを受け付ける機能を有する。
【００２２】
コントローラー１１２は、Ｉ／Ｆ１１１を介してＨＤＤ用コマンド、書き込み先アドレスおよび映像データを受け付け、映像データをキャッシュメモリ１１３に記憶し、ＨＤＤ用コマンドを解釈し、キャッシュメモリ１１３から映像データを読み出してハードディスク１１４に書き込む制御を実行する機能を有する。具体的には、コントローラー１１２は、ｗｒｉｔｅコマンドを受け付けた場合、書き込み性能を向上するために、ハードディスク１１４に書き込む映像データの順番を制御する。また、コントローラー１１２は、フラッシュコマンドを受け付けた場合、キャッシュメモリ１１３内の映像データすべてをハードディスク１１４に書き込む制御を実行する。
【００２３】
キャッシュメモリ１１３は、記憶装置であり、コントローラー１１２の制御に基づいて、データが一時的に記憶され、所定のタイミングで読み出される。なお、読み出されたデータは、キャッシュメモリ１１３から消去される。
ハードディスク１１４は、記憶装置であり、コントローラー１１２の制御に基づいて、データが記録また読み出される。
【００２４】
次に、ハードディスク１１４への書き込みコマンドについて、図２Ａ、図２Ｂを用いて説明する（適宜、図１参照）。図２Ａは、ｗｒｉｔｅコマンドによる書き込み状態の一例を表し、図２Ｂは、フラッシュコマンドによる書き込み状態の一例を表している。
【００２５】
図２Ａでは、Ｓ１ａの吹き出しに示すように、ハードディスクドライブ１１０のＩ／Ｆ１１１への入力データがｗｒｉｔｅコマンドを用いて「Ａ」「Ｂ」「Ｃ」の順で入力されたものとする。その場合、ハードディスク１１４に記録される書き込みデータは、書き込み性能を向上するために、Ｓ２ａの吹き出しに示すように、「Ｂ」「Ａ」「Ｃ」の順に変更される場合がある。このデータ「Ａ」に示すように、ｗｒｉｔｅコマンドを用いた場合には、直ちにハードディスク１１４に書き込まれるとは限られず、キャッシュメモリ１１３内にしばらく蓄積された状態となる場合がある。
【００２６】
また、図２Ｂでは、Ｓ１ｂの吹き出しに示すように、フラッシュ制御を行うために、入力データには、各「Ａ」「Ｂ」「Ｃ」の後に、フラッシュコマンド「ｆ」が付されている。そして、コントローラー１１２は、フラッシュコマンドを受信した場合、キャッシュメモリ１１３内のデータすべてをハードディスク１１４に強制的に書き込む処理を実行する。そのため、ハードディスク１１４に記録される書き込みデータは、フラッシュコマンドに基づいて、Ｓ２ｂの吹き出しに示すように、「Ａ」「Ｂ」「Ｃ」の入力順にハードディスク１１４に記録される。ただし、フラッシュ制御の間は、ハードディスクドライブ１１０は、ＨＤＤコントローラー１０６からデータを受け付けない。そのため、フラッシュ制御の間は、バッファメモリ１０５に蓄積される映像データの量（バッファメモリ占有量）が増加する。
【００２７】
次に、フラッシュコマンドを用いて、ハードディスク１１４に書き込んだデータを保証するためのフラッシュ制御について、図３Ａ、図３Ｂを用いて説明する（適宜、図１参照）。図３Ａは、書き込んだデータが保証される場合の一例を表し、図３Ｂは、書き込んだデータが保証されない場合の一例を表している。
【００２８】
図３Ａでは、Ｓ３ａの吹き出しに示すように、ハードディスクドライブ１１０のＩ／Ｆ１１１に入力される入力データが「Ａ」「ｆ」「Ｍ」「ｆ」「Ｂ」の順であるものとする。ここで、「Ｍ」は、マーカー（誤り訂正符号や誤り検出符号を含んでもよい）であって、「Ａ」の記録を保証するため、「Ａ」の後に書き込まれる。「Ｍ」が正しく書き込まれていれば、「Ａ」が正常であることを保証することができる。そして、ハードディスク１１４に書き込まれるデータは、書き込み時に停電等の障害が無い場合には、Ｓ４ａの吹き出しに示すように、「Ａ」「Ｍ」「Ｂ」の順で書き込まれる。つまり、「Ａ」のデータは、保証できることが分かる。
【００２９】
それに対して、図３Ｂでは、Ｓ３ｂの吹き出しに示すように、ハードディスクドライブ１１０のＩ／Ｆ１１１が入力データの「Ａ」「ｆ」「Ｍ」「ｆ」「Ｂ」を受け付けている時に、入力データ「Ｍ」で停電が発生した場合を表している。そのため、ハードディスク１１４に記録される書き込みデータは、Ｓ４ｂの吹き出しに示すように、「Ａ（イタリック体）」のみとなっている。つまり、停電復帰後の読み出し時に、「Ｍ」が正しく記録されていないことが分かるので、「Ａ（イタリック体）」のデータは、保証できないことが分かる。そして、この「Ａ（イタリック体）」の書き込まれたデータブロックに対して、新しいデータを上書きすることでデータブロックを有効に活用することができる。
【００３０】
次に、フラッシュ制御を実行するタイミングの一例について、図４（ａ）（ｂ）（ｃ）を用いて説明する（適宜、図１参照）。図４（ａ）はフラッシュ制御が管理ブロックの終端で実行される場合を表し、図４（ｂ）はフラッシュ制御のタイミング間隔が図４（ａ）の場合に比べて長い場合を表し、図４（ｃ）はフラッシュ制御が時間によって強制的に実行される場合を表している。
【００３１】
フラッシュ制御を実行するタイミングは、２通りのケース（第１のケース、第２のケース）がある。
第１のケースは、例えば、映像データの記録を確実に保証する単位を示す管理ブロックを１０ＭＢとして、記録された映像データが１０ＭＢを超える時（管理ブロックの終端を超えて次の管理ブロックの始端に移る時）に、制御部１０４が図３Ａに示すようなフラッシュコマンドを用いたフラッシュ制御を実行する場合である。管理ブロックは、カメラ１０それぞれに対して映像データを記録するエリアとして割り当てたハードディスク１１４の記録エリア（不図示）の中に、１つ以上設定される。なお、管理ブロックは、１０ＭＢに限られることはなく、他の容量であっても構わない。管理ブロックに映像データを記録している間に停電が発生した場合、マーカーが無いことを確認することによって、停電復帰後に停電発生時の管理ブロックを無効とすることができる。なお、無効とした管理ブロックの箇所に、新たに映像データを上書きすることにより、その箇所を有効に活用することができる。
【００３２】
第２のケースは、所定の周期（一定間隔の場合を含む）で、時間によって強制的にフラッシュ制御を実行する場合である。例えば、カメラ１０が１秒間に数フレーム以下の映像しか出力しないような場合には、第１のケースと同様の処理をしていたのでは、１つの管理ブロックを映像データで満たすためには非常に長い時間がかかることになる。仮に、停電が発生した場合には、その長時間の映像データが失われてしまう。そこで、制御部１０４は、例えば、３０秒ごとにフラッシュ制御を実行する。なお、所定の周期は３０秒に限られることはなく、他の時間長であっても構わない。
【００３３】
図４（ａ）は第１のケースの場合であり、横軸は、時間を表し、縦軸は、管理ブロックの書き込み位置を表している。破線４０１ａは、管理ブロックの終端を表している。
【００３４】
単位時間当たりの書き込み容量が一定の場合には、図４（ａ）に示すように、書き込み位置は、時間に対してほぼ直線として書き込み位置ライン４０２（実線）で示される。単位時間当たりの書き込み容量が一定という仮定は、後記する理由により問題がない。その理由は、一般的にカメラ１０の画像が急に変化した際には変化に対応する情報量が増加するが、その情報量を減らして一定としても視覚的には違和感がないためである。書き込み位置が管理ブロックの終端（破線４０１ａ）に達すると、制御部１０４はフラッシュ制御を実行し、図４（ａ）では映像データを当該管理ブロックの次の始端（縦軸における横軸との交点）から書いていく。図４（ａ）では、フラッシュ制御は、時間ｔ２，ｔ３，ｔ４，ｔ５で実行される。符号４０４ａによって示される範囲は、フラッシュ制御時刻予測期間（所定範囲）を表し、書き込み位置がこの範囲に到達した場合に、制御部１０４がフラッシュ制御を実行する時刻を予測し、他のフラッシュ制御と連続する（タイミングが重なる）か否かを判定するために設定されている。このフラッシュ制御の判定処理の詳細については、後記する。なお、記録エリアに管理ブロックが複数有る場合には、制御部１０４は、フラッシュ制御を実行した後、次の管理ブロックに映像データを記録していけばよい。
【００３５】
図４（ｂ）は別の第１のケースであり、フラッシュ制御のタイミング間隔が図４（ａ）の場合に比べて長い場合を表している。図４（ｂ）の横軸は、時間を表し、縦軸は、管理ブロックの書き込み位置を表している。破線４０１ｂは、管理ブロックの終端を表している。なお、図４（ｂ）の管理ブロックの大きさ（破線４０１ｂの位置）と、図４（ａ）の管理ブロックの大きさ（破線４０１ａの位置）とは、同じであっても異なっていても構わない。
【００３６】
単位時間当たりの書き込み容量が一定の場合には、図４（ｂ）に示すように、書き込み位置は、時間に対してほぼ直線として書き込み位置ライン４０３（一点鎖線）で示される。書き込み位置が管理ブロックの終端（破線４０１ｂ）に達すると、制御部１０４はフラッシュ制御を実行し、図４（ｂ）では映像データを当該管理ブロックの次の始端（縦軸における横軸との交点）から書いていく。図４（ｂ）では、フラッシュ制御は、時間ｔ３，ｔ５で実行される。符号４０４ｂによって示される範囲は、フラッシュ制御時刻予測期間（所定範囲）を表し、書き込み位置がこの範囲に到達した場合に、制御部１０４がフラッシュ制御を実行する時刻を予測し、他のフラッシュ制御と連続する（タイミングが重なる）か否かを判定するために設定されている。このフラッシュ制御の判定処理の詳細については、後記する。なお、記録エリアに管理ブロックが複数有る場合には、制御部１０４は、フラッシュ制御を実行した後、次の管理ブロックに映像データを記録していけばよい。
【００３７】
図４（ｃ）は第２のケースであり、フラッシュ制御が時間によって強制的に行われる場合を表している。制御部１０４は、図４（ｃ）では所定の周期（一定周期の場合を含む）でフラッシュ制御を実行する。図４（ｃ）では、フラッシュ制御は、時間ｔ２，ｔ３，ｔ４，ｔ５で実行される。なお、符号４０５によって示される範囲は、フラッシュ制御時刻予測期間（所定範囲）を表し、現在時刻がこの範囲に到達した場合に、制御部１０４がフラッシュ制御を実行する時刻を予測し、他のフラッシュ制御と連続する（タイミングが重なる）か否かを判定するために設定されている。このフラッシュ制御の判定処理の詳細については、後記する。
【００３８】
監視用レコーダー１００は、カメラ１０それぞれに対して記録エリア（不図示）を設けて、図４（ａ）に示すフラッシュ制御、図４（ｂ）に示すフラッシュ制御、図４（ｃ）に示すフラッシュ制御をカメラ１０ごとに同時に実行することができる。このような場合、時間ｔ２，ｔ３，ｔ４，ｔ５では、図４（ａ）および図４（ｃ）に示すフラッシュ制御のタイミングが重なって、フラッシュ制御が連続して実行されることになる。また、時間ｔ３，ｔ５では、図４（ａ）、図４（ｂ）および図４（ｃ）に示すフラッシュ制御のタイミングが重なって、フラッシュ制御が連続して実行されることになる。なお、フラッシュ制御が実行されている間は、バッファメモリ１０５には、エンコーダー１０３の出力データが蓄積されるので、バッファメモリ占有量が増加する。つまり、フラッシュ制御の連続時間が長くなるに従って、バッファメモリ１０５のオーバーフローを防ぐために、バッファメモリ１０５のサイズを大きくしなければならない。
【００３９】
例えば、図５（ａ）（ｂ）（ｃ）には、バッファメモリ１０５がオーバーフローとなる場合の一例を表している（適宜、図１参照）。図５（ａ）はキャッシュメモリ１１３に書き込まれる状態を表し、図５（ｂ）はハードディスク１１４への書き込みのタイミングを表し、図５（ｃ）はバッファメモリ１０５の占有量を表している。
【００４０】
図５（ａ）は、キャッシュメモリ１１３に書き込まれる映像データについて、４台のカメラ１０の映像データをカメラ１０別に「ａ」「ｂ」「ｃ」「ｄ」で表している。横軸は、時間を表している。通常は、映像データは、ｗｒｉｔｅコマンド（不図示）を用いてキャッシュメモリ１１３に書き込まれる。そして、記録データを保証するためのフラッシュ制御では、映像データ以外にマーカー「Ｍａ」５１，「Ｍｂ」５２，「Ｍｃ」５３，「Ｍｄ」５４がキャッシュメモリ１１３に書き込まれる。図５（ａ）において、「ｆ」はフラッシュコマンドを表している。なお、記録データを保証するためのフラッシュ制御のタイミングは、図４（ａ）（ｂ）（ｃ）に示したように、その時刻を変更しないものとする。
【００４１】
図５（ｂ）は、ハードディスク１１４への書き込みのタイミングを表している。特に、符号５０３で示されている範囲は、ｗｒｉｔｅコマンド制御期間を表し、符号５０４で示される範囲は、フラッシュコマンド制御期間を表している。なお、１つのフラッシュコマンドによる処理は、キャッシュメモリ１１３内のデータすべてをハードディスク１１４に書き込むため、１つのｗｒｉｔｅコマンドによる処理よりも時間が掛かる。
【００４２】
図５（ｃ）は、縦軸がバッファメモリ占有量を表し、横軸が時間を表している。また、破線５０１は、バッファメモリ１０５の最大可能占有量（バッファメモリ閾値）を表している。すなわち、破線５０１を超えた場合、オーバーフローと判定される。実線５０２は、バッファメモリ占有量曲線を示している。
【００４３】
バッファメモリ占有量曲線５０２の傾向について説明すると、図５（ｂ）に示すフラッシュコマンド制御期間５０４の期間は、ハードディスクドライブ１１０はデータを受け付けないので、バッファメモリ占有量曲線５０２の値は増加し、破線５０１を超えた状態になる。これは、記録データを保証するためのフラッシュ制御のタイミングが複数重なって、フラッシュ制御が連続したためである。また、記録データを保証するためのフラッシュ制御を行う前に、キャッシュメモリ１１３に蓄積されているデータ量が大きいためでもある。なお、フラッシュ制御が連続するとは、フラッシュコマンド処理と次のフラッシュコマンド処理との間に、ｗｒｉｔｅコマンド処理が実行されない状態を意味する。
【００４４】
したがって、記録データを保証するためのフラッシュ制御を実行する際に、キャッシュメモリ１１３内に記憶されているデータ量が小さくなるように、本実施形態では、記録データを保証するためのフラッシュ制御（第１のフラッシュ制御）とは別にオーバーフローを防ぐためのフラッシュ制御（第２のフラッシュ制御）を実行する。ここで、バッファメモリ１０５のオーバーフローを回避する場合の一例について、図６（ａ）（ｂ）（ｃ）を用いて説明する。図６（ａ）はキャッシュメモリ１１３に書き込まれる状態を表し、図６（ｂ）はハードディスク１１４への書き込みのタイミングを表し、図６（ｃ）はバッファメモリ１０５の占有量を表している。なお、図６（ａ）（ｂ）（ｃ）において、図５（ａ）（ｂ）（ｃ）と同じ符号は、同じものを表している。
【００４５】
図６（ａ）は、図５（ａ）と同様に、キャッシュメモリ１１３に書き込まれる映像データについて、４台のカメラ１０の映像データをカメラ１０別に「ａ」「ｂ」「ｃ」「ｄ」で表している。横軸は、時間を表している。図６（ａ）が図５（ａ）と異なる点は、先頭の映像データ「ａ」の後にフラッシュコマンド「ｆ」６５が用いられていることである。
【００４６】
図６（ｂ）は、ハードディスク１１４への書き込みのタイミングを表している。また、符号６０３および符号６０５で示される範囲は、フラッシュコマンド制御期間を表し、符号６０４で示されている範囲は、ｗｒｉｔｅコマンド制御期間を表している。特に、符号６０３で示されている範囲は、フラッシュコマンド「ｆ」６５によって、キャッシュメモリ１１３内のデータすべてがハードディスク１１４に書き込まれる。このフラッシュコマンド「ｆ」６５は、オーバーフローを防ぐためのものである。その効果によって、フラッシュコマンド制御期間６０５の長さは、図５（ｂ）の場合のフラッシュコマンド制御期間５０４に比べて、短くなる。
【００４７】
図６（ｃ）は、縦軸がバッファメモリ占有量を示し、横軸が時間を表している。また、破線５０１は、図５（ｃ）と同様にバッファメモリ１０５の最大可能占有量（バッファメモリ閾値）を表している。すなわち、破線５０１を超えた場合、オーバーフローと判定される。実線６０２は、バッファメモリ占有量曲線を示している。
【００４８】
バッファメモリ占有量曲線６０２の傾向について説明すると、図６（ｂ）に示す符号６０５の期間が短いため、バッファメモリ占有量が破線５０１を超えることはない。つまり、図５（ｃ）に示すバッファメモリ占有量曲線５０２は１つの大きなピークを有していたのに対して、図６（ｃ）に示すバッファメモリ占有量曲線６０２は２つのピークを有し、それらのピークを低くできる。言い換えると、ハードディスクドライブ１１０に記録するデータを一時的に記憶するバッファメモリ１０５のサイズを低減することができる。
【００４９】
次に、本実施形態における、記録データを保証するためのフラッシュ制御（第１のフラッシュ制御）およびオーバーフローを防ぐためのフラッシュ制御（第２のフラッシュ制御）を実行するための処理フロー例について、３つの実施例（第１の実施例、第２の実施例、第３の実施例）を図７，８，９を用いて説明する。
【００５０】
第１の実施例は、前記した第１のケースの処理フロー例である。第２の実施例は、前記した第２のケースの処理フロー例である。第３の実施例は、第１および第２の実施例を混合した処理フロー例である。
【００５１】
（第１の実施例）
図７は、第１の実施例における処理フロー例を表している（適宜、図１、図４（ａ）（ｂ）参照）。
ステップＳ７０１では、制御部１０４は、管理ブロック内の書き込み位置を取得する。具体的には、制御部１０４は、ハードディスク１１４にデータを書き込む場合、アドレスを指定して記録するので、管理ブロック内の書き込み位置を、アドレスから取得することができる。
【００５２】
ステップＳ７０２では、制御部１０４は、書き込み位置が所定範囲内か否かを判定する。具体的には、所定範囲とは、図４（ａ）のフラッシュ制御時刻予測期間４０４ａや図４（ｂ）のフラッシュ制御時刻予測期間４０４ｂのことである。制御部１０４は、書き込み位置のアドレスを用いて、所定範囲内か否かを判定する。
所定範囲内であると判定した場合（ステップＳ７０２でＹｅｓ）、処理はステップＳ７０３へ進み、所定範囲内でないと判定した場合（ステップＳ７０２でＮｏ）、処理はステップＳ７０７へ進む。
【００５３】
ステップＳ７０３では、制御部１０４は、管理ブロックに記録される単位時間当たりの映像データ量を算出する。具体的には、制御部１０４は、例えば、過去にエンコーダー１０３から出力された映像データ量の単位時間当たりの平均値に基づいて、管理ブロックに記録される単位時間当たりの映像データ量を算出する。または、制御部１０４は、過去の図４（ａ）に示す書き込み位置ライン４０２の傾き特性から単位時間当たりの映像データ量を算出しても構わない。
【００５４】
ステップＳ７０４では、制御部１０４は、フラッシュ制御の時刻を予測する。具体的には、制御部１０４は、管理ブロックの終端のアドレスと、現在の書き込み位置のアドレスと、単位時間当たりの映像データ量とを用いて、管理ブロックの終端が書き込み位置となる（第１のフラッシュ制御の）時刻を算出する。
【００５５】
ステップＳ７０５では、制御部１０４は、複数の予測時刻の差分絶対値が閾値以下か否かを判定する。例えば、制御部１０４は、図４（ａ）の場合にフラッシュ制御の予測時刻をｔ３と算出し、図４（ｂ）の場合にフラッシュ制御の予測時刻をｔ３と算出した場合には、双方の差分絶対値が零であるので、閾値以下と判定する。なお、閾値は、フラッシュコマンドが連続して実行される場合のタイミング間隔の最大値に設定されるとよい。
予測時刻の差分絶対値が閾値以下と判定した場合（ステップＳ７０５でＹｅｓ）、処理はステップＳ７０６へ進み、予測時刻の差分絶対値が閾値より大きいと判定した場合（ステップＳ７０５でＮｏ）、処理はステップＳ７０１へ戻る。
【００５６】
ステップＳ７０６では、制御部１０４は、予測時刻の所定時間前にフラッシュ制御を実行する。所定時間前とは、記録データを保証するためのフラッシュ制御（第１のフラッシュ制御）と連続して実行されないように離れた時刻に設定されるとよい。ただし、記録データを保証するためのフラッシュ制御（第１のフラッシュ制御）が実行される時刻より、大きく離れた時刻にフラッシュ制御を実行してしまうと、キャッシュメモリ１１３にデータが蓄積されてしまうので、記録データを保証するためのフラッシュ制御（第１のフラッシュ制御）の時刻にある程度近いことが好ましい。なお、ステップＳ７０６の後、処理はステップＳ７０１へ戻る。
【００５７】
ステップＳ７０７では、制御部１０４は、書き込み位置が管理ブロックの終端か否かを判定する。
管理ブロックの終端であると判定した場合（ステップＳ７０７でＹｅｓ）、処理はステップＳ７０８へ進み、管理ブロックの終端でないと判定した場合（ステップＳ７０７でＮｏ）、処理はステップＳ７０１へ戻る。
【００５８】
ステップＳ７０８では、制御部１０４は、フラッシュ制御（第１のフラッシュ制御）を実行する。そして、処理はステップＳ７０１へ戻る。
【００５９】
（第２の実施例）
図８は、第２の実施例における処理フロー例を表している（適宜、図１、図４（ｃ）参照）。
ステップＳ８０１では、制御部１０４は、現在時刻を取得する。具体的には、制御部１０４は、不図示のタイマーから現在時刻を取得する。
【００６０】
ステップＳ８０２では、制御部１０４は、現在時刻が所定範囲内か否かを判定する。所定範囲とは、図４（ｃ）のフラッシュ制御時刻予測期間４０５のことである。
所定範囲内であると判定した場合（ステップＳ８０２でＹｅｓ）、処理はステップＳ８０３へ進み、所定範囲内でないと判定した場合（ステップＳ８０２でＮｏ）、処理はステップＳ８０５へ進む。
【００６１】
ステップＳ８０３では、制御部１０４は、他の所定の周期の終了時刻の差分絶対値が閾値以下か否かを判定する。具体的には、制御部１０４は、図４（ｃ）の場合にフラッシュ制御の終了時刻がｔ３であった場合に、他の終了時刻との差分絶対値が閾値以下か否かを判定する。なお、閾値は、フラッシュコマンドが連続して実行される場合のタイミング間隔の最大値に設定されるとよい。
終了時刻の差分絶対値が閾値以下と判定した場合（ステップＳ８０３でＹｅｓ）、処理はステップＳ８０４へ進み、終了時刻の差分絶対値が閾値より大きいと判定した場合（ステップＳ８０３でＮｏ）、処理はステップＳ８０１へ戻る。
【００６２】
ステップＳ８０４では、制御部１０４は、終了時刻の所定時間前にフラッシュ制御を実行する。所定時間前とは、記録データを保証するためのフラッシュ制御（第１のフラッシュ制御）と連続して実行されないように離れた時刻に設定されるとよい。ただし、記録データを保証するためのフラッシュ制御（第１のフラッシュ制御）が実行される時刻よりも、大きく離れた時刻にフラッシュ制御を実行してしまうと、キャッシュメモリ１１３にデータが蓄積されてしまうので、記録データを保証するためのフラッシュ制御（第１のフラッシュ制御）の時刻にある程度近いことが好ましい。なお、ステップＳ８０４の後、処理はステップＳ８０１へ戻る。
【００６３】
ステップＳ８０５では、制御部１０４は、所定の周期の終了時刻か否かを判定する。
所定の周期の終了時刻であると判定した場合（ステップＳ８０５でＹｅｓ）、処理はステップＳ８０６へ進み、所定の周期の終了時刻でないと判定した場合（ステップＳ８０５でＮｏ）、処理はステップＳ７０１へ戻る。
【００６４】
ステップＳ８０６では、制御部１０４は、フラッシュ制御（第１のフラッシュ制御）を実行する。そして、処理はステップＳ８０１へ戻る。
【００６５】
（第３の実施例）
図９は、第３の実施例における処理フロー例を表している（適宜、図１、図４（ａ）（ｂ）（ｃ）参照）。なお、第３の実施例は、第１の実施例と第２の実施例とを混合した処理フロー例である。したがって、第３の実施例において、第１の実施例および第２の実施例の符号と同じ符号は、同様の処理を表しているので、説明を省略する。具体的には、ステップＳ７０１〜Ｓ７０８は、第１実施例の処理と同様である。また、ステップＳ８０１，Ｓ８０２，Ｓ８０５，Ｓ８０６は、第２実施例の処理と同様である。
【００６６】
第３の実施例では、ステップＳ９０１では、制御部１０４は、処理対象が管理ブロックによる制御か否かを判定する。
管理ブロックによる制御であると判定した場合（ステップＳ９０１でＹｅｓ）、処理はステップＳ７０１へ進み、管理ブロックによる制御でないと判定した場合（ステップＳ９０１でＮｏ）、処理はステップＳ８０１へ進む。
【００６７】
また、ステップＳ９０２では、制御部１０４は、終了時刻を予測時刻に設定する。この処理は、第１の実施例のステップＳ７０５への入力データを整合させるためのものである。また、図９において、ステップＳ７０６の後、ステップＳ７０５でＮｏの後、ステップＳ７０８の後、ステップＳ８０５でＮｏの後、およびステップＳ８０６の後には、処理はステップＳ９０１へ戻る。
【００６８】
以上説明したように、本発明の監視用レコーダー１００は、少なくとも、カメラ１０の映像信号を符号化して映像データを生成するエンコーダー１０３と、映像データを一時的に記憶するバッファメモリ１０５と、ハードディスクドライブ１１０のハードディスク１１４に映像データを記録する制御をＨＤＤコントローラー１０６を介して実行する制御部１０４とを備える。制御部１０４は、記録データを保証するためのフラッシュ制御（第１のフラッシュ制御）を用いて映像データをハードディスク１１４に記録する。その際、当該フラッシュ制御（第１のフラッシュ制御）が連続してフラッシュ制御期間が長くなると、バッファメモリ１０５がオーバーフローしてしまう。そのオーバーフローを防ぐために、制御部１０は、記録データを保証するためのフラッシュ制御を実行する所定時間前に、バッファメモリ１０５のオーバーフローを防ぐためのフラッシュ制御（第２のフラッシュ制御）を実行する構成を備えている。このような構成を備えることにより、監視用レコーダー１００は、ハードディスクドライブ１１０に記録するデータを一時的に記憶するバッファメモリ１０５のサイズを低減することができる。
【００６９】
なお、本実施形態では、記録エリアは、カメラ１０それぞれに対して割り当てるように記載したが、複数のカメラ１０に対して１つの記録エリアを割り当てても構わない。
【００７０】
なお、本発明は上記した実施形態に限定されるものではなく、様々な変形例が含まれる。例えば、上記した実施形態は、本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも、説明したすべての構成を備えるものに限定されるものではない。また、ある実施形態の構成の一部を他の変形例の構成に置き換えることが可能であり、ある実施形態の構成に他の変形例の構成を加えることも可能である。また、実施形態の構成の一部について、他の構成の追加・削除・置換をすることが可能である。
また、監視用レコーダー１００の各機能等は、それらの一部または全部を、例えば、集積回路で設計する等によりハードウェアで実現してもよい。また、制御部１０４の機能は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することによりソフトウェアで実現してもよい。各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリや、ハードディスク、ＳＳＤ（Solid State Drive）等の記録装置、またはＩＣカード、ＳＤカード、ＤＶＤ（Digital Versatile Disc）等の記録媒体に置くことができる。
また、制御線や情報線は説明上必要と考えられるものを示しており、製品上必ずしもすべての制御線や情報線を示しているとは限らない。実際には、ほとんどすべての構成が相互に接続されていると考えてもよい。
【符号の説明】
【００７１】
１０  カメラ
１００  監視用レコーダー
１０１  Ａ／Ｄ
１０２  ＭＩＸ
１０３  エンコーダー
１０４  制御部
１０５  バッファメモリ
１０６  ＨＤＤコントローラー
１１０  ハードディスクドライブ
１１１  Ｉ／Ｆ
１１２  コントローラー
１１３  キャッシュメモリ
１１４  ハードディスク
４０１ａ，４０１ｂ  管理ブロックの終端
４０２，４０３  書き込み位置ライン
４０４ａ，４０４ｂ，４０５  フラッシュ制御時刻予測期間
５０１  バッファメモリ閾値
５０２，６０２  バッファメモリ占有量曲線
５０４，６０３，６０５  フラッシュコマンド制御期間
【図１】
2015114887.tif 000003
【図２Ａ】
2015114887.tif 000004
【図２Ｂ】
2015114887.tif 000005
【図３Ａ】
2015114887.tif 000006
【図３Ｂ】
2015114887.tif 000007
【図４】
2015114887.tif 000008
【図５】
2015114887.tif 000009
【図６】
2015114887.tif 000010
【図７】
2015114887.tif 000011
【図８】
2015114887.tif 000012
【図９】
2015114887.tif 000013