(57)【要約】【課題】循環記録領域を有効に利用し、且つ、循環記録領域へのアクセス効率を向上した循環記録装置およびデータ蓄積配信システムを提供することにある。【解決手段】ディスク装置に確保されたメモリ領域３０を循環的に使用して時系列入力データを記録する循環記録装置において、時系列入力データを複数のサブブロック２２２からなる所定サイズのデータブロック２２０に編集し、データブロック単位でディスク装置に書込み、特定データの出力要求に応答して、上記ディスク装置からキャッシュメモリにサブブロック単位でデータを読出し、該サブブロックに含まれる特定データを選択的に出力する。【選択図】  図３
2004355724.tif 000002
【特許請求の範囲】
【請求項１】
記録装置に確保されたメモリ領域を循環的に使用して時系列入力データを記録する循環記録装置において、
時系列入力データを複数のサブブロックからなる所定サイズのデータブロックに編集し、データブロック単位で上記記録装置に書込む第１手段と、
特定データの出力要求に応答して、上記記録装置からキャッシュメモリにサブブロック単位でデータを読出し、該サブブロックに含まれる特定データを選択的に出力する第２手段とを備えたことを特徴とする循環記録装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、時系列データの蓄積に適した循環記録装置および画像蓄積配信システムに関し、特に複数系列の画像データの蓄積に適した循環記録装置および画像蓄積配信システムに関する。
【０００２】
【従来の技術】
遠隔監視システムでは、Ｗｅｂカメラ等の撮像装置で順次撮影された、即ち、複数のサイトから時系列的に入力される画像データを磁気ディスク（例えば、ハードディスク）、光ディスク、半導体ディスク等の大容量の記録装置に蓄積（記録または保存）すると共に、映像をネットワークを介して配信し、遠隔地にあるモニタ画面で監視できるようにしている。
【０００３】
画像データ記録装置の容量には制約があるため、此の種の監視システムでは、記録装置に確保されたメモリ領域を循環的に利用し、時系列的に最も旧い画像データを最新の画像データで順次に書き換える循環記録方式を採用することによって、過去分の所定量の画像データを保存して、再生できるようにしている。このような循環記録装置におけるメモリアドレス管理に関しては、周知の技術が幾つかある（例えば、特開平１１−２３２８４２号参照）。
【０００４】
【特許文献１】
特開平１１−２３２８４２号（第３−５頁、第１−１２図）
【０００５】
【発明が解決しようとする課題】
映像や音声のような時系列的なデータを記録装置に蓄積する場合、例えば、ＪＰＥＧ等の画像圧縮方式により、入力データ（画像フレーム）を圧縮した形でデータが記録される。画像フレームを圧縮すると、画像の状態によってフレーム毎にデータサイズが異なるため、記録装置に記録する際のデータブロックの取扱い方式、即ち、書込み方式が問題になってくる。
【０００６】
例えば、データブロックのサイズを圧縮画像フレームの上限サイズ（例えば、約６４ｋバイト）に設定し、画像フレーム毎に記録装置に書込む方式にすると、圧縮率が高い画像フレーム（例えば、１フレームサイズが１０ｋバイト等）ではデータブロックに空き（空きサイズ：５４ｋバイト＝６４ｋバイト−１０ｋバイト）が発生し、結果的に記録装置のディスク記録領域の利用効率が低下する。また、画像フレーム毎に書込むと、記録装置へのアクセス頻度が高くなる。従って、同一の記録装置に複数の循環記録領域を確保し、複数サイトからの画像データを同一の記録装置で記録しようとすると、上述したアクセス頻度の増加に起因して、記録装置に応答遅れが発生する。
【０００７】
時系列的に蓄積した固定長のＮフレーム（Ｎは自然数）分の圧縮画像データブロックをまとめて、大型化されたデータブロックを単位として記録装置への書込みを行なえば、上述したフレーム単位の書込みを行った場合と比較して、記録装置へのアクセス頻度を大幅に低減できる。しかしながら、この場合も、圧縮率のばらつきによってデータブロック内には各フレーム毎に空き領域が発生しているため、記録装置のディスク記録領域の利用効率は改善されない。また、画像再生のために記録装置から画像データブロックを読み出した時、読み出されたデータブロックには、フレーム毎に分散して空き領域が存在しているため、記録装置から読み出したデータ長の割には再生できるフレーム数が少なく、記録装置へのアクセス効率に問題を残している。
【０００８】
本発明の目的は、循環記録領域を有効に利用し、且つ、循環記録領域へのアクセス効率を向上した循環記録装置およびデータ蓄積配信システムを提供することにある。
本発明の他の目的は、特に複数サイトからの時系列データの蓄積に適した循環記録装置およびデータ蓄積配信システムを提供することにある。
本発明の更に他の目的は、特に複数系列の圧縮画像データの蓄積と配信に適した循環記録装置および画像蓄積配信システムを提供することにある。
【０００９】
【課題を解決するための手段】
上記目的を達成するため、本発明は、記録装置に確保されたメモリ領域を循環的に使用して時系列入力データを記録する循環記録装置において、時系列入力データを複数のサブブロックからなる所定サイズのデータブロックに編集し、データブロック単位で記録装置に書込む第１手段と、特定データの出力要求に応答して、上記記録装置からキャッシュメモリにサブブロック単位でデータを読出し、該サブブロックに含まれる特定データを選択的に出力する第２手段とを備えたことを特徴とする。
【００１０】
本発明によれば、上記各サブブロックを、例えば、記録装置のメモリ領域を形成するセクタサイズの整数倍のサイズにし、ヘッダ部に続けて複数単位の時系列データを記録し、端数となる末尾部分にのみデータ空き領域をもつ構造とすることによって、記録装置への書込み単位となる各データブロックと、読出し単位となるサブブロックの双方で、無駄なアクセスとなる空き領域の比率を低減することが可能となる。
【００１１】
また、記録装置からのデータ読出しを書き込み単位よりも短いサブブロック単位とすることによって、時系列データ内でランダム或いは離散的に選択されたデータの出力要求に対して、記録装置へのアクセス効率を向上させることが可能となる。尚、時系列データ内でシーケンシャルに選択されるデータの出力要求に対しては、上記サブブロックに代えて、データブロック単位での読出しを行なえばよい。
【００１２】
本発明の循環記録装置は、上記第１手段が、時系列入力データを蓄積して前記所定サイズのデータブロックに編集するための書込みキャッシュメモリを有し、上記第２手段が、前記キャッシュメモリおよび上記書込みキャッシュメモリに目的データが無かった時、記録装置からのサブブロック単位のデータ読出しを行なうことを更に他の特徴とする。
【００１３】
また、本発明による画像蓄積配信システムは、ネットワークを介して複数の撮像装置と少なくとも１つのクライアント装置に接続されており、上記各撮像装置に割当てられたチャネル番号と対応して、画像データを時系列に蓄積するための複数の循環記録領域をもつ記録装置と、上記各撮像装置から時系列的に受信した画像フレームを複数のサブブロックからなる所定サイズのデータブロックに編集し、各撮像装置のチャネル番号と対応する循環記録領域にデータブロック単位で書込むための第１手段と、チャネル番号を指定した上記クライアント装置からの画像フレームの送信要求に応答して、上記記録装置の上記チャネル番号と対応する特定の循環記録領域からキャッシュメモリ領域に、要求画像フレームを含む画像データをサブブロック単位で読出し、該サブブロックから要求画像フレームを抽出して上記クライアント装置に送信する第２手段を備えたことを特徴とする。
【００１４】
本発明の画像蓄積配信システムの他の特徴は、上記第２手段が、クライアント装置における画像の再生モードに応じて、要求画像フレームを含むサブブロック単位の画像読出しモードと、前記要求画像フレームを含むデータブロック単位の画像読出しモードの何れか選択し、上記循環記録領域からキャッシュメモリ領域への画像データの読出しを行なうことにある。
【００１５】
本発明の画像蓄積配信システムの更に他の特徴は、上記第１手段が、各撮像装置から時系列に受信した画像フレームを蓄積して所定サイズのデータブロックに編集するための複数の書込みキャッシュメモリ領域を有し、上記第２手段が、前記キャッシュメモリ領域および上記書込みキャッシュメモリ領域に要求画像フレームが無かった時、記録装置からの画像データの読出しを行なうようにしたことにある。
本発明のその他の特徴は、以下に説明する実施例から明らかになる。
【００１６】
【発明の実施の形態】
以下、本発明の実施例について、図面を参照して説明する。
図１は、本発明による循環記録方式が適用される画像蓄積配信システムの全体構成例を示す。
【００１７】
画像蓄積配信システムは、画像（音声を含む）データを蓄積するための記録装置（以降、ディスク装置と称する）３を備えた画像蓄積配信サーバ１と、ネットワーク４を介して上記画像蓄積配信サーバ１に接続された複数のＷｅｂカメラ５（５−１〜５−ｎ）および複数のクライアント端末６（６−１〜６−ｍ）からなる。ここで、ｎ及びｍは、自然数であり、ｎ＝ｍである必要はない。例えば、５−１はチャネル１（ＣＨ１）用のＷｅｂカメラ、５−２はチャネル２（ＣＨ２）用のＷｅｂカメラ、‥‥‥、５−ｎはチャネルｎ（ＣＨｎ）用のＷｅｂカメラである。
【００１８】
Ｗｅｂカメラ５−１〜５−ｎは、それぞれを特定できるチャネル番号を有し、撮影映像（撮影された画像）の各フレームを、例えば、ＪＰＥＧ等の画像圧縮方式で圧縮し、圧縮された画像データをＩＰパケット形式で画像蓄積配信サーバ１に送信する。この場合、圧縮された画像データは、１フレーム毎にデータ長が異なり、可変長となる。画像蓄積配信サーバ１は、Ｗｅｂカメラ５−１〜５−ｎからネットワークを介して受信した各パケットから圧縮された画像データ（以下、単に画像データと言う）を抽出し、ディスク装置３に予めチャネル別に確保された循環記録領域３０（３０−１〜３０−ｎ）に記録する（書込む）。
【００１９】
各クライアント端末６は、画像蓄積配信サーバ１に対して、チャネル番号とフレーム番号（後述）を指定して指定と対応する画像データの配信を要求する。画像蓄積配信サーバ１は、クライアント端末６−１〜６−ｍからの要求に応じて、ディスク装置３に蓄積された指定されたチャネル番号とフレーム番号の画像データ、またはキャッシュメモリに蓄積中の最新の画像データを読出し、ＩＰパケット形式で要求元のクライアント端末６に配信サービスする。
【００２０】
図２は、画像蓄積配信サーバ１の１実施例を示すブロック構成図である。
画像蓄積配信サーバ１は、プロセッサ１０と、プロセッサ１０が実行する各種のプログラムを記録（格納）したプログラム格納メモリ１１と、画像データのチャネル別蓄積とクライアントへの配信サービスに必要な各種テーブルが形成（格納）されるテーブル格納メモリ１２と、送受信画像フレームのバッファ領域および書込み／読出し画像データのキャッシュ領域として利用されるデータ格納メモリ１３からなる。また、画像蓄積配信サーバ１には、ネットワーク４に接続するためのネットワークインタフェース１４と、ＴＣＰ／ＩＰスタック１５と、ディスク装置３の接続インタフェースとなるファィバーチャネルドライバ１６およびファィバーチャネルインタフェース１７が備えられている。
【００２１】
図３は、本発明の画像蓄積配信サーバ１が行うディスク装置３への画像データの書込み動作と読出し動作を示す。
データのリード・ライト時に目的トラックへのシークアクセスを伴うハードディスクには、記録領域へのシーケンシャルなアクセスは高速に行える反面、ランダムなアクセスでは速度が低下すると言う特性がある。また、ディスクアクセスを効率的に行うためには、データ転送サイズをディスク装置３のセクタサイズの倍数にしておくことが望まれる。そこで、本発明では、Ｗｅｂカメラからフレーム単位で受信した画像データをチャネル別キャッシュメモリ（ディスク書込みキャッシュ領域）に順次に蓄積しておき、セクタサイズの整数倍のデータブロックに編集して、ブロック単位でディスク装置３への書込みを実行する。
【００２２】
すなわち、図３に示すように、ディスク装置３に定義されるチャネル別の循環記録領域３０−ｒｅｆを固定サイズの複数のブロックＢＬ１、ＢＬ２、ＢＬ３、ＢＬ４、ＢＬ５、ＢＬ６、ＢＬ７〜ＢＬｍａｘに区分けしておき、先頭ブロックＢＬ１から順にブロック単位で画像データを書込み、最終ブロックＢＬｍａｘへの画像データの書込みが終わると、次の画像データを先頭ブロックＢＬ１に書込むことによって、メモリ領域を循環的に利用した画像データ記録を実現する。ここで、ｒｅｆとｍａｘは自然数であり、１≦ｒｅｆ≦ｎである。
【００２３】
循環記録領域３０−ｒｅｆに書込まれるブロック単位の画像データは、データブロック毎にそれぞれデータ格納メモリ１３内でディスク書込みキャッシュ領域２２０のように形成されてから循環記録領域３０−ｒｅｆのブロックＢＬ１〜ＢＬｍａｘに書込まれる。ディスク書込みキャッシュ領域２２０は、ヘッダ２２１と、可変長の複数のサブブロック２２２（２２２−１〜２２２−ｒ）とからなる。ここで、ｒは自然数である。これらのサブブロックには、それぞれ複数フレームＦＬ１、ＦＬ２、ＦＬ３、・・・の画像データが記録されている。以下の説明では、このようなサブブロックを「パック」と呼ぶことにする。各パック２２２は、セクタサイズの整数倍の長さを有し、先頭位置には、パック内でのフレームの開始位置をバイト単位で示す位置情報と、望ましくはフレームの時刻情報とを示すパック内ヘッダ２２３が設定されている。
【００２４】
各パック２２２は、本実施例では、基本サイズＳの中に、ヘッダ２２３に続けて順次に画像フレームを記録して（書き込んで）いき、最後の画像フレーム（例えば、ＦＬ６）が基本サイズＳを超えた時、パック終端がセクタサイズの整数倍に位置するように空き領域２２４を設定する形式で構成する。従って、パックサイズは、基本サイズＳに近い可変長サイズとなっている。また、別の方法として、最後の画像フレーム（例えば、ＦＬ６）が基本サイズＳを超える時には、画像フレームＦＬ５から以降の領域を空き領域とし、この最後のフレームＦＬ６を次のパックに記録することでも良い。
【００２５】
一方、循環記録領域３０−ｒｅｆからの画像データの読出しには、クライアント端末からの指定フレームを含むパックを単位とした第１の読出しモードと、指定フレームを含むデータブロックを単位とした第２の読出しモードとを選択的に使い分ける。これは、クライアント端末で１倍速以下の画像再生または逆再生を行う場合、画像データをブロック単位で読出す第２モードが効率的となるが、クライアント端末で不連続に選択したランダムなフレームを再生する場合は、上記第２モードでは読出されたデータの多くが無駄になり、結果的にアクセス効率が低下するからである。
【００２６】
第１モードにおいて、例えば、クライアント端末がブロックＢＬｐに含まれる画像フレームＦＬｘを要求した場合、画像蓄積配信サーバ１は、循環記録領域３０−ｒｅｆから指定フレームＦＬｘを含むパック（ＰＡＣＫｑ）をディスク読出しキャッシュ領域２６０に読出し、パックＰＡＣＫｑから指定フレームＦＬｘを選択して、要求元のクライアント装置に配信する。
【００２７】
指定フレームが既にディスク読出しキャッシュ領域２６０に存在する場合は、循環記録領域３０−ｒｅｆからの画像データの読出しは不要となる。また、指定フレームがディスク書込みキャッシュ領域２２０に蓄積された状態にあれば、画像蓄積配信サーバ１は、ディスク書込みキャッシュ領域２２０から読み出した画像フレームを要求元のクライアント装置に配信する。
【００２８】
クライアント端末からのフレーム要求が、ブロック単位での読出しに適した再生モードを前提としていた場合は、上記第１モードに代えて第２モードを選択し、指定フレームを含む１ブロック分の画像データをディスク読出しキャッシュ領域２６０に読出す。この場合、その後の送信要求に対して、先読みされた画像データブロックの中から指定フレームを選択し、順次にクライアント端末に配信することが可能となる。
【００２９】
図４は、各データブロックに付されるヘッダ２２１の詳細と、循環記録領域のブロックＢＬ（例えば、ブロックＢＬｐ。ここで、ｐはｐ≦ｍａｘの自然数）に記録される画像データブロックとの関係を示す。
ヘッダ２２１は、少なくともデータブロックの先頭パックに含まれる先頭フレームのフレーム番号（先頭フレーム番号）２２１Ａと、状態フラグ２２１Ｂと、時刻情報２２１Ｃと、ブロック内パック情報２２１Ｄとから成る。時刻情報２２１Ｃには、データブロック内の先頭フレームの時刻情報が設定される。
【００３０】
ブロック内パック情報２２１Ｄは、データブロックを構成している複数のパックと対応した複数のフィールドからなる。最初のフィールドは、１つの値（例えば、８ビット等で構成される）からなり、データブロック内の先頭パックに含まれるフレーム数を示している。２番目以降の各フィールドは、２つの値（例えば、その第１の値が８ビット、第２の値が８ビット等で構成される）で構成し、第１の値は、パックの先頭セクタのアドレスを示す番号、第２の値は、パック内のフレーム数を示している。ブロック内パック情報２２１Ｄに用意できるフィールド数には制限があるため、結果的に各データブロックに含まれるパック数には上限がある。
【００３１】
図５は、本発明の画像蓄積配信サーバ１において、上述した画像データの書込みと読出しに関係する部分の機能ブロック図を示す。
本実施例では、データ格納メモリ１３（図２参照）に、チャネル数ｎと対応した複数の受信フレームバッファ２０（２０−１〜２０−ｎ）とディスク書込みキャッシュ２２（２２−１〜２２−ｎ）が形成される。即ち、チャネル番号１〜ｎ別に、受信フレームバッファ２０とディスク書込みキャッシュ２２とが形成される。また、上記データ格納メモリ１３に、クライアント端末数ｍと対応した複数の送信フレームバッファ２７（２７−１〜２７−ｍ）とディスク読出しキャッシュ２６（２６−１〜２６−ｍ）とが形成される。
【００３２】
Ｗｅｂカメラ５から送信された画像フレームパケットは、ネットワークインタフェース１４で受信され、ＴＣＰ／ＩＰスタック１５で画像フレームが抽出され、チャネル番号と対応した受信フレームバッファ２０（２０−１〜２０−ｎ）に入力される。受信フレームバッファ２０に入力された画像フレームは、チャネル番号と対応した受信スレッド２１（２１−１〜２１−ｎ）によって、ディスク書込みキャッシュ２２（２２−１〜２２−ｎ）に転送され、図３で説明したディスク書込みキャッシュ領域２２０のようにデータブロックとして形成される。
【００３３】
受信スレッド２１の実体は、プログラム格納メモリ１１に用意された受信画像フレーム処理用のプログラムである。本実施例では、図６で詳述するように、チャネル対応の各ディスク書込みキャッシュ２２が複数のキャッシュ領域で構成されている。各受信スレッドは、１つのキャッシュ領域でデータブロックの編集が完了すると、その後の受信フレームを別のキャッシュ領域で次のデータブロックを編集する。編集された各データブロックには、チャネル別にシーケンシャルなブロック番号が付与される。
【００３４】
各受信スレッド２１は、１つのデータブロックが完成すると、チャネル番号と、ブロック番号と、そのデータブロックが位置しているキャッシュ領域の識別子と、そのデータブロックをディスク装置３内に格納する先を示すディスク装置３内のアドレス（以下、ディスクアドレスと言う）とを示す制御ブロックを生成し、これを書込み待ちブロックキュー２３に登録する。チャネル番号とブロック番号から、ディスクアドレスへの変換を行うためのテーブルが、アドレス変換テーブル１８である。また、各受信スレッド２１は、完成したデータブロックが持つ図４に示したヘッダ２２１の内容をフレーム目次テーブル１９に格納する。
【００３５】
フレーム目次テーブル１９は、チャネル番号別の複数のテーブルからなり、上記ヘッダ２２１の内容は、チャネル対応の循環記録領域３０に保存中の画像フレームの索引情報として利用される。フレーム目次テーブル１９に格納される索引情報のエントリは、循環記録領域３０に保存（格納）されるデータブロックと対応している。従って、索引情報エントリは、フレーム目次テーブル１９のメモリ領域に循環的に格納（記録）される。
【００３６】
ディスク書込みスレッド２４（２４−１〜２４−Ｌ：但し、ＬはＬ≦ｎの自然数）の実体は、プログラム格納メモリ１１に用意されたデータブロック処理用のプログラムであり、それぞれ書込み待ちブロックキュー２３から制御ブロックを取り込み、該制御ブロックが示すチャネル番号とキャッシュ領域識別子に従って、ディスク書込みキャッシュ２２から１つのデータブロックを読出し、上記制御ブロックが示すディスクアドレスに従って、ディスク装置３内の特定の循環記録領域の特定のブロック位置にデータブロックを書込む。
【００３７】
配信スレッド２５（２５−１〜２５−ｍ）の実体も、プログラム格納メモリ１１に用意された送信データ処理用のプログラムであり、それぞれクライアント端末６（６−１〜６−ｍ）からの画像フレーム配信要求に応答して、第１モードまたは第２モードにより、ディスク装置３からディスク読出しキャッシュ２６へのパック単位またはブロック単位での画像データの読出し動作と、指定画像フレームの送信フレームバッファ２７（２７−１〜２７−ｍ）への転送動作を行う。送信フレームバッファ２７に入力された画像フレームは、ＴＣＰ／ＩＰスタック１５でＩＰパケットに変換され、ネットワークインタフェース１４を介してネットワークに送信される。
【００３８】
各クライアント端末６（６−１〜６−ｍ）は、画像蓄積配信サーバ１に対して、チャネル番号とフレーム番号を指定して画像フレームの配信を要求する。配信スレッド２５は、フレーム目次テーブル１９を参照して、クライアントからの要求画像フレームを含むブロックの番号とパック位置を特定し、アドレス変換テーブル１８から、上記チャネル番号とブロック番号に対応するディスクアドレスを特定する。第１モードの画像データ読出しは、上記ディスクアドレス、パック位置に基づいて行なわれ、第２モードの画像データ読出しは、上記ディスクアドレスに基づいて行なわれる。
【００３９】
図６は、第ｉ番目のチャネル（第ｉチャネル）用の受信用スレッド２１−ｉによるデータブロックの編集動作を示す。
本実施例では、第ｉチャネル用のディスク書込みキャッシュ２２−ｉとして、４個のキャッシュ領域２２０−１〜２２０−４が用意されている。キャッシュ領域の状態には、空き状態（ＳＴ０）、編集状態（ＳＴ１）、書込み待ち状態（ＳＴ２）、書込み完了状態（ＳＴ３）があり、各キャッシュ領域の現在の状態は、キャッシュ領域状態テーブル２２１−ｉに記録される。
【００４０】
受信スレッド２１−ｉは、キャッシュ領域状態テーブル２２１−ｉを参照して、ディスク書込みキャッシュ２２−ｉから空き状態（ＳＴ０）にあるキャッシュ領域を選択し、このキャッシュ領域の状態コードを編集状態ＳＴ１、即ち、このキャッシュ領域を編集できる状態に変更した後、画像フレームのデータブロックの編集を行う。空き状態（ＳＴ０）のキャッシュ領域が全くない場合は、書込み完了状態（ＳＴ３）にあるキャッシュ領域の中から、時刻情報２２１Ｃが最も古いデータブロックを含むキャッシュ領域を選択し、その状態コードを編集状態ＳＴ１に変更した後、該キャッシュ領域でデータブロックの編集を行う。
【００４１】
受信スレッド２１−ｉは、キャッシュ領域で１つのデータブロックの編集が完了すると、キャッシュ領域状態テーブル２２１−ｉ上で上記キャッシュ領域の状態コードをＳＴ１からＳＴ２に変更し、該キャッシュ領域に関する制御ブロックを生成して、書込み待ちブロックキュー２３に登録する。
【００４２】
ディスク書込みスレッド２４−ｉは、書込み待ちブロックキュー２３から先頭の制御ブロックを取り出し、該制御ブロックに従って、ディスク書込みキャッシュ２２−ｉから、書込み待ち状態（ＳＴ２）にあるキャッシュ領域のデータブロックを読み出し、ディスク装置３の第ｉチャネル用の循環記録領域３０−ｉに上記データブロックを書き込む。この後、キャッシュ領域状態テーブル２２１−ｉ上で、ディスク装置への書込みが完了したキャッシュ領域の状態コードをＳＴ２からＳＴ３に変更して、１つのデータブロックの書込み処理を終了する。
【００４３】
ディスク書込みスレッド２４−ｉによるデータブロックの書込み所要時間は、受信スレッド２１―ｉによるデータブロック生成に比較して短いため、チャネル数ｎよりも少ない個数Ｌのディスク書込みスレッド２４（２４−１〜２４−Ｌ）で、ディスク書込みキャッシュ２２の全チャネルのデータブロックをディスク装置３に書込むこともできる。本実施例では、ディスク書込みキャッシュ２２−ｉに４個のキャッシュ領域２２０−１〜２２０−４を用意したが、キャッシュ領域は、各チャネルに少なくとも２個あればよく、その最大数は任意である。
【００４４】
図７は、クライアント端末６−ｊからの画像フレーム配信要求に応答して配信スレッド２５−ｊが実行する第１モードの画像データ読出し動作と画像フレーム配信動作を示す。ここで、ｊは、ｊ≦ｍの自然数である。
本実施例では、クライアント端末６−ｊ用のディスク読出しキャッシュ２６−ｊとして４個のキャッシュ領域２６０−１〜２６０−４が用意されている。また、各キャッシュ領域と、そこに読出される画像データブロックとの対応関係を判断するために、配信用スレッド２５−ｊは、キャッシュ領域管理テーブル２６１−ｊに、キャッシュ領域の識別子と対応して、フレーム目次テーブルから得られる読出しデータブロックの索引情報と、各キャッシュメモリ領域の最終アクセス時刻を登録している。
【００４５】
ディスク読出しキャッシュ２６−ｊは、図７に示すように、クライアント端末毎に複数のキャッシュ領域２６０−１〜２６０−４を有し、複数ブロック分の画像データを読み出せるようになっている。但し、第１モードでは、斜線で示すように、各キャッシュ領域にパック単位で画像データが読み出されるため、要求フレームの属するデータブロックに既にキャッシュ領域が割り当て済みとなっていた場合でも、要求フレームそのものを含むパックがキャッシュ領域に存在するとは限らない。
【００４６】
配信スレッド２５−ｊは、クライアント端末６−ｊから画像フレームの配信要求メッセージを受信すると、受信されたメッセージからチャネル番号ｋと要求フレーム番号ｘとを抽出する。ここで、ｋは、自然数で、１≦ｋ≦ｎある。次に、これらのチャネル番号ｋと要求フレーム番号ｘに従ってフレーム目次テーブル１９を参照し、要求フレーム番号が循環記録領域３０−ｋまたはディスク書込みキャッシュ２２−ｋに保存中のものか否かを判定する。
【００４７】
要求フレーム番号ｘが、フレーム目次テーブル１９が示すアクセス可能な最古のフレーム番号よりも古い場合は、要求フレーム番号を最古のフレーム番号に置き換え、逆に、アクセス可能な最新フレーム番号よりも新しい場合は、要求フレーム番号を最新フレーム番号に置き換えた後、要求フレームがディスク書込みキャッシュ２２−ｋまたはディスク読出しキャッシュ２６−ｊに存在するか否かをチェックする。
【００４８】
ディスク書込みキャッシュ２２−ｋにおける要求フレームの有無は、キャッシュ領域に蓄積された各データブロックのヘッダ２２１をチェックすることによって判明する。また、ディスク読出しキャッシュ２６−ｊにおける要求フレームの有無は、キャッシュ領域管理テーブルに登録された索引情報から、要求フレームを含むデータブロックがキャッシュ領域２６０−１〜２６０−４の何れかに割り当て済みか否かを判定し、もし、割り当て済みの場合、上記索引情報の一部となっているブロック内パック情報２２１Ｄから、データブロック内での要求フレーム包含パックの位置を特定し、該当キャッシュ領域の特定位置にパックデータが読出し済みか否かを判定すればよい。
【００４９】
要求フレームが上記何れかのキャッシュに存在していた場合は、配信用スレッド２５−ｊは、要求フレーム番号ｘをもつ画像フレームＦＬｘをキャッシュから読み出し、フレームバッファ２７−ｊに複写する。上記画像フレームＦＬｘをディスク読出しキャッシュ２６−ｊから読み出した場合、配信用スレッド２５−ｊは、キャッシュ領域管理テーブル２６１−ｊに登録されている上記データブロックを保持するキャッシュ領域の最終アクセス時刻の値を最新のアクセス時刻（現在時刻）に更新しておく。
【００５０】
要求フレームに該当するデータブロックがキャッシュ領域２６０−１〜２６０−４の何れかに割り当て済みで、要求フレーム包含パックがキャッシュ領域に未だ読み出されていなかった場合、配信用スレッド２５−ｊは、チャネル番号ｋと対応するディスク装置３の循環記録領域３０−ｋから、要求フレーム包含パックを読出し、割り当てキャッシュ領域の該当位置に格納した後、要求フレームをフレームバッファ２７−ｊに複写する。この場合も、キャッシュ領域管理テーブル２６１−ｊに登録されている上記データブロックを保持するキャッシュ領域の最終アクセス時刻の値を最新のアクセス時刻に更新する。
【００５１】
要求フレームに該当するデータブロックが、書込みキャッシュ２２−ｋにも読出しキャッシュ２６−ｊにも存在しなかった場合、配信用スレッド２５−ｊは、読出しキャッシュ２６−ｊから未使用状態にあるキャッシュ領域を見つけ、該キャッシュ領域をクリアした後、これを要求フレームのデータブロック読出し領域に割り当て、ディスク装置から要求フレーム包含パックを読出す。読出しキャッシュ２６−ｊに未使用状態のキャッシュ領域がなかった場合、配信用スレッド２５−ｊは、キャッシュ領域管理テーブル２６１−ｊから最終アクセス時刻の値が最も古いキャッシュ領域を見つけ、該キャッシュ領域をクリアした後、これを要求フレームのデータブロック読出し領域に割り当て、ディスク装置から要求フレーム包含パックを読出す。
【００５２】
尚、ここで言うデータブロック読出し領域の割り当ては、キャッシュ領域管理テーブル２６１−ｊにおいて、割り当てキャッシュ領域の識別子と対応して、フレーム目次テーブル１９から求めた新たなデータブロックの索引情報を登録し、該キャッシュ領域の最終アクセス時刻の値を最新のアクセス時刻とすることを意味している。
【００５３】
図７では、循環記録領域からパック単位で画像データを読み出す第１モードの読出し動作について説明したが、既に述べたように、クライアント端末からのフレーム要求が、１倍速以下の画像再生または逆再生を前提としていた場合は、ブロック単位で画像データを読み出す第２モードを選択し、読出しキャッシュ２６−ｊに先読みされた画像フレームを順次に要求元クライアント端末に配信すればよい。
【００５４】
クライアント端末の動作モードは、クライアント端末６−ｊからの画像フレーム配信要求メッセージで明示するようにしてもよいし、配信用スレッド２５−ｊが、クライアント端末６−ｊからの前回の要求フレーム番号と新たな要求フレーム番号とを比較することによって動作モードを推定するようにしてもよい。
【００５５】
クライアント端末における遠隔監視では、例えば、現在のモニタ中の画面から或る時間遡った画面にジャンプし、この画面を起点にして１倍速の画像再生または逆再生を行なうことが多い。本発明によれば、要求フレームが新たな画面にジャンプした時は、第１モードのパック単位の読出しを実行し、該パック内のフレームについてシーケンシャルアクセスが終った時、次の画像データ読出しを第１、第２モードの何れで行なうかを選択すればよい。次のパックがデータブロックの終端に近ければ、第１モードによるパック単位の読出しが有利となるが、データブロックの開始部分または中央部に位置していた場合は、第２モードに切替えて、ブロック単位のデータ読出しを行なうことにより、その後のディスクアクセス回数を抑制することが可能となる。
【００５６】
実施例では、クライアント端末からの指定フレームを含むパックを単位とした第１の読出しモードと、指定フレームを含むデータブロックを単位とした第２の読出しモードの切り替えを、クライアントの１倍速の画像再生または逆再生としているが、１倍速という値は目安であり、ディスク装置３の第１モードのパック単位の読出し速度と、第２モードのブロック単位の読出し速度との関係によって変わる値である。例えば、同一ブロック内の２個のパックを読み出すより１つのブロックを読み出すほうが速い場合には、クライアントからのフレーム要求が１ブロック内の２パック以上となる再生速度では第２モードとし、２パック未満では第１モードを選択するようにしてもよい。
【００５７】
実施例では、チャネルと対応した複数の受信用スレッド２１によりデータブロックを編集し、クライアント端末と対応した複数の配信用スレッド２５によりディスク装置からの時系列データの読出しを行なっているが、１つの受信用スレッド２１で複数のチャネルに対応し、１つの配信用スレッド２５で複数クライアントに対応するようにしてもよい。
【００５８】
【発明の効果】
以上の実施例から明らかなように、本発明によれば、時系列入力データを複数のサブブロックからなる所定サイズのデータブロックに編集し、データブロック単位でディスク装置に書込み、ブロック単位とサブブロック単位の何れか選択的にデータを読出すようにしているため、ディスクのアクセス効率を改善した循環記録装置および画像蓄積配信システムを提供することができる。
【図面の簡単な説明】
【図１】本発明を適用する画像蓄積配信システムの全体構成図。
【図２】画像蓄積配信サーバ１の１実施例を示すブロック構成図。
【図３】画像蓄積配信サーバ１が行うディスク装置への画像データの書込み動作と読出し動作を示す図。
【図４】データブロックに付されるヘッダの詳細と、循環記録領域の各ブロックに記録される画像データとの関係を示す図。
【図５】画像蓄積配信サーバ１における画像データの書込みと読出しに関係する部分の機能ブロック図。
【図６】受信用スレッド２１−ｉによるデータブロックの編集動作を示す図。
【図７】配信用スレッド２５−ｊによる画像データの読出し動作と画像フレームの配信動作を示す図。
【符号の説明】
１：画像蓄積配信サーバ、３：ディスク装置、４：ネットワーク、５：Ｗｅｂカメラ、６：クライアント端末、１０：プロセッサ、１１：プログラム格納メモリ、１２：テーブル格納メモリ、１３：データ格納メモリ、１４：ネットワークインタフェース、１５：ＴＣＰ／ＩＰスタック、１６：ファイバーチャネルドライバ、１７：ファイバーチャネルインタフェース、２０：受信フレームバッファ、２１：受信用スレッド、２２：ディスク書込みキャッシュ、２３：書込み待ちブロックキュー、２４：ディスク書込みスレッド、２５：配信用スレッド、２６：ディスク読出しキャッシュ、２７：送信フレームバッファ、３０：循環記録領域、２２０：データブロック、２２１：ヘッダ、２２２：パック（サブブロック）。
【図１】
2004355724.tif 000003
【図２】
2004355724.tif 000004
【図３】
2004355724.tif 000005
【図４】
2004355724.tif 000006
【図５】
2004355724.tif 000007
【図６】
2004355724.tif 000008
【図７】
2004355724.tif 000009