JP4401132B2 - 循環記録装置 - Google Patents

循環記録装置 Download PDF

Info

Publication number
JP4401132B2
JP4401132B2 JP2003327415A JP2003327415A JP4401132B2 JP 4401132 B2 JP4401132 B2 JP 4401132B2 JP 2003327415 A JP2003327415 A JP 2003327415A JP 2003327415 A JP2003327415 A JP 2003327415A JP 4401132 B2 JP4401132 B2 JP 4401132B2
Authority
JP
Japan
Prior art keywords
entry
recording area
memory
block
pointer
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2003327415A
Other languages
English (en)
Other versions
JP2005092679A (ja
Inventor
智巳 高田
誠一 平井
博唯 上田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Kokusai Electric Inc
Original Assignee
Hitachi Kokusai Electric Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Kokusai Electric Inc filed Critical Hitachi Kokusai Electric Inc
Priority to JP2003327415A priority Critical patent/JP4401132B2/ja
Priority to US10/942,887 priority patent/US20050076176A1/en
Priority to KR1020040074361A priority patent/KR100653826B1/ko
Publication of JP2005092679A publication Critical patent/JP2005092679A/ja
Application granted granted Critical
Publication of JP4401132B2 publication Critical patent/JP4401132B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B27/00Editing; Indexing; Addressing; Timing or synchronising; Monitoring; Measuring tape travel
    • G11B27/10Indexing; Addressing; Timing or synchronising; Measuring tape travel
    • G11B27/102Programmed access in sequence to addressed parts of tracks of operating record carriers
    • G11B27/105Programmed access in sequence to addressed parts of tracks of operating record carriers of operating discs
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/18Closed-circuit television [CCTV] systems, i.e. systems in which the video signal is not broadcast

Landscapes

  • Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Multimedia (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本発明は、複数のメモリ領域を循環的に使用してデータを記録する循環記録装置に関し、特に、時系列に発生する複数系列のデータを蓄積して要求元に配信するデータ蓄積配信システム用のデータ記録装置に適した循環記録装置に関する。
例えば、遠隔監視用の画像配信システムでは、Webカメラ等の撮像装置で撮影された複数サイトからの画像データを時系列的に受信しておき、これらの画像データを磁気ディスク、光ディスク、半導体ディスク等の大容量の記憶装置(記録装置)に蓄積すると共に、ネットワークを介して画像データ要求元となるモニタに配信することによって、各サイトの状況を遠隔地にあるモニタ画面で確認できるようにしている。尚、ここでいう画像データは、各サイトで集音した音声情報を含み得る。
この場合、画像データの記録装置には容量的な制約があるため、此の種のシステムでは、データ蓄積用として記録媒体上に確保されたメモリ領域を循環的にアクセスし、時系列的に最も旧い画像データを最新の画像データで順次に書き換える循環記録方式を採用して、過去分の所定量の画像データを保存、再生できるようにしている。
複数サイトの画像データを記録する場合、記録装置にサイト別(チャネル別)の複数の循環記録領域を定義しておき、チャネル別循環記録方式による画像データの保存、再生が行われる。このような循環記録方式を採用した記録装置(循環記録装置)におけるメモリのアドレス管理に関しては、例えば、特開平11−232842号公報の第3−5頁、第1図−第12図(特許文献1)に記載されている。
特開平11−232842号公報
然るに、循環記録方式を採用した従来の記録装置では、各循環記録領域が同一記録媒体上のメモリ領域で構成され、且つ、運用中の循環記録領域の容量変更については考慮されていない。
本発明の目的は、過去分の所定量の記録データを保存したまま、循環記録領域の容量を動的に変更可能な循環記録装置を提供することにある。
本発明の他の目的は、1つの循環記録領域を複数の記録媒体に分散したメモリ領域で構成できる循環記録装置を提供することにある。
上記目的を達成するため、本発明は、記録媒体上に循環記録領域用となる所定サイズの複数のメモリブロックを用意し、記録媒体毎に各メモリブロックの使用状態を管理しておき、各循環記録領域は、空き状態にある必要個数のメモリブロックの集合とし、これらのメモリブロックを循環的に使用することによってデータの蓄積を行う。
更に詳述すると、本発明の循環記録装置は、循環記録領域を構成するメモリブロック数と対応した複数のテーブルエントリからなり、各エントリが、メモリブロックをアクセスするためのポインタ情報と、該メモリブロックに蓄積されたデータの目次情報とを含む循環記録領域管理テーブルを有し、上記循環記録領域管理テーブルに従って、循環記録領域への循環的なデータブロックの書き込みと、特定メモリブロックからのデータの読出しを行うことを特徴とする。
本発明による循環記録装置の他の特徴は、記録媒体毎に、循環記録領域用のメモリブロックの識別情報および使用状態を示すメモリブロック状態管理テーブルを有し、上記メモリブロック状態管理テーブルを参照して、循環記録領域の新規作成要求に応じた新たな循環記録領域管理テーブルの生成と、生成済み循環記録領域のメモリ容量の変更要求に応じた既存の循環記録領域管理テーブルの再編成と、上記循環記録領域管理テーブルの生成および再編成に伴うメモリブロックの使用状態の変更を行うことにある。
本発明による循環記録装置の更に他の特徴は、記録媒体毎に各メモリブロックの識別情報および使用状態を示すメモリブロック状態管理テーブルと、それぞれが循環記録領域のメモリブロック数と対応した複数のテーブルエントリからなり、各エントリが、メモリブロックをアクセスするためのポインタ情報と、該メモリブロックに蓄積されたデータの目次情報とを示すためのフィールドを有する複数の循環記録領域管理テーブルとを有し、循環記録領域の新規作成要求または生成済み循環記録領域のメモリ容量の拡張要求があった時、上記メモリブロック状態管理テーブルを参照し、所属する記憶媒体に無関係に空き状態にある必要個数のメモリブロックを確保し、これらのメモリブロックと対応した複数のテーブルエントリを構成要素として、新たな循環記録領域管理テーブルの生成または既存の循環記録領域管理テーブルの再編成を行うことにある。
本発明によれば、1つの循環記録領域を複数の記録媒体上に分散したメモリブロックで構成でき、最新部分の記録内容を保持した状態で循環記録領域の拡張/縮小が可能となる。また、本発明によれば、記録装置の記憶容量の範囲内で循環記録領域間でのメモリ容量の融通と、記録媒体の増設時の既存の循環記録領域のメモリ容量の拡張が容易となる。
以下、本発明の実施例について、図面を参照して説明する。
図1は、本発明による循環記録装置および循環記録方法が適用される画像蓄積配信システムの全体構成の1例を示す。
ここに示した画像蓄積配信システムは、画像(音声を含む場合もある)データを蓄積するための記録装置(以下、ディスク装置と言う)3を備えた画像蓄積配信サーバ1と、ネットワーク4を介して上記画像蓄積配信サーバ1に接続された複数のWebカメラ5(5−1〜5−n)および複数のクライアント端末6(6−1〜6−m)からなる。Webカメラ5−1〜5−nは、それぞれを固有のチャネル番号を有し、例えば、5−1はチャネル1(CH1)用、5−2はチャネル2(CH2)用、‥‥‥、5−nはチャネルn(CHn)用のWebカメラとする。ここで、n、mは自然数であり、n=mである必要はない。
Webカメラ5−1〜5−nによる撮影映像の各フレームの画像データは、例えば、JPEG等の画像圧縮方式で圧縮され、IPパケット形式で画像蓄積配信サーバ1に送信される。この場合、圧縮された画像データは、フレーム毎にデータ量の異なる可変長データとなる。画像蓄積配信サーバ1は、Webカメラ5−1〜5−nからネットワークを介して受信した各パケットから圧縮画像データ(以下、単に画像データと言う)を抽出し、ディスク装置3に予め確保されたチャネル別(サイト別)の循環記録領域30(30−1〜30−n)に記録する。
各クライアント端末6は、後述するように、画像蓄積配信サーバ1に対して、チャネル番号とフレーム番号を指定して画像データの配信を要求する。画像蓄積配信サーバ1は、クライアント端末からの要求に応じて、ディスク装置3から読出した指定チャネル番号/フレーム番号の画像データ、またはキャッシュメモリに蓄積中の最新の画像データをIPパケット形式で要求元のクライアント端末に配信サービスする。本発明の循環記録装置は、上記画像蓄積配信システムにおけるディスク装置3に適用される。
図2は、ディスク装置3に形成されるチャネル別の循環記録領域30−1〜30−nを示す。
図1、図2では、便宜上、ディスク装置3が1つの装置として表されているが、本発明では、ディスク装置3が、識別可能な複数の記録媒体を有するものとする。ここで言う記録媒体は、例えば、個別のハードディスク、複数のハードディスクからなるRAID(Redundant Arrays Of Inexpensive Disk)、その他のランダムアクセス可能な記憶装置のうちの1つを意味している。本発明では、これらの複数の記録媒体を利用して、ディスク装置3が提供するメモリ空間に、チャネル別の複数の循環記録領域30(30−1、…、30−t、30−(t+1)、30−(t+2)、…、30−(n−1)、30−n)を形成する(1≦t≦n)。
チャネル別循環記録領域30のサイズ(記憶容量)は任意であり、図2では、各循環記録領域を示す模式的に示すリングの大きさによって、循環記録領域のサイズの違いを表している。各循環記録領域30は、それぞれ所定サイズの複数のメモリブロックからなっており、これらのメモリブロックを循環的にアクセスすることによって、各チャネルで時系列的に発生した画像データをそれぞれ最新データに続く所定量を残す形式で記録することができる。
図3は、循環記録領域に利用される各記録媒体上のメモリブロックと、これらのメモリブロックの使用状態を管理するメモリブロック状態管理テーブルを示す。
図(A)は、識別子Aをもつ記録媒体300Aに形成されたメモリブロック状態管理テーブル301Aと、循環記録領域用のメモリ領域302Aとを示す。メモリ領域302Aは、識別子0〜Nをもつ所定サイズ(例えば、1Mバイト)のN個のメモリブロックに分割され、メモリブロック状態管理テーブル301Aは、各メモリブロックの識別子(以下、ブロック番号と言う)と対応して、メモリブロックの使用状態を示す状態フラグを記憶している。循環記録領域として既に割当て済みのメモリブロックには、状態フラグ“1”が設定され、空き状態にあるメモリブロックには、状態フラグ“0”が設定される。
図(B)は、識別子Bをもつ記録媒体300Bに形成されたメモリブロック状態管理テーブル301Bと、循環記録領域用のメモリ領域302Bとを示す。メモリ領域302Bは、識別子0〜Mをもつ所定サイズのM個のメモリブロックに分割され、メモリブロック状態管理テーブル301Bは、メモリブロック状態管理テーブル301Aと同様、各メモリブロックの識別子(以下、ブロック番号と言う)と対応して、メモリブロックの使用状態を示す状態フラグを記憶している。
図4は、循環記録領域を定義するために生成される循環記録領域インデクスと循環記録領域管理テーブルの構成を示す。
本実施例では、チャネル別の循環記録領域30−1〜30−nと対応して、循環記録領域インデクス310(310−1〜310−n)を生成し、各循環記録領域インデクスにリンクして循環記録領域管理テーブル320(320−1〜320−n)を形成する。
チャネルCH1用の循環記録領域インデクス310−1には、チャネル番号311と、循環記録領域30−1に含まれるメモリブロックの個数n(=循環記録領域管理テーブル320のエントリ数)を示すブロック数312と、循環記録領域管理テーブル320の先頭エントリEN−1の位置を示すテーブルポインタ(TP)313と、最新データが書込まれたメモリブロックのポインタ情報をもつテーブルエントリを指すブロックポインタ(BP)314と、最新データ番号(SN)315とが記憶される。他のチャネル用の循環記録領域インデクス310−2〜320−nも同様の構成となっている。
循環記録領域インデクス310−1にリンクした循環記録領域管理テーブル320−1は、n個のテーブルエントリEN−1〜EN−nからなり、各エントリは、ポインタ部330と目次部340とを含む。
ポインタ部330には、記録媒体の識別子(この例では、媒体Aまたは媒体B)とメモリブロックの識別子とからなるポインタ情報が設定され、これらの識別子によって、ディスク装置3内でのメモリブロックが特定される。例えば、先頭エントリEN−1のポインタ情報“A3”は、図3(A)に示した記録媒体300Aにおける第3メモリブロックを指し、最終エントリEN−nのポインタ情報“A22”は、図3(A)に示した記録媒体300Aにおける第22メモリブロックを指している。
一方、目次部230は、ポインタ情報が指すメモリブロックの状態を示す状態コード341と、該メモリブロックに記録されたデータブロックのシーケンス番号342と、次のテーブルエントリを指す次エントリポインタ343と、目次情報344とを含んでいる。本実施例では、先頭エントリEN−1の次エントリポインタ343で第2エントリEN−2を指し、第2エントリEN−2の次エントリポインタ343で第3エントリEN−2を指し、最終エントリEN−nの次エントリポインタ343で先頭エントリEN−1を指すことによって、テーブルエントリEN−1〜EN−nをリング状に結合している。目次情報344は、後述するように、各データブロックに付されるヘッダから抽出される情報であり、循環記録領域からのデータ読出しの際に目的データが位置するデータブロックを検索するために利用される。
各インデクス310に含まれるブロックポインタBPの初期値は、先頭エントリEN−1を指している。従って、ブロックポインタBPが指すテーブルエントリを参照して、ポインタ情報330が示すメモリブロックにデータを書込み、次のデータ書込み時にブロックポインタBPの値を更新することによって、循環記録領域管理テーブル320−1のポインタ情報330に従ったメモリブロックへの循環的なデータ記録が可能となる。
図5は、既に生成済みで運用中の循環記録領域のメモリサイズ(メモリ容量)縮小過程を示す。
図(A)は、模式的に、シーケンス番号14〜29の画像データを蓄積した16個のメモリブロックからなる循環記録領域30−1を示している。ここで、循環記録領域30−1から4個分のメモリブロックを削除するメモリサイズの縮小要求が発生した場合を想定する。この場合、図(B)に示すように、画像データの旧い順にシーケンス番号14〜17の画像データを蓄積したメモリブロック群30Xが、循環記録領域30−1からの削除対象となる。
図4に示した実施例では、循環記録領域30−1と対応する循環記録領域インデクス310のブロックポインタBPによって、最新データ(この例では、シーケンス番号29の画像データ)をもつメモリブロックの位置を特定できるようになっている。従って、循環記録領域管理テーブル320から、ブロックポインタBPが示すテーブルエントリの次エントリポインタ343を読出し、この次エントリポインタ343が示すテーブルエントリを参照すれば、該エントリのポインタ部330の内容によって最旧シーケンス番号14の画像データをもったメモリブロックを特定できる。また、上記テーブルエントリが示す次エントリポインタ343に従って、同様の動作を繰り返すことによって、シーケンス番号15、16、17の画像データをもつメモリブロックを次々と特定することができる。
本発明では、このように循環記録領域管理テーブル320を参照して、削除対象となるメモリブロックを特定できるため、削除対象メモリブロックを示すポインタ情報に従って、メモリブロック状態管理テーブル301(301A、301B、…)を参照し、ポインタ情報と対応する状態フラグを“0”に書き換えることにより、削除対象メモリブロックを解放することができる。また、循環記録領域管理テーブル320において、ブロックポインタBPが示すテーブルエントリの次エントリポインタ343の値を書き換え、該テーブルエントリをポインタ情報で最旧画像データ(この例ではシーケンス番号18の画像データ)のメモリブロックを示しているテーブルエントリにリンクさせることによって、削除対象メモリブロックと対応するテーブルエントリ群を除外し、図(C)に示すように、循環記録領域30−1のサイズを縮小することができる。
図6は、既に運用中の循環記録領域のメモリサイズの拡張過程を示す。
図(A)は、模式的に、シーケンス番号20〜31の画像データを蓄積した12個のメモリブロックからなる循環記録領域30−1を示している。上記循環記録領域30−1に、例えば、4個分のメモリブロックの拡張要求が発生した場合を想定する。この拡張要求に対して、本発明では、メモリブロック状態管理テーブル301(301A、301B、…)を参照して、空き状態の4個分のメモリブロック群30Yを確保し、図(B)に示すように、シーケンス番号31をもつ最新画像データの蓄積メモリブロックとシーケンス番号20をもつ最旧画像データの蓄積メモリブロックとの間に挿入する。これによって、群循環記録領域30−1のメモリサイズを図(C)に示すように16個分のメモリブロックに拡張できる。この場合、追加メモリブロック群30Yは、必ずしも同一の記録媒体上で確保する必要はなく、複数の記録媒体に分散して存在していてもよい。また、追加メモリブロック群30Yは、既存の循環記録領域30−1の構成要素となっているメモリブロック群とは異なる別の記憶媒体上、例えば、新たに増設されたに記憶媒体上に存在するものであってもよい。
循環記録領域30−1への新たなメモリブロック群30Yの追加は、図4に示した循環記録領域管理テーブル320への新たなテーブルエントリ群の追加と、次エントリポインタ343の書き換えによって行われる。すなわち、ブロックポインタBPが指している最新画像データ蓄積ブロック用のテーブルエントリを追加テーブルエントリ群の先頭エントリにリンクさせ、追加テーブルエントリ群の最後のエントリを、上記最新画像データ蓄積ブロック用のテーブルエントリで次エントリポインタ343が示していた最旧画像データ蓄積ブロック用のテーブルエントリにリンクさせるように、次エントリポインタ343を書き換えればよい。
図7は、上述した循環記録領域の生成機能と循環記録領域の拡張/縮小機能を備えた画像蓄積配信サーバ1の一実施例を示すブロック構成図である。
画像蓄積配信サーバ1は、プロセッサ10と、プロセッサ10が実行する各種のプログラムを格納したプログラム格納メモリ11と、画像データのチャネル別の循環記録とクライアントへの配信サービスに必要な各種テーブルが形成されるテーブル格納メモリ12と、送受信画像フレームのバッファ領域および書込み/読出し画像データのキャッシュ領域として利用されるデータ格納メモリ13からなる。また、画像蓄積配信サーバ1には、ネットワーク4に接続するためのネットワークインタフェース14と、TCP/IPスタック15と、ディスク装置3の接続インタフェースとなるファィバーチャネルドライバ16及びファィバーチャネルインタフェース17と、入力装置18および表示装置19が備えられている。
図8は、プログラム格納メモリ11に用意される循環記録領域の新規作成ルーチン400の一実施例を示すフローチャートである。循環記録領域新規作成ルーチン400は、例えば、表示装置19に表示された循環記録領域定義画面において、オペレータがチャネル番号CHkとメモリブロック数nを指定し、循環記録領域の新規作成を指令した場合に実行される。
循環記録領域新規作成ルーチン400では、記録媒体毎に用意されているメモリブロック状態管理テーブル301(301A、301B、…)の状態フラグを参照して、オペレータが指定した循環記録領域のメモリブロック数nに相当する空きブロックが存在しているか否かを判定する(ステップ401)。もし、空きブロックが足りない場合は、表示装置19に空きブロック不足の通知メッセージを出力し(409)、このルーチンを終了する。この場合、オペレータが領域規模を縮小して循環記録領域の作成を再指令できるように、確保可能な空きブロックの個数、または不足している空きブロックの個数を表示するようにしてもよい。
循環記録領域のメモリブロック数nに相当する空きブロックが存在していた場合は、テーブル格納メモリ12にチャネルCHk用の循環記録領域インデクス310−kと循環記録領域管理テーブル320―kのフレームを生成する(402)。この時点では、循環記録領域インデクス310−kのチャネル番号311とブロック数312には、オペレータが指定したチャネル番号CHkとメモリブロックnが設定され、テーブルポインタ313とブロックポインタ314には、循環記録領域管理テーブル320―kの先頭エントリのアドレスが設定され、最新データ番号315には初期値0が設定される。また、循環記録領域管理テーブル320―kは、環状にリンクしたn個のエントリからなり、各エントリのポインタ部330と目次部340は、次エントリポインタ343以外の各フィールドがクリアされた状態にある。
次に、循環記録領域管理テーブル320−kのエントリ特定用のパラメータiの値を初期値0に設定した後(403)、パラメータiの値をインクリメントし(404)、メモリブロック状態管理テーブル301(301A、301B、…の何れか)の第i空きブロックを示すポインタ情報を循環記録領域管理テーブル320−kの第iエントリEN(i)のポインタ部330に登録する(405)。また、メモリブロック状態管理テーブル301において、上記第i空きブロックの状態フラグをメモリブロック使用中を示す値“1”に設定し(406)、パラメータiが指定値nに達したか否かを判定する(407)。
もし、パラメータiが指定値nに達していなければ、ステップ404に戻り、パラメータiの値をインクリメントして同様の動作を繰り返す。これによって、循環記録領域管理テーブル320−kに空きメモリブロックを示すポインタ情報が次々と登録され、最後の第nエントリについて、ポインタ情報の登録と該当メモリブロックの状態フラグの設定が終了した時点で、表示装置19に循環記録領域の作成完了メッセージが出力され(408)、このルーチンが終了する。
図9は、プログラム格納メモリ11に用意される循環記録領域の縮小ルーチン420の一実施例を示すフローチャートである。循環記録領域の縮小ルーチン420は、例えば、表示装置19に表示された循環記録領域定義画面において、オペレータがチャネル番号CHqとメモリブロックの削減個数Δnを指定し、循環記録領域の縮小を指令した場合に実行される。
循環記録領域の縮小ルーチン420では、チャネル番号CHqと削減ブロック数Δnを読込み、修正対象となるチャネル番号CHq用の循環記録領域インデクス310−qと循環記録領域管理テーブル320−qとを特定する(ステップ421)。図5で説明したように、循環記録領域の縮小によって循環記録領域管理テーブル320−qから削除すべきエントリは、ブロックポインタBPが示しているテーブルエントリに続くΔn個のエントリとなっている。ここでは、便宜上、これらの削除対象エントリをEN(BP+1)〜EN(BP+Δn)と表すことにする。
循環記録領域の縮小ルーチン420では、削除対象エントリEN(BP+1)〜EN(BP+Δn)のポインタ情報に従って、メモリブロック状態管理テーブル301(301A、301B、…の何れか)上の該当メモリブロックの状態フラグを“0”に変更し、エントリEN(BP+1)〜EN(BP+Δn)と対応するメモリブロックを次々と解放する(422)。この後、循環記録領域管理テーブル320−qを再構成し、エントリEN(BP+1)〜EN(BP+Δn)を除外する(423)。図4に示したテーブル構成の場合、上記循環記録領域管理テーブル320−qの再構成は、ブロックポインタBPが示しているテーブルエントリの次エントリポインタ342の値を最後の削除エントリEN(BP+Δn)の次エントリポインタの値に書き換えることによって達成される。
次に、本実施例では、Δnの値とn−BPを比較する(424)。ここで、修正前の循環記録領域管理テーブル320−qでエントリEN−nを最終エントリとした場合、n−BPは、ブロックポインタBPが指しているテーブルエントリより後にあるエントリ数を示している。Δnがn−BPよりも大きいと言うことは、循環記録領域管理テーブル320−qの先頭エントリEN−1が削除対象エントリEN(BP+1)〜EN(BP+Δn)に含まれることを意味している。この場合は、修正後の循環記録領域管理テーブル320−qの先頭エントリに合わせて、循環記録領域インデクス310−qのテーブルポインタ(TP)313の値を変更する(425)。この後、循環記録領域インデクス310−qのブロック数312の値をnからn−Δnに書き換え(426)、表示装置19に循環記録領域の縮小完了メッセージを出力して(427)、このルーチンを終了する。
図10は、プログラム格納メモリ11に用意される循環記録領域の拡張ルーチン440の一実施例を示すフローチャートである。循環記録領域の拡張ルーチン440は、例えば、表示装置19に表示された循環記録領域定義画面において、オペレータがチャネル番号CHrとメモリブロックの拡張個数Δnを指定し、循環記録領域の拡張を指令した場合に実行される。
循環記録領域の拡張ルーチン440では、チャネル番号CHrと拡張ブロック数Δnを読込み、修正対象となるチャネル番号CHr用の循環記録領域インデクス310−rと循環記録領域管理テーブル320−rとを特定する(ステップ441)。次に、循環記録領域管理テーブル320−rに、拡張ブロック数(Δn)分のテーブルエントリ群、EN(n+1)〜EN(n+Δn)を追加生成する(442)。これらの追加エントリは、最終エントリEN(n+Δn)を除いて、それぞれ次ポインタによって後続エントリとリンクしており、循環記録領域の生成時と同様、それぞれのポインタ情報として、記録媒体毎に用意されたメモリブロック状態管理テーブル301(301A、301B、…)の状態フラグを参照して確保された空きメモリブロックの識別情報と記録媒体識別子とが登録されている。
循環記録領域の拡張ルーチン440では、上記エントリ群EN(N+1)〜EN(N+n)が、ブロックポインタBPが指しているテーブルエントリEN(BP)とその次のテーブルエントリEN(BP+1)との間に挿入されるように、循環記録領域管理テーブル320−rを再構成する(443)。このテーブル再構成は、テーブルエントリEN(BP)の次エントリポインタ343を追加エントリ群の最初のエントリEN(n+1)にリンクさせ、最終エントリEN(n+Δn)の次エントリポインタ343を上記テーブルエントリEN(BP)の次エントリポインタ343が指していたテーブルエントリEN(BP+1)にリンクさせるように、次エントリポインタ343を書き換えることによって達成される。
循環記録領域管理テーブルの再構成が終了すると、インデクス310rにおけるブロック数312の値をnからn+Δnに書き換え(444)、表示装置19に循環記録領域の縮小完了メッセージを出力して(445)、このルーチンを終了する。尚、ステップ442において、要求された拡張ブロック数(Δn)分の空きメモリブロックを確保できなかった場合は、循環記録領域の生成ルーチン400と同様、空きブロック不足の通知メッセージを出力して、このルーチンを終了すればよい。
図11は、本発明での画像蓄積配信サーバ1が行うディスク装置3への画像データの書込み動作と読出し動作の一実施例を示す。
ハードディスクのように、データのリード(Read)・ライト(Write)時に目的トラックへのシークアクセスを伴う記憶装置では、記録領域へのシーケンシャルなアクセスは高速に行えるが、ランダムなアクセスでは速度が低下する。また、ディスクアクセスを効率的に行うためには、データ転送サイズをディスク装置3のセクタサイズの倍数にしておくことが望まれる。そこで、本実施例の画像蓄積配信サーバ1では、例えば、Webカメラからフレーム単位で受信される画像データをチャネル別キャッシュメモリ(以下、ディスク書込みキャッシュ領域と言う)に順次に蓄積しておき、セクタサイズの整数倍のデータブロックに編集して、ブロック単位でディスク装置3への書込みを実行する。
すなわち、本実施例では、例えば、図11に示すように、ディスク装置3に定義されるチャネル別の循環記録領域30−refを固定サイズの複数のメモリブロックBL1、BL2、…BLmaxに区分けしておき、先頭メモリブロックBL1から順にブロック単位で画像データを書込み、最終ブロックBLmaxへの画像データの書込みが終わると、次の画像データは先頭ブロックBL1に書込むことによって、メモリ領域を循環的に利用した画像データ記録を実現する。ここで、循環記録領域30−refは、図1に示した複数の循環記録領域30−1〜30−nのうちの任意の1つを示している。
循環記録領域30−refに書込まれる画像データは、ディスク書込みキャッシュ領域220において、ヘッダ221と、可変長の複数のサブブロック222(222−1〜222r)とからなるデータブロックに編集され、ブロック単位で各メモリブロックBL1、BL2、…BLmaxに書込まれる。ここでrは、自然数である。これらのサブブロックには、それぞれ複数フレームFL1、FL2、FL3、・・・の画像データが記録されている。以下の説明では、このようなサブブロックを「パック」と呼ぶことにする。各パック222は、セクタサイズの整数倍の長さを有し、先頭位置には、パック内でのフレームの開始位置をバイト単位で示す位置情報と、望ましくはフレームの時刻情報とを示すパック内ヘッダ223が設定されている。
本実施例では、各パック222は、基本サイズSの中にヘッダ223に続けて順次に画像フレームを蓄積していき、最後の画像フレーム、例えば、FL6が基本サイズSを超えた時、パック終端がセクタサイズの整数倍の位置となるように空き領域224を設定する形式で構成する。従って、パックサイズは、基本サイズSに近い可変長サイズとなっている。別の方法として、最後の画像フレーム、例えば、FL6が基本サイズSを超える時には、画像フレームFL5以降の領域を空き領域とし、最後の画像フレームFL6を次のパックに記録するようにしても良い。
一方、循環記録領域30−refからの画像データの読出しには、クライアント端末からの指定フレームを含むパック単位の読出しモード(第1モード)と、指定フレームを含むデータブロック単位の読出しモード(第2モード)とを選択的に使い分ける。これは、例えば、クライアント端末で1倍速以下の画像再生または逆再生を行う場合は、画像データをブロック単位で読出す第2モードが効率的となるが、クライアント端末で不連続に選択したランダムなフレームを再生する場合は、上記第2モードでは読出されたデータの多くが無駄になり、結果的にアクセス効率が低下するからである。
第1モードでは、例えば、クライアント端末がブロックBLpに含まれる画像フレームFLxを要求した場合、画像蓄積配信サーバ1が、循環記録領域30−refから指定フレームFLxを含むパック(PACKq)をディスク読出しキャッシュ領域260に読出し、パックPACKqから指定フレームFLxを選択して、要求元のクライアント装置に配信する。指定フレームが既にディスク読出しキャッシュ領域260に存在する場合は、循環記録領域30−refからの画像データの読出しは不要となる。また、指定フレームがディスク書込みキャッシュ領域220に蓄積された状態にあれば、画像蓄積配信サーバ1は、ディスク書込みキャッシュ領域220から読み出した画像フレームを要求元のクライアント装置に配信する。
クライアント端末からのフレーム要求が、ブロック単位での読出しに適した再生モードを前提としていた場合は、上記第1モードに代えて第2モードを選択し、指定フレームを含む1ブロック分の画像データをディスク読出しキャッシュ領域260に読出す。この場合、その後の送信要求に対して、先読みされた画像データブロックの中から指定フレームを選択して、順次にクライアント端末に配信することが可能となる。
図12は、各データブロックに付されるヘッダ221の詳細と、循環記録領域のブロックBL、例えば、ブロックBLp(p≦maxの自然数)に記録される画像データとデータブロックとの関係を示す。
ヘッダ221は、少なくともデータブロックの先頭パックに含まれる先頭フレームのフレーム番号(先頭フレーム番号)221Aと、状態フラグ221Bと、時刻情報221Cと、ブロック内パック情報221Dとから成る。時刻情報221Cには、データブロック内の先頭フレームの時刻情報が設定される。
ブロック内パック情報221Dは、データブロックを構成している複数のパックと対応した複数のフィールドからなる。最初のフィールドは、例えば、8ビットの1つの値を含み、データブロック内の先頭パックに含まれるフレーム数を示している。2番目以降の各フィールドは、例えば、それぞれ8ビットからなる2つの値を含み、第1の値はパックの先頭セクタアドレス、第2の値はパック内のフレーム数を示している。ブロック内パック情報221Dに用意できるフィールド数には制限があるため、結果的に各データブロックに含まれるパック数には上限がある。
図13は、ディスク書込みキャッシュ領域220で編集された任意チャネルCH−refの画像データブロックを循環記録領域30−refに書き込むためのデータ書込み処理プログラム(ルーチン)460の基本的な動作を示すフローチャートである。
データ書込み処理ルーチン460では、チャネルCH−refに対応する循環記録領域インデクス310−refを参照し、最新データ番号315の値SNが0か否かを判定する(ステップ461)。最新データ番号SNが初期値0の場合は、ブロックポインタ314の値BPをそのまま生かし、初期値0でなければ、ブロックポインタの値BPを該ブロックポインタが指しているテーブルエントリEN(BP)の次エントリポインタ343が示す値に置き換える(462)。
次に、上記インデクス310−refに付随する循環記録領域管理テーブル320−refにおいて、ブロックポインタBPが指しているテーブルエントリEN(BP)の状態コード341をデータ書込み中を示す値、例えば、“1”に変更(463)した後、テーブルエントリEN(BP)のポインタ情報330が示すメモリブロックに、ディスク書込みキャッシュ領域220で編集された画像データブロックを書き込む(464)。画像データブロックの書込み処理が終わると、テーブルエントリEN(BP)の状態コード341をデータ書込み完了を示す値、例えば、“2”に変更(465)した後、インデクス310−refにおける最新データ番号315の値SNをインクリメントし(466)、このSN値をテーブルエントリEN(BP)のシーケンス番号342に記録する(467)。更に、上記データブロック(画像データ)のヘッダ211に含まれる先頭フレーム番号、時刻情報等の情報をテーブルエントリEN(BP)に目次情報344として登録し(468)、このルーチンを終了する。ここで、状態コード341に“1”と“2”の2つの状態を設けた理由は、データ書込み中のメモリブロックからの画像データの読出しを禁止するためである。
図4に示した循環記録領域管理テーブル320によれば、複数のテーブルエントリが次エントリポインタ343によって環状にリンクしており、画像データブロックの書込みの都度、ブロックポインタBPの値を更新することによって、データ書込みすべきメモリブロックの位置(記録媒体の識別子とメモリブロック識別子)を示すポインタ情報を持つ次のテーブルエントリを参照することができる。従って、本実施例によれば、循環記録領域を生成した直後は、画像データを空きメモリブロックにシーケンス番号順に記録し、全てのメモリブロックに画像データが書込まれた後は、最も旧い画像データを蓄積したメモリブロックに最新画像データを上書きする形式で、最新フレームに連続する所定量の画像データを蓄積することが可能となる。
図14は、本発明の画像蓄積配信サーバ1において、上述した画像データの書込みと読出しに関係する部分の機能部分の一実施例を示すブロック図である。
本実施例では、データ格納メモリ13(図7参照)に、チャネル番号と対応した複数の受信フレームバッファ20(20−1〜20−n)とディスク書込みキャッシュ22(22−1〜22−n)が形成される。また、上記データ格納メモリ13には、クライアント端末数mと対応した複数の送信フレームバッファ27(27−1〜27−m)とディスク読出しキャッシュ26(26−1〜26−m)が形成される。
120は、前述したチャネル対応の循環記録領域インデクス310および管理テーブル320と、各記録媒体から読み出されたメモリブロック状態管理テーブル301とを保持する管理テーブル用メモリ領域、121は、循環記録領域管理テーブル320が示す論理的なポインタ情報、またはチャネル番号とブロック番号とで特定されるメモリブロックのアドレスをディスクアドレスに変換するためのアドレス変換テーブルを示す。
Webカメラ5から送信された画像フレームパケットは、ネットワークインタフェース14で受信され、TCP/IPスタック15で画像フレームが抽出され、チャネル番号と対応した受信フレームバッファ20(20−1〜20−n)に入力される。受信フレームバッファ20に入力された画像フレームは、チャネル番号と対応した受信スレッド21(21−1〜21−n)によって、ディスク書込みキャッシュ22(22−1〜22−n)に転送され、各ディスク書込みキャッシュに設けたディスク書込みキャッシュ領域220において、図11に示した複数パックからなる画像データブロックに編集される。
受信スレッド21の実体は、プログラム格納メモリ11に用意された受信画像フレーム処理用のプログラムである。本実施例では、図15で詳述するように、チャネル対応の各ディスク書込みキャッシュ22が複数のキャッシュ領域(220−1、220−2、…)で構成されている。各受信スレッドは、1つのキャッシュ領域でデータブロックの編集が完了すると、その後の受信フレームを別のキャッシュ領域で次のデータブロックを編集する。各受信スレッド21は、キャッシュ領域で1つのデータブロックが完成すると、チャネル番号と、ブロック番号と、そのデータブロックが位置しているキャッシュ領域の識別子とを示す制御ブロックを生成し、これを書込み待ちブロックキュー23に登録する。
ディスク書込みスレッド24(24−1〜24−L:但し、LはL≦nの自然数)の実体は、プログラム格納メモリ11に用意されたデータブロック処理用のプログラムであり、図13で説明したデータ書込み処理機能を備えている。ディスク書込みスレッド24は、それぞれ書込み待ちブロックキュー23から制御ブロックを取り込み、該制御ブロックが示すチャネル番号、キャッシュ領域識別子、ブロック番号に従って、ディスク書込みキャッシュ22から1つのデータブロックを読出す。次に、上記制御ブロックが示すチャネル番号CHjに従って、管理テーブル用メモリ領域120にある上記チャネル番号CHjと対応した循環記憶領域インデクス310―jと循環記憶領域管理テーブル320−jを参照し、上記データブロックを書き込むべきメモリブロックのポインタ情報を特定する。上記ポインタ情報は、アドレス変換テーブル121によってディスクアドレスに変換され、このディスクアドレスに従って、ディスク装置3内の循環記録領域30−jの特定のメモリブロック位置にデータブロックが書込まれる。
配信スレッド25(25−1〜25−m)の実体も、プログラム格納メモリ11に用意された送信データ処理用のプログラムであり、それぞれクライアント端末6(6−1〜6−m)からの画像フレーム配信要求に応答して、第1モードまたは第2モードにより、ディスク装置3からディスク読出しキャッシュ26へのパック単位またはブロック単位での画像データの読出し動作と、指定画像フレームの送信フレームバッファ27(27−1〜27−m)への転送動作を行う。送信フレームバッファ27に入力された画像フレームは、TCP/IPスタック15でIPパケットに変換され、ネットワークインタフェース14を介してネットワークに送信される。
各クライアント端末6(6−1〜6−m)は、画像蓄積配信サーバ1に対して、チャネル番号とフレーム番号を指定して画像フレームの配信を要求する。配信スレッド25は、メモリ領域120にある指定チャネルの循環記録領域管理テーブルを参照して、クライアントからの要求画像フレームを含むブロックの番号とパック位置を特定し、アドレス変換テーブル18から上記チャネル番号とブロック番号に対応するディスクアドレスを特定する。第1モードの画像データ読出しは、上記ディスクアドレス、パック位置に基づいて行われ、第2モードの画像データ読出しは、上記ディスクアドレスに基づいて行われる。
図15は、第i番目のチャネル(第iチャネル)用の受信スレッド21−iによるデータブロックの編集動作を示す。本実施例では、第iチャネル用のディスク書込みキャッシュ22−iとして、4個のキャッシュ領域220−1〜220−4が用意されている。キャッシュ領域の状態には、空き状態(ST0)、編集状態(ST1)、書込み待ち状態(ST2)、書込み完了状態(ST3)があり、各キャッシュ領域の現在の状態は、キャッシュ領域状態テーブル221−iに記録される。
受信スレッド21−iは、キャッシュ領域状態テーブル221−iを参照して、ディスク書込みキャッシュ22−iから空き状態(ST0)にあるキャッシュ領域を選択し、このキャッシュ領域の状態コードを編集状態ST1に変更した後、画像フレームのデータブロックの編集を行う。空き状態(ST0)のキャッシュ領域が全くない場合は、書込み完了状態(ST3)にあるキャッシュ領域の中から、時刻情報221Cが最も古いデータブロックを含むキャッシュ領域を選択し、その状態コードを編集状態ST1に変更した後、該キャッシュ領域でデータブロックの編集を行う。
受信スレッド21−iは、キャッシュ領域で1つのデータブロックの編集が完了すると、キャッシュ領域状態テーブル221−i上で上記キャッシュ領域の状態コードをST1からST2に変更し、該キャッシュ領域に関する制御ブロックを生成して、書込み待ちブロックキュー23に登録する。
ディスク書込みスレッド24−iは、書込み待ちブロックキュー23から先頭の制御ブロックを取り出し、該制御ブロックに従って、ディスク書込みキャッシュ22−iから、書込み待ち状態(ST2)にあるキャッシュ領域のデータブロックを読み出し、ディスク装置3の第iチャネル用の循環記録領域30−iに上記データブロックを書き込む。この後、キャッシュ領域状態テーブル221−i上で、ディスク装置への書込みが完了したキャッシュ領域の状態コードをST2からST3に変更して、1つのデータブロックの書込み処理を終了する。
ディスク書込みスレッド24−iによるデータブロックの書込み所要時間は、受信スレッド21―iによるデータブロック生成に比較して短いため、チャネル数nより少ない個数Lのディスク書込みスレッド24(24−1〜24−L)で、ディスク書込みキャッシュ22の全チャネルのデータブロックをディスク装置3に書込むこともできる。本実施例では、ディスク書込みキャッシュ22−iに4個のキャッシュ領域220−1〜220−4を用意したが、キャッシュ領域は、各チャネルに少なくとも2個あればよく、その最大数は任意である。
図16は、クライアント端末6−jからの画像フレーム配信要求に応答して配信スレッド25−jが実行する第1モードの画像データ読出し動作と画像フレーム配信動作を示す。ここで、jは、j≦mの自然数である。
本実施例では、クライアント端末6−j用のディスク読出しキャッシュ26−jとして4個のキャッシュ領域260−1〜260−4が用意されている。また、各キャッシュ領域と、そこに読出される画像データブロックとの対応関係を判断するために、配信スレッド25−jは、キャッシュ領域管理テーブル261−jに、キャッシュ領域の識別子と対応して、循環記録領域管理テーブルから得られる読出しデータブロックの索引情報と、各キャッシュメモリ領域の最終アクセス時刻を登録している。
ディスク読出しキャッシュ26−jは、図16に示すように、クライアント端末毎に複数のキャッシュ領域260−1〜260−4を有し、複数ブロック分の画像データを読み出せるようになっている。但し、第1モードでは、斜線で示すように、各キャッシュ領域にパック単位で画像データが読み出されるため、要求フレームの属するデータブロックに既にキャッシュ領域が割り当て済みとなっていた場合でも、要求フレームそのものを含むパックがキャッシュ領域に存在するとは限らない。
配信スレッド25−jは、クライアント端末6−jから画像フレームの配信要求メッセージを受信すると、受信されたメッセージからチャネル番号kと要求フレーム番号xとを抽出する。ここで、kは、自然数で、1≦k≦nある。次に、これらのチャネル番号kと要求フレーム番号xに従って、管理テーブル用メモリ領域120にある上記チャネル番号k用の循環記録領域管理テーブル320−kを参照し、該テーブルに登録されている目次情報344を検索して、要求フレーム番号が循環記録領域30−kまたはディスク書込みキャッシュ22−kに保存中のものか否かを判定する。
要求フレーム番号xが、循環記録領域管理テーブル320−kが示すアクセス可能な最古のフレーム番号よりも古い場合は、要求フレーム番号を最古のフレーム番号に置き換える。逆に、要求フレーム番号xがアクセス可能な最新フレーム番号よりも新しい場合は、要求フレーム番号を最新フレーム番号に置き換えた後、要求フレームがディスク書込みキャッシュ22−kまたはディスク読出しキャッシュ26−jに存在するか否かをチェックする。
ディスク書込みキャッシュ22−kにおける要求フレームの有無は、キャッシュ領域に蓄積された各データブロックのヘッダ221をチェックすることによって判明する。また、ディスク読出しキャッシュ26−jにおける要求フレームの有無は、キャッシュ領域管理テーブルに登録された索引情報から、要求フレームを含むデータブロックがキャッシュ領域260−1〜260−4の何れかに割り当て済みか否かを判定し、もし、割り当て済みの場合、上記索引情報の一部となっているブロック内パック情報221Dから、データブロック内での要求フレーム包含パックの位置を特定し、該当キャッシュ領域の特定位置にパックデータが読出し済みか否かを判定すればよい。
要求フレームが上記何れかのキャッシュに存在していた場合は、配信用スレッド25−jは、要求フレーム番号xをもつ画像フレームFLxをキャッシュから読み出し、フレームバッファ27−jに複写する。上記画像フレームFLxをディスク読出しキャッシュ26−jから読み出した場合、配信用スレッド25−jは、キャッシュ領域管理テーブル261−jに登録されている上記データブロックを保持するキャッシュ領域の最終アクセス時刻の値を最新のアクセス時刻(現在時刻)に更新しておく。
要求フレームに該当するデータブロックがキャッシュ領域260−1〜260−4の何れかに割り当て済みで、要求フレーム包含パックがキャッシュ領域に未だ読み出されていなかった場合、配信用スレッド25−jは、チャネル番号kと対応するディスク装置3の循環記録領域30−kから要求フレーム包含パックを読出し、これを割り当てキャッシュ領域の該当位置に格納した後、要求フレームをフレームバッファ27−jに複写する。この場合も、キャッシュ領域管理テーブル261−jに登録されている上記データブロックを保持するキャッシュ領域の最終アクセス時刻の値を最新のアクセス時刻に更新する。
要求フレームに該当するデータブロックが、書込みキャッシュ22−kにも読出しキャッシュ26−jにも存在しなかった場合、配信用スレッド25−jは、読出しキャッシュ26−jから未使用状態にあるキャッシュ領域を見つけ、該キャッシュ領域をクリアした後、これを要求フレームのデータブロック読出し領域に割り当て、ディスク装置から要求フレーム包含パックを読出す。読出しキャッシュ26−jに未使用状態のキャッシュ領域がなかった場合、配信用スレッド25−jは、キャッシュ領域管理テーブル261−jから最終アクセス時刻の値が最も古いキャッシュ領域を見つけ、該キャッシュ領域をクリアした後、これを要求フレームのデータブロック読出し領域に割り当て、ディスク装置から要求フレーム包含パックを読出す。
尚、ここで言うデータブロック読出し領域の割り当ては、キャッシュ領域管理テーブル261−jにおいて、割り当てキャッシュ領域の識別子と対応して、循環記録領域管理テーブルから求めた新たなデータブロックの索引情報を登録し、該キャッシュ領域の最終アクセス時刻の値を最新のアクセス時刻とすることを意味している。
以上の実施例では、循環記録領域管理テーブル320の各エントリを次エントリポインタ343で後続エントリにリンクさせる構成としたが、次エントリポインタを省略し、複数のテーブルエントリを配列順に参照して次々とポインタ情報を読出し、循環記録領域管理テーブルの最後のテーブルエントリからポインタ情報を読出した時は、循環記録領域管理テーブルの最初のテーブルエントリに戻るように制御してもよい。
このようなテーブル構成を採用した場合、循環記録領域のメモリ容量の拡張に伴ってエントリ群が発生した時、管理テーブルの再編成処理として、例えば、新たなエントリ群を既存の最後のテーブルエントリに続く形で追加した後、ブロックポインタBPが指すテーブルエントリEN(BP)の直後に上記追加エントリ群が位置するように、テーブルエントリEN(BP)以降のエントリ内容を最終エントリ側に順次に移動する。同様に、循環記録領域のメモリ容量の縮小に伴って削除エントリ群が発生した時は、テーブルエントリEN(BP)以降において、エントリ内容を削除エントリ側に移動し、管理テーブルの末尾にできた不要エントリを削除すればよい。
また、図14に示した実施例では、循環記録領域管理テーブルを更新するデータ書込み処理ルーチン460の機能をディスク書込みスレッド24に持たせたが、この機能の一部を受信スレッド21に持たせるようにしてもよい。実施例では、受信スレッド21が、複数のキャッシュ領域を使用して次々とデータブロックを編集し、編集が完了したデータブロックについては、対応する制御ブロックを書込み待ちブロックキュー23に登録することによって、ディスク書込みスレッド24にデータブロックの発生を通知するようにしているため、受信スレッド21側でのデータブロックの発生と、ディスク書込みスレッド24側でのデータブロックの循環記録領域への書込みとの間に時間差がある。従って、受信スレッド21側に循環記録領域管理テーブルを参照させた場合、ブロックポインタBPと状態コード341の更新タイミングが問題となる。
この問題を解決する1つの方法は、ブロックポインタBPを受信スレッド21用のポインタBP1とディスク書込みスレッド24用のポインタBP2に分け、受信スレッド21は、データブロック生成の都度、ポインタBP1を更新し、ディスク書込みスレッド24は、データブロックの書込みの都度、状態コード341とポインタBP2を更新するようにすればよい。この方法を採用すると、データブロック生成の都度、受信スレッド21が循環記録領域管理テーブルのポインタ情報を参照して、上記データブロックを書き込むべきメモリブロックを特定し、アドレス変換テーブル121から求めたディスクアドレスを制御ブロックに付加することができる。従って、ディスク書込みスレッド24側では、アドレス変換テーブル121を参照することなく、制御ブロックから直ちにディスクアドレスを特定して、データブロックの書込み処理を完了することが可能となる。
また、実施例では、ブロックポインタBPによって最新データを蓄積したメモリブロックを特定できるようにしたが、ブロックポインタBPを省略し、例えば、データブロック書込みの都度、循環記録領域管理テーブルの目次部にあるシーケンス番号をサーチし、空き状態または最旧データを蓄積したメモリブロックを見つけて、次のデータブロックを書き込むようにしてもよい。このようにすれば、上述したブロックポインタBPの更新タイミングが問題がなくなるため、受信スレッドと書込みスレッドの双方で循環記録領域管理テーブルを自由に利用できる。尚、テーブルエントリの状態コードとして、受信スレッドがデータブロックと制御ブロックを生成したことを示すコードを設け、この状態コードからデータ書込み中、データ書込完了の状態コードに遷移するようにしてもよい。
以上の実施例から明らかなように、本発明の循環記録装置は、1つの循環記録領域を複数の記録媒体上に分散したメモリブロックで構成することができ、且つ、最新部分の記録内容を保持した状態で循環記録領域の拡張と縮小が可能となるため、ランダムアクセス記録媒体を使用した映像、音声、センサー情報等の時系列情報の記録装置として有効となる。また、本発明によれば、記録装置の記憶容量の範囲内で複数の循環記録領域におけるメモリ容量の融通と、記録媒体の増設時の既存の循環記録領域のメモリ容量の拡張が容易となる。
本発明を適用する画像蓄積配信システムの全体構成図。 ディスク装置に形成されるチャネル別の循環記録領域を説明するための図。 循環記録領域に利用される各記録媒体上のメモリブロックとメモリブロック状態管理テーブルの一実施例を示す図。 循環記録領域を定義するためのインデクスと管理テーブルの一実施例を示す図。 循環記録領域のメモリ容量の縮小過程を説明するための図。 循環記録領域のメモリ容量の拡張過程を説明するための図。 図1に示した画像蓄積配信サーバ1の一実施例を示すブロック構成図。 循環記録領域の新規作成ルーチン400の一実施例を示すフローチャート。 循環記録領域の縮小ルーチン420の一実施例を示すフローチャート。 循環記録領域の拡張ルーチン440の一実施例を示すフローチャート。 画像蓄積配信サーバ1が行うディスク装置への画像データの書込み動作と読出し動作を説明するための図。 データブロックに付されるヘッダの詳細と、循環記録領域の各ブロックに記録される画像データとの関係を示す図。 循環記録領域へのデータ書込み処理ルーチン460の一実施例を示すフローチャート。 画像蓄積配信サーバ1における画像データの書込みと読出しに関係する部分の機能ブロック図。 図14に示した受信用スレッド21−iによるデータブロックの編集動作の一例を説明するための図。 図14に示した配信用スレッド25−jによる画像データの読出し動作と画像フレームの配信動作の一例を説明するための図。
符号の説明
1:画像蓄積配信サーバ、3:ディスク装置、4:ネットワーク、5:Webカメラ、6:クライアント端末、10:プロセッサ、11:プログラム格納メモリ、12:テーブル格納メモリ、13:データ格納メモリ、14:ネットワークインタフェース、15:TCP/IPスタック、16:ファイバーチャネルドライバ、17:ファイバーチャネルインタフェース、18:入力装置、19:表示装置、20:受信フレームバッファ、21:受信用スレッド、22:ディスク書込みキャッシュ、23:書込み待ちブロックキュー、24:ディスク書込みスレッド、25:配信用スレッド、26:ディスク読出しキャッシュ、27:送信フレームバッファ、30:循環記録領域、300:記録媒体、301:メモリブロック状態管理テーブル、310:循環記録領域インデクス、320:循環記録領域管理テーブル。

Claims (4)

  1. 同一または複数の記憶媒体上に位置した所定サイズの複数のメモリブロックで形成される循環記録領域時系列画像データを蓄積する循環記録装置において、
    上記記憶媒体毎に、該記憶媒体上に位置するメモリブロックの識別情報と対応付けて各メモリブロックの使用状態を示す状態フラグを記憶するメモリブロック状態管理テーブルと、
    上記循環記録領域を構成するメモリブロック数と対応した複数のエントリからなり、各エントリが、メモリブロックをアクセスするためのポインタ情報を含むポインタ部と、該メモリブロックに蓄積された時系列画像データの目次情報および次のエントリを指す次エントリポインタとを含む目次部とからなり、最終エントリの次エントリポインタで先頭エントリを指すことによって、上記複数のエントリをリング状に結合した循環記録領域管理テーブルと、
    上記循環記録領域管理テーブルの先頭エントリの位置を示すテーブルポインタと、最新データが書込まれたメモリブロックを指すポインタ情報を上記ポインタ部に含む特定エントリの位置を示すブロックポインタと、上記最新データのシーケンス番号とを含む循環記録領域インデクスとを有し、
    上記循環記録領域管理テーブルに従って、上記循環記録領域を構成する各メモリブロックへの時系列画像データの書き込みと、メモリブロックからのデータの読出しを行い、メモリブロック数を指定して上記循環記憶領域のメモリ容量の変更要求があったとき、上記特定エントリの目次部に含まれる次エントリポインタを変更して、上記循環記録領域管理テーブルを構成するエントリの個数と、該循環記録領域管理テーブルに従ってアクセスされるメモリブロックの個数とを増減し、上記メモリ容量の変更によって使用状態が変化したメモリブロックについて、上記メモリブロック状態管理テーブルに記憶されている状態フラグの値を変更することを特徴とする循環記録装置。
  2. 前記循環記録領域のメモリ容量の変更要求として、拡張ブロック数を指定してメモリ容量の拡張を要求された場合、前記循環記録領域管理テーブルに追加すべき上記拡張ブロック数分の新たなエントリ群を生成し、前記メモリブロック状態管理テーブルを参照して、上記拡張ブロック数分の空きメモリブロックを確保し、上記新たなエントリ群の各ポインタ部に上記確保されたメモリブロックをアクセスするためのポインタ情報を設定し、上記新たなエントリ群の各エントリを前記目次部に設定される次エントリポインタで順次に結合し、上記新たなエントリ群の最終エントリの目次部には、前記特定エントリの目次部に含まれていた次エントリポインタを設定し、該特定エントリの目次部には、上記新たなエントリ群の先頭エントリの位置を示す新たな次エントリポインタを設定し、
    前記循環記録領域のメモリ容量の変更要求として、削減ブロック数を指定してメモリ容量の縮小を要求された場合、前記特定エントリの目次部に含まれている次エントリポインタによって、削除エントリ群の先頭エントリを特定し、上記先頭エントリと、上記削減ブロック数で決まる上記先頭エントリに続く複数のエントリを前記循環記録領域管理テーブルから削除し、上記特定エントリの次エントリポインタを上記削除エントリ群の最後のエントリに設定されていた次エントリポインタの値に書き換え、前記メモリブロック状態管理テーブルにおいて、上記削除エントリ群の各ポインタ情報で特定されるメモリブロックの状態フラグを空き状態に変更することを特徴とする請求項1に記載の循環記録装置。
  3. 前記記憶媒体上の各メモリブロックが、セクタサイズの整数倍となる一定サイズを有し、上記各メモリブロックには、ヘッダ部と、それぞれが複数フレーム分の時系列画像データを含む複数のサブブロックとからなるデータブロックが記録され、
    前記循環記録領域インデクスが示す最新データのシーケンス番号が、前記循環記録領域への新たなデータブロックの書込みの都度インクリメントされるシーケンス番号であり、
    前記循環記録領域管理テーブルの各エントリが、前記目次部に、該エントリのポインタ情報で指定されたメモリブロックに新たなデータブロックが書き込まれたときに生成された上記最新データのシーケンス番号を含むことを特徴とする請求項1または請求項2に記載の循環記録装置。
  4. 前記記憶媒体上に、時系列画像データの発生元に割当てられたチャネル番号と対応づけて複数の循環記録領域が形成され、
    前記循環記録領域インデクスと前記循環記録領域管理テーブルが、循環記録領域別に用意され、各循環記録領域インデクスが、チャネル番号と、循環記録領域を形成するメモリブロック数とを含み、
    前記メモリ容量の変更要求が、チャネル番号と、拡張または削減すべきメモリブロックの個数を指定して発行されることを特徴とする請求項1〜請求項3の何れかに記載の循環記録装置。
JP2003327415A 2003-09-19 2003-09-19 循環記録装置 Expired - Fee Related JP4401132B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2003327415A JP4401132B2 (ja) 2003-09-19 2003-09-19 循環記録装置
US10/942,887 US20050076176A1 (en) 2003-09-19 2004-09-17 Circulating recording apparatus, method and program
KR1020040074361A KR100653826B1 (ko) 2003-09-19 2004-09-17 순환기록장치, 방법, 기록매체

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003327415A JP4401132B2 (ja) 2003-09-19 2003-09-19 循環記録装置

Publications (2)

Publication Number Publication Date
JP2005092679A JP2005092679A (ja) 2005-04-07
JP4401132B2 true JP4401132B2 (ja) 2010-01-20

Family

ID=34385945

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003327415A Expired - Fee Related JP4401132B2 (ja) 2003-09-19 2003-09-19 循環記録装置

Country Status (3)

Country Link
US (1) US20050076176A1 (ja)
JP (1) JP4401132B2 (ja)
KR (1) KR100653826B1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016088741A1 (ja) * 2014-12-01 2016-06-09 株式会社日立国際電気 映像記録装置および映像記録方法

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6594780B1 (en) * 1999-10-19 2003-07-15 Inasoft, Inc. Operating system and data protection
US7337360B2 (en) * 1999-10-19 2008-02-26 Idocrase Investments Llc Stored memory recovery system
JP4082614B2 (ja) * 2004-11-12 2008-04-30 インターナショナル・ビジネス・マシーンズ・コーポレーション データベース管理システム、データベース管理方法、及びプログラム
JP4583270B2 (ja) * 2005-08-16 2010-11-17 株式会社日立国際電気 記録装置
JP4514724B2 (ja) 2006-03-22 2010-07-28 株式会社日立国際電気 映像蓄積システム
DE102006018959B4 (de) * 2006-04-24 2018-12-20 Robert Bosch Gmbh Videoaufzeichnungssystem, Verfahren und Computerprogramm zur Speicherplatzverteilung in einem Videoaufzeichnungssystem
JP4312804B2 (ja) 2007-03-01 2009-08-12 株式会社日立国際電気 記録内容表示プログラム及び記録内容表示装置
JP4603603B2 (ja) * 2008-07-24 2010-12-22 株式会社日立国際電気 録画転送装置
JP5341209B2 (ja) 2009-12-25 2013-11-13 インターナショナル・ビジネス・マシーンズ・コーポレーション 階層型データベースにおけるポインタの整合性をチェックするためのシステム、方法及びプログラム
CN111399781B (zh) * 2020-04-21 2023-09-19 中国科学院光电技术研究所 一种提高实时图像记录系统可靠性的存储方法

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3183719B2 (ja) * 1992-08-26 2001-07-09 三菱電機株式会社 アレイ型記録装置
JP2570969B2 (ja) 1993-07-05 1997-01-16 日本電気株式会社 メモリ管理システム及び方法
JPH08235783A (ja) * 1995-02-28 1996-09-13 Sony Corp データレコーダ
JP3561083B2 (ja) * 1996-05-24 2004-09-02 株式会社東芝 データ配置制御方法及びビデオサーバ装置
JPH11282728A (ja) 1998-03-27 1999-10-15 Dainippon Screen Mfg Co Ltd 画像保存管理方法及び画像取扱い装置並びにプログラムを記録した記憶媒体
US6792198B1 (en) * 2000-06-06 2004-09-14 Lg Electronics Inc. Method and apparatus for recording digital data streams and management information
JP2001142772A (ja) 1999-11-16 2001-05-25 Oki Electric Ind Co Ltd メモリの名称による管理方法及び複写方法並びにメモリの名称による管理プログラムを記録した媒体及び複写プログラムを記録した媒体
US6636941B1 (en) * 2000-01-18 2003-10-21 International Business Machines Corporation Enhanced stable disk storage
JP3702231B2 (ja) * 2002-01-31 2005-10-05 株式会社東芝 ディスクアレイ装置及び同装置における動的記憶容量拡張方法
JP2004088284A (ja) 2002-08-26 2004-03-18 Sanyo Electric Co Ltd コンテンツ記録再生装置
JP4237549B2 (ja) * 2003-05-29 2009-03-11 株式会社日立国際電気 循環記録装置

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016088741A1 (ja) * 2014-12-01 2016-06-09 株式会社日立国際電気 映像記録装置および映像記録方法
JPWO2016088741A1 (ja) * 2014-12-01 2017-10-05 株式会社日立国際電気 映像記録装置および映像記録方法
US10789989B2 (en) 2014-12-01 2020-09-29 Hitachi Kokusai Electric Inc. Video recording apparatus and video recording method

Also Published As

Publication number Publication date
KR100653826B1 (ko) 2006-12-04
US20050076176A1 (en) 2005-04-07
JP2005092679A (ja) 2005-04-07
KR20050028815A (ko) 2005-03-23

Similar Documents

Publication Publication Date Title
JP4237549B2 (ja) 循環記録装置
DE69718355T2 (de) Aufzeichnungsverfahren zur Aufzeichnung audiovisueller Daten auf einer Platte und Informationsverarbeitungssystem
US6341278B1 (en) Recording and reproducing apparatus and method for accessing data stored on a randomly accessible recording medium, and for managing data thereon
JP3857381B2 (ja) 編集装置及びデータ記録媒体
GB2383859A (en) Memory controller managing a file allocation table for a memory card
JP4401132B2 (ja) 循環記録装置
EP0847055B1 (en) Video editing method, non-linear video editing apparatus, and video editing program storage medium
JP4256075B2 (ja) ファイルシステム及び記憶領域の管理方法
JP4478218B2 (ja) データ記録装置及びデータ記録媒体
US6516134B1 (en) Data recording/reproducing method and apparatus
JP4325194B2 (ja) 記憶媒体へのアクセスを管理する装置及び方法
EP1081596A1 (en) File managing device and its method, and data recording/reproducing device and its method
JPH08241230A (ja) データ管理方法およびデータ記録装置
JP4790643B2 (ja) 映像記録再生装置
WO2004049709A1 (ja) Avサーバーに蓄積されたavデータの参照システム及び方法
JP4274783B2 (ja) 記録装置
JP2009151838A (ja) データ処理装置及びデータ処理方法
JPH1011570A (ja) 電子ファイリング装置
JP4155878B2 (ja) 情報記録再生装置
JP4561323B2 (ja) 情報処理装置、情報処理方法、及びプログラム
US20010018683A1 (en) High-speed audio/video information server and magnetic disk device extension method thereof
JP2004274506A (ja) 半導体記憶装置及び編集システム
JP3714323B2 (ja) 編集システム及びavサーバーからのavデータのコピー方法
JP2000165794A (ja) 記録再生装置及び映像データ管理方式
JPH08212707A (ja) データ管理方法およびデータ記録装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060908

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20090427

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090512

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090708

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20090708

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20091013

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20091027

R150 Certificate of patent or registration of utility model

Ref document number: 4401132

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121106

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121106

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131106

Year of fee payment: 4

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees