【実施例1】
【0019】
図1は実施例1に係る映像記録装置を含む監視システムの構成図である。
図1の監視システムは、NDR(ネットワークデジタルレコーダ)等の映像記録装置1と、カメラ2A,2B,…,2mと、PC(PersonalComputer)3−1〜3−n等の表示操作装置がネットワーク20を介して接続されている。
m台あるカメラ2A〜2mは、映像データをネットワーク20に配信できるネットワーク型カメラである。
PC3−1〜3−nは、映像記録装置1と、カメラ2A〜2mの設定等の制御と、映像記録装置1の録画データの再生等を行う。
【0020】
図2は映像記録装置1のブロック図である。
映像記録装置1は、内部バス11に、CPU(Central Processing Unit)部10と、メモリ部12と、ネットワークインターフェイス(IF)13と、記録デバイスIF14が接続している。
メモリ部12は、メインメモリと、オペレーティングシステム(OS)等を保持する補助記憶装置(フラッシュメモリ等)とを有する。
【0021】
記録デバイスIF14には記録デバイス15が接続されている。記録デバイス15はHDD(Hard Disk Drive)やSSD(Solid State Drive)等であり、OSからブロックデバイスとして扱われる。
記録デバイス15の中に、論理的な領域を、記録対象とするカメラの分だけ設ける。このカメラ毎の論理的な領域をカメラ領域16と総称する。
図2ではカメラ領域16は、記録するカメラの数に対応してm個のカメラ領域16−1〜16−mが存在する。
カメラ領域16は、循環記録を行う。カメラ領域内にアドレスを振り、アドレスの先頭から映像データを書き始め、書き込み先アドレスが末尾に達すると、先頭から順に映像データを上書き記憶していく。
【0022】
図5は、記録デバイス15のファイルシステムを説明する図である。
図5の記録デバイス15には、循環型ファイルシステムが構築されている。循環型ファイルシステムは、主に配置情報領域40と、映像データ領域42の2領域で構成されている。なお、
図5と
図3との違いは、目次情報領域を、独立した領域から映像データ領域内に収めるようにした点である。
【0023】
映像データ領域42は、MBBlockの集合で構成され、各カメラに対応する領域へ分割される。映像データ領域42内には、カメラA用映像データ領域42−1、カメラB用映像データ領域42−2、カメラC用映像データ領域42−3、空き領域42−4が存在する。カメラ領域の容量は、各カメラに割り当てたMBBlockの数にMBBlockサイズを乗じたものであり、便宜的にカMBBlockの数をカメラ領域の容量と同義に扱う。
【0024】
配置情報領域40は、映像データ領域42内の各映像MBblockの記録位置の情報を保持する。複数の記録デバイスを横断して或いは分散させて記録できるよう、どの記録デバイスの何番目のMBBlockをどのカメラ領域の何番目のMBBlcokへ割り当てたかを特定できる情報を保持しなければならない。前者をデバイス内MBBlock番号、後者をカメラ領域内MBBlock番号と呼び区別する。
本例の循環型ファイルシステムは、初期化時に、記録デバイス15内を、規定のMBBlockサイズ単位で分割し、先頭を0として昇順にデバイス内MBBlock番号を付与する。同時に使用されうる複数の記録デバイスには数ビットのデバイス番号を付与し、固有番号と対応付けて記憶する。
各カメラ領域においても、カメラ領域内で使用する順序を示す番号として、カメラ領域内MBBlock番号が付与される。カメラ領域内MBBlock番号は、先頭番号は0、末尾の番号は「カメラ領域容量Block数」−1である。映像データの記録時には、カメラ領域内MBBlock番号の順で記録される。
【0025】
不良セクタの存在に無関係に等分割し、先頭アドレスから順に番号付けした場合、デバイス内MBBlock番号は、先頭アドレスと分割サイズ、分割数の情報があれば生成できる。なお、不良セクタは、記録デバイス15自体のファームウェアの管理によって代替セクターに取って代わられるほか、循環型ファイルシステムによってそれを含む映像MBBlockを使用禁止にすることでも避けられる。
カメラ領域内MBBlock番号も単純に昇順に付与した場合、カメラ領域内MBBlock番号はデバイス内MBBlock番号とのオフセットの情報があれば生成できる。
あるいは、デバイス内MBBlock番号(デバイス番号を含む)とカメラ領域内MBBlock番号との対の全てをテーブルとして保持してもよい。ある特別の値のカメラ領域内MBBlock番号は、対応するデバイス内MBBlock番号が未使用であることを示すために使用されうる。
【0026】
映像MBblock44は、映像データ領域42を構成する単位であり、1MBまたは1MBの2の倍数の固定長のサイズを有し、符号化レートにも依るが約150フレーム程度の映像データを格納する。格納はフレーム単位で行い、1フレームの映像データが複数の映像MBblock44に跨ることはない。この単位をメガバイトまで大型化したことで、複数のカメラ映像の同時記録や読出しを行う際に、単位内のセクタを連続的に読み出せシーク回数が減ることで、パフォーマンス(同時記録数、寿命等)が向上する。仮にPackというサブブロック構造を有しないとしても、映像MBblock44の末尾には、1フレームのサイズに満たないような余りが生じうる。
本例では、カメラ領域内のMBBlockを、カメラ領域内MBBlock番号順に、先頭から使用していき、末尾に達した際、また先頭からMBBlockを使用することで循環書き込みが実現される。
ここで、通算MBBlock番号という概念を導入する。これはカメラ領域内の通算のMBBLock番号であり、カメラ領域が作成されてから、何番目に書き込まれたMBBLockかの番号を示し、格納先のMBBlockの更新等に影響されない。
【0027】
図6は、記録デバイス15の目次情報43と映像MBblock34との関係を説明する図である。
なお、
図6と
図4との違いは、映像MBblock44の末尾に、目次領域を設けた事が異なる。
【0028】
目次情報43は、映像MBblock44の目次となる情報であり、1つの映像MBblock44に対し1つの目次情報43が存在する。目次情報43内には、先頭フレーム番号431、フラグ領域432、先頭フレーム時刻433、Pack開始アドレス434−1〜434−Q、Pack内フレーム数435−1〜435−Qで構成する。Qは映像MBblock当たりのPack(後述)の最大数であり、この例では10とする。
先頭フレーム番号431は、ペアとなる映像MBblock44の先頭映像データのフレーム番号(通算フレーム番号)を示す。この通算フレーム番号は、映像データ領域42を作成した時を0とした単調増加の値である。
【0029】
フラグ領域432は、状態を示すフラグを記憶する。状態は、ペアとなる映像MBblockが存在するか、目次情報がダミー値なのか、を示す。
先頭フレーム時刻433は、ペアとなる映像MBblock44の先頭映像データの映像時刻を示す。
Pack開始アドレス434とPack内フレーム数435は、1Byte(Octet)のサイズを有し、交互に配置され、映像MBblock内のPACK先頭の相対位置と、フレーム数をそれぞれ示す。映像MBblock内のPACKのアドレスと、フレーム数を示す。Packのバイト数は、注目PACKのアドレスと次PACKのアドレスの差分で求まる。
【0030】
一方、映像MBblock44は、MBblockヘッダ441と、複数のフレームデータ442と、Pack443−1〜443−5で構成する。
MBblockヘッダ441は、目次情報43と同じ内容を有する当該映像MBblock目次情報43−bと、通算MBBlock番号とを保持する。
【0031】
フレームデータ442は、録画映像データの1単位であり、MBblockヘッダ441に続けて、符号化順のまま詰めて配置される。MBblock44内は10程度の領域にサブブロック化する。このサブブロックをPack443と呼称する。サブブロック化は映像データ読み出し時に、特にランダムアクセスに対して有効に働く。Pack443の境界は、できるだけGOV境界(IピクチャやIDRフレーム)と一致するように選ぶこともできる。再生アプリによる制御の容易性を考慮すると、Packは、単純に一定のフレーム数或いは時間の基準で区切られうる。その場合、映像MBblock44は、映像データで十分埋められないままPack数の上限に達し、その末部に大きな未使用領域が残されうる。
なおPack443の境界は、Pack開始アドレス434が8ビットであるがために、映像MBblockのサイズの1/256の単位でのみ選ぶことができ、また当然(物理的な)セクタサイズの単位の制約も受けるため、実際のPack443の末尾には図示しない小さな未使用領域が存在する場合がある。
【0032】
本例の特徴として、映像MBblock44内の後端にある目次領域443−5は、末尾目次情報45を格納する。
目次領域443−5は、目次情報43においてはPackの一種として扱われ、対応するPack開始アドレス434−5が保持されている。対応するPack内フレーム数435が“0”の場合は、Packが目次領域であることを示している。
【0033】
MBblock内目次領域45はその内部に、複数個の映像MBblock44に対応する複数の目次情報43を記録順に連続的に配置する。
先頭に位置する最古目次情報43−cは、過去映像MBblockの目次情報であり、そのMBblock内目次領域45に格納されるものとしては最も古い。末尾に位置する最新目次情報43−dは、MBblock内目次領域45に格納されるものの中では最新の目次情報である。
【0034】
本例では、最新目次情報43−dは、その映像MBblock44の作成時に最新のMBblock(つまりその映像MBblock44自体)の目次情報とし、最古目次情報43−cは、MBblock内目次領域45に格納できる範囲で最も古い目次情報とする。このとき、MBblock内目次領域45のサイズを1個の目次情報のサイズ(32Byte)で除算した数が、そのMBblock内目次領域45に格納できる目次情報43の個数を表す。
また、目次情報43−dは目次情報43−bと同値となる。そのため、映像データの読み出し時、目次情報43−bと43−dが同値でなければ、該映像Block44は途中までしか書き込まれなかった異常な状態であると判定できる。
【0035】
なお、MBblock内目次領域45の最後尾には、図示しない、32Byteに満たない領域が残されうる。
また、目次領域443−5は、全てのMBblock内目次領域45にそれぞれ設ける必要は無く、間欠的に設けてもよい。目次領域443−5には数千から数万個分の映像MBblock44の目次情報を格納でき、間欠的に設けても十分冗長性を確保できる。結果的に、従来の目次情報領域31に相当する情報が、分散的かつ冗長的に記録されたことになる。
【0036】
図7は、実施例1の映像記録装置1の最新映像探索を説明する図である。本例の映像記録装置は、起動時または再起動時に、記録デバイス15に記憶されている各カメラ領域から最新MBblockを探索し、従来の目次情報領域31に相当する目次情報をメモリ部12内で合成する。これにより、カメラ領域内のどこにいつの映像データがあるか検索可能としている。
最新MBblockの探索する方法は、まず、カメラ毎の映像領域42−aを、例えば、11等分してサンプリングポイント51−t0〜51−t10を決定する。サンプリングポイント51は、映像MBblock44の先頭を指し示すよう整列される。
記録デバイス15からサンプリングポイント51に基づいて11個の映像MBblock44にアクセスし、ヘッダ441内の当該MBblock目次情報43−bを読み出す。
【0037】
その結果、例えば、t2の目次情報のフレーム番号が最大だったとする。その場合、t2〜t5の区間で二分探索を行い、フレーム番号最大(最新MBblock)を探索する。
t2(最大)とt3(最少)の間で二分探索を行わないのは、t3のブロックが書き換わっていなく、t3〜t4の区間にフレーム番号最大がある場合を疑うからである。t2〜t4の区間での二分探索では、初回がt3になり、t3を疑う意味がない。このため、t2〜t5の区間で二分探索を行う。
【0038】
図8は、実施例1の映像記録装置1の目次情報合成を説明する図である。
最新MBblockの特定後、ターン1が実行される。バーで示したアドレス空間42−aは、カメラ領域42のリング状の記録構造を、特定された最新映像MBblockの位置で切り開いたもので、左端がおおよそ最古の映像、右端がおおよそ最新の映像に対応する。
【0039】
ターン1では、特定された最新映像MBblock44−1を、記録デバイス15のカメラ領域42−aから読み出す。最新映像MBblock44−1は、MBblock内目次領域45−1(以下、単に目次領域と呼ぶ)を含んでいる。
メモリ部12に設けられる合成目次領域6に目次領域45−1の目次情報を書き込み、読み出し済み目次領域61−1とする。
【0040】
次に、目次領域61−1の目次情報を用いて、次ターンに読み出す映像MBblockを選択する。目次領域61−1内の各目次情報からは、それぞれ、ペアとなる映像MBblockに含まれる目次領域の大きさと目次領域先頭目次情報451の古さが求まる。比較していき、最も古い目次情報451をもつ映像MBblockを、次ターンで読み出す映像MBblockとする。
【0041】
ターン2では、まず、前ターンで選択した映像MBblockを読み出す。読み出した映像MBblock44−2に含まれる目次領域45−2から目次領域61−2を取得する。そして、メモリ上合成目次領域6に目次領域61−2を書き込むことで、目次情報を合成する。
この動作を最古に達するまで繰り返す。
すなわち、最新映像MBblockの目次領域から過去方向に遡りながら、メモリ上合成目次領域6に目次情報を書き込むことにより、カメラ領域分の目次情報を合成できる。
【0042】
図9は、実施例1の映像記録装置1における起動処理の高速化を説明する図である。
目次優先MBblock44−bは、ヘッダ441と映像Pack443−bと目次領域で構成されている。通常のMBblock44では、映像Pack443を10程度格納した残りに目次領域を配置するが、目次優先MBblock44−bでは、目次情報を主に格納する事を目的に、映像Pack443を1個とし、残りの領域を目次領域とする。なお44−bは、映像Pack443なしで全てを目次領域としてもよい。
【0043】
この特別な目次優先MBblock44−bは、カメラ領域42−b内に規定の位置に配置される。例えば、映像の録画(記録)時、カメラ領域42−bに等間隔に設けられるポイント52−P1〜52−P6に、目次優先MBblock44−bは配置される。この間隔は、1つの目次優先MBblock44−bが含むことができる目次情報43の数に依存する。例として、ポイント52−P6の目次優先MBblock44−bの目次領域内の最古の目次情報が、ポイント52−P5となるのが好ましい。仮に目次優先MBblock44−bが28672個の目次情報を常に含む場合、ポイント52の間隔も28672(MBblock44の28672個分)となる。
【0044】
このように、目次優先MBblock44−bは、カメラ領域42−bに必要最小限の個数で書き込まれる。これにより、目次情報合成時の記録デバイス15へのアクセス回数が減り、高速化が図れる。もし、目次優先MBblock44−bのいずれかが破損していた場合、
図8で説明した、目次領域443−5を含んだ通常の映像MBblock44を辿っていく方法に切り替えて、目次の合成を継続できる。
【0045】
本実施例1の映像記録装置は、終了処理を必要とせず、起動時の所要時間を一定とする、改良型循環型ファイルシステムを実現することができる。
【実施例2】
【0046】
本実施例2の映像記録装置は、各カメラ領域における目次優先MBBlockの配置間隔等の管理情報を、明示的に備えた点などで実施例1と異なる。
本実施例2は、概略的に述べると、各カメラ領域の管理情報として少なくとも、容量変更時点での最古の映像データを格納したMBBLock番号と、目次優先MBBlockの配置間隔と、の2つの値を持つ。上記2値は、カメラ領域の「新規作成」or「容量サイズ変更」を行った際に、算出し格納する。
また、録画アプリ稼働中の映像記録時に、上記2値を用いて「目次優先MBBlock」の格納箇所かを判定する。該当箇所であれば、目次優先MBBlockを格納する。
その後、録画或いは再生アプリ起動時には、各カメラ領域毎に、上記2値を用いて目次優先MBBLockを読み出して、カメラ領域の目次領域を合成する。これにより処理の単純化と、記録デバイスの読み出し回数の低減により高速化を、実現する。
【0047】
[目次優先MBBlockの配置間隔の算出方法]
本例で用いるカメラ領域毎の管理情報の構造体を表1に示す。管理情報は、記録デバイス15の所定の場所に保持され、例えば、従来の目次情報領域31のような独立した領域を設けてもよく、配置情報40内に含めてもよく、空き領域42−4内の未使用の映像MBBlockに格納してもよい。
【表1】
【0048】
本例では、目次優先MBBlockは、任意のカメラ領域内に一定間隔で配置し、その位置は記録が循環しても不変とする。カメラ領域内の目次優先MBBlockの配置の基点は、以下の規則で決定する。
カメラ領域のサイズ変更が行われてない時は 0,
カメラ領域のサイズ変更が行われている時は、
カメラ領域のサイズ変更直後の、最古MBBlockの「通算MBBlock番号」とする。
【0049】
目次優先MBBlockの配置の間隔(”Interval_IndexMBBlock”)は、カメラ領域の容量確保時またはカメラの容量変更時に算出し、カメラ領域の管理領域に格納する。具体的には、表1の4項目以下の式を用いて、カメラ領域の容量(NumOf_MBBlocks)とMBBlockのバイトサイズ(MBBlock_Size)と目次情報のバイトサイズ(Index_Size)から算出される。ただし最小値は4とする。
表1中のtmp_IndexMBBlocksの定義は、サンプリング点を、目次優先MBBlock内の最古の目次情報が、2つ前の目次優先MBBlockと重なる間隔とすることを意図している。2つ前の目次優先MBBlockと重ねる理由は、目次優先MBlcokが1つ破損していても、前又は後の目次優先MBBlockから、目次情報を補間できるようにするためである。
【0050】
CPU10により実行される録画アプリは、映像データの格納時、以下の式で、記録先が目次優先MBBlockであるか否かを判定する。ただし記号「%」は剰余を示す。
判定値=((現MBBlockの通算MBBlock番号 - 基点)% NumOf_MBBlock)%(Interval_IndexMBBlock)
判定値が0の時は、目次優先MBBlockとする。
判定値が0以外の時は、映像データMBBLockとする。
【0051】
[録画アプリの起動時の処理]
録画アプリの起動時あるいは起動前に、録画アプリ自身或いはOSによって、メモリ部12上に、表1の構造体12Aと、カメラ領域の目次領域12Bと、カメラ領域の目次領域の個々の目次情報が読み込み済みかを示すフラグ配列12Cとが、確保される。
その後、実施例1におけるターンに相当する以下の複数の処理を実行する。
【0052】
[処理1:起動時サンプリング]
起動時には、基点から一定間隔でMBBlockを読み出す。この処理を起動時サンプリングと呼ぶ。起動時サンプリングの開始のカメラ領域内MBBlock番号は、サンプリング開始点と呼ばれ、以下の式で決定される。
サンプリング開始点=「基点」%NumOf_MBBlock基点が0であれば、サンプリング開始点も0である。
【0053】
サンプリングは、iを初期値が0のループ変数としたときに、((Interval_IndexMBBlock)×i < カメラ領域容量MBBlock数)を満たす間、行われる。
iの時にサンプリングで読み出すカメラ領域内MBBlock番号を、「サンプリング点i」と呼び、以下の式で定まる。
サンプリング点i = (サンプリング開始点 + (Interval_IndexMBBlock)×i)% NumOf_MBBlock.
配置情報40を参照することで、カメラ領域内MBBlock番号は、適宜デバイス内MBBlock番号やLBA(論理ブロックアドレス)等に変換され、MBBlockへのアクセスが可能になる。サンプリング点のMBBlockが全て空(無効)の時は、該カメラ領域は未書き込みと判断する。
【0054】
録画アプリを実行するCPU10は、MBBlockを読み出す都度、MBBlock末尾の目次領域の目次情報を検査し、条件を満たせば、カメラ領域の目次領域12Bに格納する。検査は下記の規則により行う。
【0055】
定義
(B):読み出したMBBlock.
(Bi):(B)末尾の目次領域内の注目する目次情報.
(Ci): 目次情報(Bi)に対応する位置の、「カメラ領域の目次領域」内の目次情報.
(fi):「カメラ領域のフラグ配列」の(Ci)に対応するフラグ値.
(B_通算MBBlock番号):(B)の通算MBBlock番号. 読み出した(B)のヘッダ領域に格納されている.
(Bi_通算MBBlock番号):(Bi)が指し示す通算MBBlock.
tmp_Bi = (Bi)の格納位置が、(B)の何個前かの値. ただし(B)の目次領域内の末尾は、(B)の目次情報である.
(Bi_通算MBBlock番号) = (B_通算MBBlock番号) - tmp_Bi.
【0056】
規則:下記2つの条件を両方満たすとき、(Bi)を(Ci)の位置に格納する。その際には、(fi)を1とする。
[基点] <= (Bi_通算MBBlock番号),
((fi)==0)または((Ci)の通算フレーム番号<(Bi)の通算フレーム番号).
【0057】
これにより、各サンプリング点iは、記録時の目次優先MBBlockをちょうど指し示し、それらを読み出すことで、サンプリング点間の目次情報は取得できる。ただし、どこが真に最新なのかはまだわからない。
【0058】
[処理2:最新MBBlock探索のための二分探索]
処理2では、実施例1と同様にサンプリング点での最新と、その3つ後ろのサンプリング点間で、最新MBBlockを二分探索する。ただし、この探索の間も、MBBlockの読み出し時に、MBBlock末尾の目次領域を、カメラ領域の目次情報に格納(上書き更新)する。
【0059】
[処理3:フラグ配列を最新から最古の方向で探索]
フラグ配列を走査し、未読込の箇所を発見した際に、該当箇所のMBBlockを記録デバイスから読みだし、MBBlock末尾の末尾目次情報45(もしあれば)或いは該MBlock目次情報43−bを、カメラ領域の目次領域の目次情報へと格納する。
【0060】
本発明の実施形態である映像記録装置は、初期サンプリングで読み出す MBBlockを目次優先MBBlockとなるようにし、初期サンプリングだけで目次情報の読み出しが終わり、後の処理はメモリ上で行うことができる、記録デバイスへのアクセス回数を削減し、電源断後の電源再投入から記録開始までの時間を更に短縮することができる。
【実施例3】
【0061】
先の実施例1や2において、記録中に電源を切断すると、記録アプリ等によるバッファ、あるいはOSのバッファは遅延書込みによりメモリ上に保持されていた数秒分の映像データは、記録デバイスに書き出されることなく消失する。
本実施例3の映像記録装置は、実施例1や2に、正規の終了処理自体を高速化する構成を追加したものである。
【0062】
まず、正規の終了処理に時間がかかる理由を説明する。
図12に、POSIX系OSにおける通常の終了処理のフローを示す。
従来の記録装置は、動作しているリアルタイムOSが動作させているプロセス(アプリケーション)をひとつずつ終了させて、全てのアプリケーションが終了した後に電源を切断する。この全てのアプリケーションを終了させる処理が時間を掛けている要因となっている。記録媒体にデータを書き込むためのアプリケーションとログを書き込むアプリケーションもこの終了プロセスの中の一つである。
【0063】
従来の記録装置で終了処理中に電源断を行ってしまうと記録媒体の書き込み及びログ書込みのアプリケーションが終了する前に電源が落ちる場合があるため、再起動後には直前のデータが記録媒体に書き込まれていない為、記録データがないとか途中までしかデータを書き込んでいないので、データとの整合性が取れず、データが破損してしまう等の問題が発生する。
記録装置においては記録媒体に書き込みを行うこととログを書き込むことが最重要であり、他のアプリケーションは基本的に途中で止まっても再起動を行えば最初から動き始めるので問題ない。
【0064】
図10に、本実施例3の映像記録装置の構成図を示す。本例の映像記録装置は、記録媒体にデータを書き込む等の主用で動作しているメイン基板101、メイン基板101へ電源供給する電源部102、メイン基板101への電源供給を制御する電源制御基板103、メイン基板101を介して電源供給されるネットワーク制御回路104および記録デバイス105、電源SW106を備える。メイン基板101と電源制御基板103との間は、シリアル通信路C等で接続される。
【0065】
メイン基板101は、多機能を実現するためにデータの処理部にCPUが採用され、各データの通信はSCH(System Control Hub)を用いてやり取りされる。CPUは、ネットワークを介して撮像装置から送出された画像データ(デジタルデータ)を読み取り、記録装置に格納する。さらにCPUは所定のタイミングで伝送媒体によりデータの送受信を制御するネットワーク制御回路104に転送する。ネットワーク制御回路104は、フォーマッティングされた圧縮画像データをネットワークの通信プロトコルに対応したフォーマットに再構成したデータに変換してネットワークに送出する。
【0066】
電源部102は、供給される交流電力を、低電圧直流に変換するスイッチング電源等である。交流電力の供給を受けている間、常に電源制御基板へ電源供給する。
【0067】
電源制御基板103は、マイコンや表示器、スイッチ類等を備えた基板であり、外部(使用者)からの命令を受けて、メイン基板101に終了処理命令信号を送る他、メイン基板101からの終了処理信号或いは電源制御基板103自身の判断により、メイン基板101への電源供給を切断する。また、メイン基板101からの終了処理信号やエラー通知信号等を受け取ると、外部に通知(表示)を行う。
外部に通知する信号は、メイン基板101から発信(表示)することも可能であるが、スタンバイ状態(電源供給はされているが記録装置として機能しておらず、最低限の電気だけで動作している状態)の場合は、任意の通知をすることはできない。そこで、電源制御基板103に常に電気が供給されているようにし、代わりにメイン基板101への電源供給は完全に遮断する。電源制御基板103の消費電力は、電源制御基板103のスタンバイ状態のそれとほとんど変わらず省電力であるため、実運用上では問題にはならない。
メイン基板101に供給する電源を切断するには、マイクロプロセッサからの制御が必要だが、電源を切断するには電力が微小であるため、微小信号を受け取って電気経路を機械的に開閉するスイッチ(ラッチングリレー)を用いる場合と、FET(Field Effect Transistor)を用いて切断する方法が適用できる。終了処理信号を受取って直ちに遮断してもよいし、タイマーで所定時間遅らせてもよい。
【0068】
ネットワーク制御部104は、外部から送られてくるEthernet(商標)に準拠したデジタルデータを受信しメイン制御に送る他、メイン基板から送られてくるデジタルデータを外部へ送信する役目を行う。
【0069】
記録デバイス105は、ネットワークを介して送られてきた画像データを記憶する他、メイン基板101から画像データを要求された場合、自身からデータを抽出しメイン基板101に送信する。本装置に搭載する記録媒体は、電子記録媒体である。
【0070】
電源SW106は、映像記録装置に起動又は終了を通知するスイッチである。一般に記録装置の電源SWは物理的に電気を切断するものではなく、電源終了の信号を外部からの行動によってメイン基板101に通知することで、メイン基板101のリアルタイムOSが動作中のアプリケーションおよびそれ自身を終了させる。そのとき発せられるシステムコールはBIOSに引き継がれ、メイン基板101をスタンバイ状態(次に電源SWが押下されて起動の信号を受理するまで待機)に移行させる。
【0071】
図11に、本実施例3の映像記録装置の終了処理のフローを示す。構成図を示す。
本例の終了処理においても、S16として、ランレベル 0に対応するスクリプト(rcスクリプト)が実行されるが、スクリプトの内容は、システム時刻のハードウェア時計への書き込み、記録デバイスのアンマウント、及び、ロギングプロセス(syslogd等)を(正常)終了させることのみである。ここで映像の記録デバイス105と、ログファイルが書き込まれるディスク(パーティション)が別々であれば、アンマウントとログ書込みに順序は無く、同時に行うこともできる。なおアンマウントには通常、カーネルによるキャッシュをディスクに書き出させるsync処理を含む。
【0072】
その後、S17として、シリアルデバイス(tty)等を通じて、電源制御基板103へ終了処理完了通知を行う。これは数バイト程度の簡易な電文でよい。なおこの終了処理完了通知を行うコマンドを、rcスクリプトに記載してもよい。
S18において、終了処理完了通知が電源制御基板103で受信されれば、S19として、メイン基板101へ供給している電源が遮断される。S17の終了処理完了通知を行うコマンドの後ろに、rcスクリプトの続きがあったとしても、強制的に電源OFFされるため、それらは実行されないだろう。
組込みOSの分野では、システム(OS)のディスク(パーティション)が、リードオンリーでマウントされることが多い。その場合、システムディスクをアンマウントせずに電源断されても、悪影響はない。
【0073】
正常に機器を短時間で終了させることができるので、メンテナンスや保守等の作業時間が減るため作業費用が削減できることと機器としての信頼性及びシステムとしての品質も向上も確保できる。