(57)【要約】【課題】データを多重化させることでデータの信頼性を向上させつつ、複数の動画データ等のリアルタイム性を要求されるストリームデータを同時、高速に記録、再生することができるようにする。【解決手段】ストリーム記録再生システムにおいて、第１〜第ｍのカメラ１４１〜１４ｍまたは第１〜第ｎの端末装置１６１〜１６ｎから受領したストリームデータの記録及び再生要求に対して１台のデータ記憶装置にかかる読み出し負荷と書き込み負荷とを分散するとともに、データを２台のデータ記憶装置に二重化して記録するようにして、記録されたデータの冗長性を確保しながら、複数のストリームデータを同時、高速に記録、再生することができるようにする。【選択図】図１
2007281972.tif 000002
【特許請求の範囲】
【請求項１】
３つ以上のデータ記憶装置を有し、上記３つ以上のデータ記憶装置のうち、２つ以上のデータ記憶装置にデータを多重化して記録するストリームデータ記録再生装置であって、
１つの再生要求に対して、上記再生要求が再生を要求するストリームデータが書き込まれている２つ以上のデータ記憶装置のうち、何れか１つのデータ記憶装置を上記ストリームデータを読み出すデータ記憶装置として割り当てる読み出しデータ記憶装置割当手段と、
上記読み出しデータ記憶装置割当手段が上記ストリームデータを読み出すデータ記憶装置を全ての再生要求に対して割り当てた後、上記割り当てられたデータ記憶装置のうち、読み出しまたは書き込みの数が少ないものを優先して２つ以上のデータ記憶装置を、上記ストリームデータを書き込むデータ記憶装置として全ての記録要求に対して割り当てる書き込みデータ記憶装置割当手段と、
上記読み出しデータ記憶装置割当手段により割り当てられたデータ記憶装置から上記ストリームデータを読み出すデータ再生手段と、
上記書き込みデータ記憶装置割当手段により割り当てられた２つ以上のデータ記憶装置の各々に上記ストリームデータを書き込むデータ記録手段とを有することを特徴とするストリームデータ記録再生装置。
【請求項２】
上記読み出しデータ記憶装置割当手段は、上記割り当てられたデータ記憶装置のうち、読み出しの数が最少のデータ記憶装置を、ストリームデータを書き込むデータ記憶装置として全ての再生要求に対して割り当てることを特徴とする請求項１に記載のストリームデータ記録再生装置。
【請求項３】
３つ以上のデータ記憶装置を有し、上記３つ以上のデータ記憶装置のうち、２つ以上のデータ記憶装置にデータを多重化して記録するストリームデータ記録装置であって、
１つの再生要求に対して、上記再生要求が再生を要求するストリームデータが書き込まれている２つ以上のデータ記憶装置のうち、何れか１つのデータ記憶装置を上記ストリームデータを読み出すデータ記憶装置として割り当てる読み出しデータ記憶装置割当手段と、
上記読み出しデータ記憶装置割当手段が上記ストリームデータを読み出すデータ記憶装置を全ての再生要求に対して割り当てた後、上記割り当てられたデータ記憶装置のうち、読み出しまたは書き込みの数が少ないものを優先して２つ以上のデータ記憶装置を、上記ストリームデータを書き込むデータ記憶装置として全ての記録要求に対して割り当てる書き込みデータ記憶装置割当手段と、
上記書き込みデータ記憶装置割当手段により割り当てられた２つ以上のデータ記憶装置の各々に上記ストリームデータを書き込むデータ記録手段とを有することを特徴とするストリームデータ記録装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はストリームデータ記録再生装置及びストリームデータ記録装置に関し、例えば３台以上のデータ記憶装置を備えたものに関する。
【背景技術】
【０００２】
近年、動画データや音声データなどを従来のテープメディアに代えて、ハードディスクドライブに記憶するストリームデータ記録再生装置が広く普及しつつある。ハードディスクドライブはランダムアクセス性に優れているため、所望のコンテンツを瞬時に再生したり、記録のための空き領域を速やかに探し出したりすることができるなど、従来のテープメディアにはない使い勝手の良さを有している。
【０００３】
またパーソナルコンピュータ（以下、ＰＣ）等の情報機器においても、チューナーやコーデック（ＣＯＤＥＣ）ＬＳＩを搭載して、動画データ等を内蔵／外付けハードディスクドライブに記憶する機能を備えた機種が多数市販されている。
【０００４】
動画データ等は連続的なデータであり、単にデータが誤りなく記憶媒体上に記憶されるだけでは十分でなく、時間軸上の記録・再生速度、すなわちデータの転送速度が所定値以上に維持される必要がある。特に動画データは高精細、大画面の要望により、ますます大容量化、高データ転送レート化する傾向にあり、加えて複数の動画データの記録・再生を同時に扱うことも要求されている。このことから、動画データ等を記憶するハードディスクドライブには高いデータ転送性能が望まれている。
【０００５】
一方、ハードディスクドライブは機構部品であることから、ＰＣ等の電子機器を構成する部品としては、比較的寿命の短い部品の一つである。記憶を担う部品の故障は、単に装置が機能しないというだけに留まらず、蓄積しておいた情報を喪失してしまうことになるので、高い信頼性を確保する必要がある場合には何らかの対策が必要となってくる。
【０００６】
信頼性を向上させるために、複数のディスクドライブを備え上位装置からの書き込みに対して、複数のディスクドライブに同一のデータを重複して書き込み、データを二重化（あるいは３以上の多重化）したデータ記録再生装置が知られている。しかしながらこのようにデータを多重化させたデータ記録再生装置においては、その動作速度は１台のディスクドライブを用いたデータ記録再生装置と概ね同等か、場合によっては小さくなってしまうことが知られている。
【０００７】
そこでデータを多重化させたデータ記録再生装置の動作速度を改善する工夫が、従来提案されている。例えば、特許文献１には、データの記憶を複数のハードディスク装置に分散させて高速化を図るとともに、分散させた個々のハードディスク装置をミラーリング構成にして、冗長化による信頼性を確保したデータアクセス装置が開示されている。
【０００８】
【特許文献１】特開平７−３０２１７３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００９】
しかし、特許文献１に開示されている例では少なくとも４台以上のディスクドライブを必要とする。さらには、データアクセス装置に多数のデータ記録および再生要求がある場合、ディスクドライブの各々に対して多数の読み出し、書き込みアクセスが発生して、ヘッドシーク動作およびディスク回転待ち時間による大きなオーバーヘッドが発生する。これによって、記録／再生速度の低下を招くため、それをカバーするためにより多くのディスクドライブが必要となり、装置の低コスト化、小型化には著しく不利となる。
【００１０】
本発明は前述の問題点に鑑み、データを多重化させることでデータの信頼性を向上させつつ、複数の動画データ等のリアルタイム性を要求されるストリームデータを同時、高速に記録、再生することができるようにすることを目的としている。
【課題を解決するための手段】
【００１１】
本発明のストリームデータ記録再生装置においては、３つ以上のデータ記憶装置を有し、上記３つ以上のデータ記憶装置のうち、２つ以上のデータ記憶装置にデータを多重化して記録するストリームデータ記録再生装置であって、１つの再生要求に対して、上記再生要求が再生を要求するストリームデータが書き込まれている２つ以上のデータ記憶装置のうち、何れか１つのデータ記憶装置を上記ストリームデータを読み出すデータ記憶装置として割り当てる読み出しデータ記憶装置割当手段と、上記読み出しデータ記憶装置割当手段が上記ストリームデータを読み出すデータ記憶装置を全ての再生要求に対して割り当てた後、上記割り当てられたデータ記憶装置のうち、読み出しまたは書き込みの数が少ないものを優先して２つ以上のデータ記憶装置を、上記ストリームデータを書き込むデータ記憶装置として全ての記録要求に対して割り当てる書き込みデータ記憶装置割当手段と、上記読み出しデータ記憶装置割当手段により割り当てられたデータ記憶装置から上記ストリームデータを読み出すデータ再生手段と、上記書き込みデータ記憶装置割当手段により割り当てられた２つ以上のデータ記憶装置の各々に上記ストリームデータを書き込むデータ記録手段とを有することにより上記課題を解決する。
【００１２】
また、上記読み出しデータ記憶装置割当手段は、上記割り当てられたデータ記憶装置のうち、読み出しの数が最少のデータ記憶装置を、ストリームデータを書き込むデータ記憶装置として全ての再生要求に対して割り当てるようにしてもよい。
【００１３】
また、本発明のストリームデータ記録装置は、３つ以上のデータ記憶装置を有し、上記３つ以上のデータ記憶装置のうち、２つ以上のデータ記憶装置にデータを多重化して記録するストリームデータ記録装置であって、１つの再生要求に対して、上記再生要求が再生を要求するストリームデータが書き込まれている２つ以上のデータ記憶装置のうち、何れか１つのデータ記憶装置を上記ストリームデータを読み出すデータ記憶装置として割り当てる読み出しデータ記憶装置割当手段と、上記読み出しデータ記憶装置割当手段が上記ストリームデータを読み出すデータ記憶装置を全ての再生要求に対して割り当てた後、上記割り当てられたデータ記憶装置のうち、読み出しまたは書き込みの数が少ないものを優先して２つ以上のデータ記憶装置を、上記ストリームデータを書き込むデータ記憶装置として全ての記録要求に対して割り当てる書き込みデータ記憶装置割当手段と、上記書き込みデータ記憶装置割当手段により割り当てられた２つ以上のデータ記憶装置の各々に上記ストリームデータを書き込むデータ記録手段とを有することを特徴とする。
【発明の効果】
【００１４】
本発明によれば、ストリームデータの記録および再生要求に対して１台のデータ記憶装置にかかる読み出し負荷と書き込み負荷とを分散するとともに、データを複数のデータ記憶装置に多重化して記録することで、記録されたデータの冗長性を確保しながら、複数の動画データ等のリアルタイム性を要求されるストリームデータを同時、高速に記録、再生することのできるストリームデータ記録再生装置をより少数のディスクドライブでもって実現することができる。
【発明を実施するための最良の形態】
【００１５】
（第１の実施形態）
図１は、本実施形態のストリームデータ記録再生装置（以下、記録再生装置と略す）１００を説明するためのストリームデータ記録再生システムの一例を示すブロック図である。
【００１６】
ストリームデータ記録再生システムは、記録再生装置１００、第１〜第ｍのネットワークカメラ（以下、カメラ）１４１〜１４ｍ、第１〜第ｎのネットワーク端末装置（以下、端末装置）１６１〜１６ｎ、ネットワークハブ（ＨＵＢ）１８０とからなる。そして、第１〜第ｍのネットワークカメラ１４１〜１４ｍが撮影した画像（ストリームデータ）を記録再生装置１００に記録・蓄積し、ユーザの要求に応じて第１〜第ｎのネットワーク端末装置１６１〜１６ｎに配信する。
【００１７】
記録再生装置１００は、マイクロプロセッサ（ＭＰＵ）１０１、読み出し専用メモリ（ＲＯＭ）１０２、ランダム・アクセス・メモリ（ＲＡＭ）１０３、ハードディスク・インターフェース（ＨＤＤ・Ｉ／Ｆ）回路１０４、ネットワーク・インターフェース（Ｉ／Ｆ）回路１０５、第１〜第３のハードディスク１２１〜１２３とからなる。そして、第１〜第ｍのカメラ１４１〜１４ｍから受領したストリームデータを記録・蓄積し、第１〜第ｎの端末装置１６１〜１６ｎに配信する。
【００１８】
ＭＰＵ１０１はＲＯＭ１０２に記憶されたプログラムを実行することにより、接続されたデバイスの制御とデータ演算処理を行う。ＲＯＭ１０２はＭＰＵ１０１で実行されるプログラムを記憶する。ＲＡＭ１０３はＭＰＵ１０１がプログラムを実行する際に一時的にデータを記憶する主記憶装置であるとともに、ネットワークＩ／Ｆ回路１０５を介してネットワークから／へ受領／送出されるデータをバッファリングする。
【００１９】
ＨＤＤ・Ｉ／Ｆ回路１０４はＭＰＵ１０１の第１〜第３のＨＤＤ１２１〜１２３の制御とＨＤＤ１２１〜１２３へ／からのデータの入出力をインターフェースする。ネットワークＩ／Ｆ回路１０５はネットワークから／へのデータの入出力をインターフェースする。第１〜第３のＨＤＤ１２１〜１２３はＨＤＤ・Ｉ／Ｆ回路１０４を介して入力されたデータを内部に備えた磁気ディスク記憶媒体に記録し、記憶する。なお、本実施形態においては、ＨＤＤは３台であるものとして説明するが、本発明はこれに限定されるものではなく、ＨＤＤは３台以上であれば、任意の台数であってよい。
【００２０】
第１〜第ｍのカメラ１４１〜１４ｍは（連続的に）画像を撮影し、それらをストリームデータとしてネットワークに配信するとともに、記録再生装置１００にコマンドを発行してそれらの記録を要求する。
【００２１】
第１〜第ｎの端末装置１６１〜１６ｎは第１〜第ｍのカメラ１４１〜１４ｍから配信されたストリームデータを受領する。さらに、記録再生装置１００にコマンドを発行して内部に記録、蓄積されたストリームデータの再生、配信を要求し、受領したストリームデータを表示装置に表示する。第１〜第ｎの端末装置１６１〜１６ｎは、例えばパーソナルコンピュータとディスプレイである。ＨＵＢ１８０はネットワーク上を流れるデータの経路を制御する。
【００２２】
ここで、記録再生装置１００がストリームデータの記録／再生処理を行う上で使用する各種テーブル（図２〜図７）について説明する。
ＭＰＵ１０１はストリームデータの記録／再生にかかるプログラムを実行する際、ＲＡＭ１０３上にこれらのテーブルに必要な領域を確保する。また、これらのテーブルの内、図５に示す記録位置管理テーブル５００、図６に示すＨＤＤ空き領域管理テーブル６００は第１〜第３のＨＤＤ１２１〜１２３または図示しない不揮発性メモリに不揮発に保持される。
【００２３】
図２に示すコマンド・キューイング・メモリ２００には第１〜第ｍのカメラ１４１〜１４ｍまたは第１〜第ｎの端末装置１６１〜１６ｎから受領したストリームデータの記録／再生にかかるコマンドがキューイングされている。ここで、図２に示すコマンドについて説明する。
【００２４】
再生許可要求コマンドは、記録再生装置１００にストリームデータの再生の許可とストリームＩＤの発行を要求するコマンドである。記録許可要求コマンドは、記録再生装置１００にストリームデータの記録の許可とストリームＩＤの発行を要求するコマンドである。
【００２５】
再生コマンドは、先に発行したストリーム再生要求コマンドへの応答として受領したストリームＩＤとファイル名、再生開始ブロック番号を指定して、記録再生装置１００にストリームデータの再生を要求するコマンドである。
【００２６】
記録コマンドは、先に発行したストリーム記録要求コマンドへの応答として受領したストリームＩＤとファイル名を指定して、記録再生装置１００にストリームデータの記録を要求するコマンドである。記録／再生停止コマンドは、ストリームＩＤを指定して、記録再生装置１００にストリームデータの記録／再生の停止を要求するコマンドである。
【００２７】
図３に示す処理能力テーブル３００は、記録再生装置１００が同時に処理可能な再生ストリーム数と記録ストリーム数との組み合わせを示す。処理可能なストリーム数は、ＨＤＤの台数、ＨＤＤ一台当たりに設定された最大ストリーム数、データの多重化数により決定される。
【００２８】
本実施形態においては、ＨＤＤ台数、ＨＤＤ一台当たりに設定された最大ストリームデータ数、データ多重化数はそれぞれ３台、２本、２として説明する。ところが、本発明はこれに限定されるものではなく、ＨＤＤ台数は３台以上、データ多重化数は２以上であれば、任意の構成、設定であってよい。
【００２９】
図４に示すコマンド管理テーブル４００は再生コマンド管理テーブルと記録コマンド管理テーブルとからなる。再生コマンド管理テーブルは、これから処理を行うまたは現在処理中のコマンドとその進行状態を示す。記録コマンド管理テーブルは、これから処理を行うまたは現在処理中のコマンドとその進行状態を示す。したがって、コマンド管理テーブル４００はコマンドの実行にあたって随時更新される。
【００３０】
図５に示す記録位置管理テーブル５００は、記録再生装置１００に記録されたファイルの記録位置を示す。ファイルはそれを構成する（複数の）所定の大きさのブロック毎に記録位置が記憶される。記録位置はＨＤＤとＨＤＤ内の論理アドレス（ＬＢＡ）を一組として記憶され、この組がデータ多重化数分だけ記憶される。
【００３１】
例えば、図５において、ファイルＡは３つのブロックからなる。例えば、ブロック番号０ｘ０１のブロックはＨＤＤ１２１のＬＢＡ０ｘ０１００−０ｘ０１ＦＦ（記録位置０）と、ＨＤＤ１２３の０ｘ００００−０ｘ００ＦＦとに二重化されて記録されていることを示す。
【００３２】
図６に示すＨＤＤ空き領域管理テーブル６００は、個々のＨＤＤについてＨＤＤ内のＬＢＡと空き領域の関係を示す。図６においては、空き領域を「０」、既使用領域を「１」として表現している。
【００３３】
図７に示すＨＤＤ割り当てテーブル７００は、ストリームＩＤとそのストリームＩＤを有する記録／再生コマンドに対してデータの書き込み／読み出しを実行するＨＤＤとして割り当てられたＨＤＤを示す。図７においては、個々のストリームＩＤを有する記録／再生コマンドに割り当てられたＨＤＤを「１」として表現している。
【００３４】
次に、本実施形態の記録再生装置１００のストリームデータの第１〜第３のＨＤＤ１２１〜１２３へ／からの記録／再生処理について説明する。本実施形態においては、ストリームデータのＨＤＤ１２１〜１２３へ／からの記録／再生処理はＭＰＵ１０１がＲＯＭ１０２に記憶されたプログラムを読み出し、実行することによりなされるものとして説明する。ところが、本発明はこれに限定されるものではなく、その一部の処理が例えば別のＭＰＵによってなされたり、あるいはハードウェア化されて例えばＨＤＤ・Ｉ／Ｆ回路１０４に実装されていたりしてもよい。
【００３５】
図８〜１０に、記録再生装置１００のストリームデータの第１〜第３のＨＤＤ１２１〜１２３へ／からの記録／再生処理のフローチャートを示す。
ステップＳ８００において、ＭＰＵ１０１はコマンド・キューイング・メモリ２００を参照し、ステップＳ８０１に進む。
【００３６】
ステップＳ８０１において、ＭＰＵ１０１はコマンド・キューイング・メモリ２００にコマンドがキューイングされているか否かを判別する。この判別の結果、コマンドがキューイングされている場合は、ステップＳ８０２に進む。一方、ステップＳ８０１の判別の結果、コマンドがキューイングされていない場合は、図９におけるステップＳ９００に進む。
【００３７】
なお、第１〜第ｍのカメラ１４１〜１４ｍまたは第１〜第ｎの端末装置１６１〜１６ｎから受領したコマンドのキューイングは、例えばストリームデータの第１〜第３のＨＤＤ１２１〜１２３へ／からの記録／再生処理とは別に実行されるネットワークから／へのデータの入出力にかかるＭＰＵ１０１のプロセスまたは他の図示しないＭＰＵのプロセスによってなされる。
【００３８】
ステップＳ８０２において、ＭＰＵ１０１はコマンド・キューイング・メモリ２００から最上位にあるコマンドを一つ読み出し、ステップＳ８０３に進む。ステップＳ８０３において、ＭＰＵ１０１は読み出したコマンドの種別が記録許可要求コマンドまたは再生許可要求コマンドであるか否かを判別する。この判別の結果、読み出したコマンドが記録許可要求コマンドまたは再生許可要求コマンドである場合は、ステップＳ８０６に進む。
【００３９】
一方、ステップＳ８０３の判別の結果、読み出したコマンドが記録許可要求コマンドまたは再生許可要求コマンドでない場合は、ステップＳ８０４に進み、読み出したコマンドが記録コマンドまたは再生コマンドである否かを判別する。この判別の結果、読み出したコマンドが記録コマンドまたは再生コマンドである場合は、ステップＳ８２１に進む。
【００４０】
一方、ステップＳ８０４の判別の結果、読み出したコマンドが記録コマンドまたは再生コマンドでない場合は、ステップＳ８０５に進み、読み出したコマンドが記録／再生停止コマンドであるか否かを判別する。この判別の結果、読み出したコマンドが記録／再生停止コマンドである場合は、ステップＳ８４１に進む。一方、ステップＳ８０５の判別の結果、読み出したコマンドが記録／再生停止コマンドである場合は、ステップＳ８１１に進む。
【００４１】
ステップＳ８０６において、ＭＰＵ１０１は処理能力テーブル２００とコマンド管理テーブル４００とを比較する。そして、ステップＳ８０７において、読み出したコマンドが処理可能か否かを判別する。この判別の結果、読み出したコマンドが処理可能である場合は、ステップＳ８０８に進む。一方、ステップＳ８０７の判別の結果、読み出したコマンドが処理可能でない場合は、ステップＳ８１０に進む。
【００４２】
ここで、読み出したコマンドが処理可能か否かの判別は、読み出したコマンドをコマンド管理テーブル４００に登録した場合、コマンド管理テーブル４００に登録された記録、再生ストリーム数の組み合わせが処理能力テーブル３００に示されている記録、再生ストリームデータ数を超過しないか否かにより判別する。
【００４３】
ステップＳ８０８において、ＭＰＵ１０１は読み出したコマンドにストリームＩＤを付与してコマンド管理テーブル４００に登録し、ステップＳ８０９に進む。ステップＳ８０９において、ＭＰＵ１０１はステップＳ８０８においてコマンド管理テーブル４００に登録したコマンドのストリームＩＤをストリームデータの第１〜第３のＨＤＤ１２１〜１２３へ／からの記録／再生処理とは別に実行されるネットワークから／へのデータの入出力にかかるＭＰＵ１０１のプロセスもしくは他の図示しないＭＰＵのプロセス、またはコマンドの発行元デバイスに通知し、ステップＳ８１１に進む。
【００４４】
ステップＳ８１０において、ＭＰＵ１０１は読み出したコマンドが処理不可能であることをストリームデータの第１〜第３のＨＤＤ１２１〜１２３へ／からの記録／再生処理とは別に実行されるネットワークから／へのデータの入出力にかかるＭＰＵ１０１のプロセスもしくは他の図示しないＭＰＵのプロセス、またはコマンドの発行元デバイスに通知し、ステップＳ８１１に進む。
【００４５】
ステップＳ８２１において、ＭＰＵ１０１は読み出したコマンドのストリームＩＤを判別し、コマンド管理テーブル４００の上記ストリームＩＤの付与されているコマンドを上記読み出したコマンドに書き換え、ステップＳ８１１に進む。
【００４６】
ステップＳ８４１において、ＭＰＵ１０１は読み出したコマンドのストリームＩＤを判別し、コマンド管理テーブル４００から上記ストリームＩＤの付与されているコマンドを削除し、ステップＳ８１１に進む。ステップＳ８１１において、ＭＰＵ１０１は読み出したコマンドをコマンド・キューイング・メモリから削除し、ステップＳ８０１に戻る。
【００４７】
次に、図９のステップＳ９００において、ＭＰＵ１０１はＨＤＤ割り当てテーブル７００をリセット、すなわち全ての欄に「０」を書き込み、ステップＳ９０１に進む。ステップＳ９０１において、ＭＰＵ１０１はコマンド管理テーブル４００を参照し、ステップＳ９０２に進む。
【００４８】
ステップＳ９０２において、ＭＰＵ１０１はコマンド管理テーブル４００に再生コマンドが登録されているか否かを判別する。この判別の結果、再生コマンドが登録されている場合は、ステップＳ９０３に進み、再生コマンドが登録されていない場合は、ステップＳ９２１に進む。
【００４９】
ステップＳ９０３において、ＭＰＵ１０１はコマンド管理テーブル４００から（まだデータの読み出しを実行するＨＤＤが割り当てられていない）再生コマンド一つを読み出し、ステップ９０４に進む。
【００５０】
ステップＳ９０４において、ＭＰＵ１０１は読み出した再生コマンドの指定するファイルが最後のブロックまで読み出されていないか否かを判別する。この判別の結果、最後のブロックまで読み出されていない場合は、ステップＳ９０５に進み、最後のブロックまで読み出されている場合、ステップＳ９１２に進む。
【００５１】
ここで、最後のブロックまで読み出されていないか否かの判別は、読み出し開始ブロック番号の値が最後のブロックまで読み出したことを意味する識別子（例えば０ｘＦＦ）でないか否かにより判別する。
【００５２】
ステップＳ９０５において、まずＭＰＵ１０１は記録位置管理テーブル５００を参照する。そして、読み出した再生コマンドの読み出し開始ブロックの値（コマンド管理テーブル４００）が示すブロックが記録されている２台のＨＤＤ（記録位置０のＨＤＤ、記録位置１のＨＤＤ）を判別し、ステップＳ９０６に進む。
【００５３】
ステップＳ９０６において、ＭＰＵ１０１はＨＤＤ割り当てテーブルを参照する。ステップＳ９０７において、記録位置０のＨＤＤと記録位置１のＨＤＤに割り当てられているストリーム数を比較する。ステップＳ９０８において、割り当てられているストリーム数が記録位置０のＨＤＤと記録位置１のＨＤＤとでどちらが多いかを判別する。この判別の結果、記録位置１のＨＤＤの方が多い場合は、ステップＳ９０９において、記録位置０のＨＤＤを、読み出した再生コマンドに対してデータの読み出しを実行するＨＤＤとして割り当てる。
【００５４】
一方、ステップＳ９０８の判別の結果、記録位置０のＨＤＤの方が多い場合は、ステップＳ９０９において、記録位置１のＨＤＤを、読み出した再生コマンドに対してデータの読み出しを実行するＨＤＤとして割り当てる。すなわち、ＨＤＤ割り当て管理テーブル７００の読み出した再生コマンドに付与されているストリームＩＤの行の割り当てられたＨＤＤの列に「１」を書き込み、ステップＳ９１１に進む。
【００５５】
ステップＳ９１１において、ＭＰＵ１０１はコマンド管理テーブル４００の読み出した再生コマンドの読み出し割り当て位置の値に割り当てられたＨＤＤに対応する記録位置の識別値を書き込み、ステップＳ９１２に進む。
【００５６】
ステップＳ９１２において、ＭＰＵ１０１はコマンド管理テーブル４００に登録されている全ての再生コマンドを読み出し、データの読み出しを実行するＨＤＤを全て割り当てたか否かを判別する。この判別の結果、全ての再生コマンドに対してＨＤＤの割り当てが行われた場合は、ステップＳ９２１に進み、ＨＤＤの割り当てが行われていない再生コマンドがある場合は、ステップＳ９０３に戻る。
【００５７】
ステップＳ９２１において、ＭＰＵ１０１はコマンド管理テーブル４００を参照し、ステップＳ９２２に進む。ステップＳ９２２において、ＭＰＵ１０１はコマンド管理テーブル４００に記録コマンドが登録されているか否かを判別する。この判別の結果、記録コマンドが登録されている場合は、ステップＳ９２３に進み、記録コマンドが登録されていない場合は、図１０におけるステップＳ１０００に進む。
【００５８】
ステップＳ９２３において、ＭＰＵ１０１はコマンド管理テーブル４００から（まだデータの書き込みを実行するＨＤＤが割り当てられていない）記録コマンドを一つ読み出し、ステップ９２４に進む。
【００５９】
ステップＳ９２４において、ＭＰＵ１０１はＨＤＤ割り当てテーブル９２４を参照する。ステップＳ９２５において、個々のＨＤＤに割り当てられたストリーム数（記録、再生両方を含む）を比較する。そして、ステップＳ９２６において、割り当てられたストリーム数が第１のＨＤＤ１２１と第２のＨＤＤ１２２とでどちらの方が多いかを判別する。この判別の結果、第１のＨＤＤ１２１の方が多い場合は、ステップＳ９２７に進み、第２のＨＤＤ１２２の方が多い場合は、ステップＳ９２８に進む。
【００６０】
ステップＳ９２７において、割り当てられたストリーム数が第１のＨＤＤ１２１と第３のＨＤＤ１２３とでどちらの方が多いかを判別する。この判別の結果、第１のＨＤＤ１２１の方が多い場合は、ステップＳ９２９に進み、第３のＨＤＤ１２３の方が多い場合は、ステップＳ９３１に進む。
【００６１】
ステップＳ９２８において、割り当てられたストリーム数が第２のＨＤＤ１２２と第３のＨＤＤ１２３とでどちらの方が多いかを判別する。この判別の結果、第２のＨＤＤ１２２の方が多い場合は、ステップＳ９３０に進み、第３のＨＤＤ１２３の方が多い場合は、ステップＳ９３１に進む。
【００６２】
ステップＳ９２９において、ＭＰＵ１０１は書き込みを実行するＨＤＤを第２のＨＤＤ１２２と第３のＨＤＤ１２３とに割り当てる。ステップＳ９３０において、ＭＰＵ１０１は書き込みを実行するＨＤＤを第１のＨＤＤ１２１と第３のＨＤＤ１２３とに割り当てる。ステップＳ９３１において、ＭＰＵ１０１は書き込みを実行するＨＤＤを第１のＨＤＤ１２１と第２のＨＤＤ１２２とに割り当てる。
【００６３】
つまり、読み出した記録コマンドに対して書き込みを実行するＨＤＤとして割り当てられているストリーム数が少ない方から２台のＨＤＤを割り当てる。すなわち、ＨＤＤ割り当て管理テーブル７００の読み出した記録コマンドに付与されているストリームＩＤの行の割り当てられたＨＤＤの列に「１」を書き込み、ステップＳ９３２に進む。
【００６４】
ステップＳ９３２において、ＭＰＵ１０１はコマンド管理テーブル４００の読み出した記録コマンドの割り当てＨＤＤの値に割り当てられたＨＤＤの識別値を書き込み、ステップＳ９３３に進む。
【００６５】
ステップＳ９３３において、ＭＰＵ１０１はコマンド管理テーブル４００に登録されている全ての記録コマンドを読み出し、データの書き込みを実行するＨＤＤを全て割り当てたか否かを判別する。この判別の結果、全ての記録コマンドに対してＨＤＤの割り当てが行われた場合は、図１０におけるステップＳ１０００に進み、ＨＤＤの割り当てが行われていない記録コマンドがある場合は、ステップＳ９２３に戻る。
【００６６】
次に、図１０のステップＳ１０００において、ＭＰＵ１０１はコマンド管理テーブル４００を参照し、ステップＳ１００１に進む。ステップＳ１００１において、ＭＰＵ１０１はコマンド管理テーブル４００に再生コマンドが登録されているか否かを判別する。この判別の結果、再生コマンドが登録されている場合は、ステップＳ１００２に進み、再生コマンドが登録されていない場合は、ステップＳ１０２０に進む。
【００６７】
ステップＳ１００２において、ＭＰＵ１０１はコマンド管理テーブル４００から（まだステップＳ１００２〜Ｓ１００８の処理を実行されていない）再生コマンドを一つ読み出し、ステップ１００３に進む。
【００６８】
ステップＳ１００３において、ＭＰＵ１０１はＲＡＭ１０３上に確保された再生バッファ・メモリ領域に少なくとも１ブロック分のデータの大きさの空き領域があるか否かを判別する。この判別の結果、再生バッファ・メモリ領域に空き領域がある場合は、ステップＳ１００４に進み、再生バッファ・メモリ領域に空き領域がない場合は、ステップＳ１００９に進む。
【００６９】
なお、再生バッファ・メモリ領域に書き込まれたデータは、例えばストリームデータの第１〜第３のＨＤＤ１２１〜１２３へ／からの記録／再生処理とは別に実行されるネットワークから／へのデータの入出力にかかるＭＰＵ１０１のプロセスまたは他の図示しないＭＰＵのプロセスによって読み出した再生コマンドの発行元に送出される。
【００７０】
ステップＳ１００４において、ＭＰＵ１０１は記録位置管理テーブル５００を参照し、ステップＳ１００５に進む。ステップＳ１００５において、ＭＰＵ１０１は読み出した再生コマンドに設定されたファイル名、読み出し開始ブロック番号、割り当て読み出し位置（コマンド管理テーブル４００）の示すＨＤＤとＨＤＤ内のＬＢＡを判別する。そして、上記ＨＤＤから上記ＬＢＡに記録されている１ブロック分のデータを読み出し、ＲＡＭ１０３上に確保された再生バッファ・メモリ領域に書き込み、ステップＳ１００６に進む。
【００７１】
ステップＳ１００６において、ＭＰＵ１０１は読み出した再生コマンドの指定するファイルを最後のブロックまで読み出したか否かを判別する。この判別の結果、最後のブロックまで読み出した場合は、ステップＳ１００７に進む。ステップＳ１００７において、ＭＰＵ１０１はコマンド管理テーブル４００の読み出した再生コマンドに対する読み出し開始ブロック番号の値を最後のブロックまで読み出したことを意味する識別子（例えば０ｘＦＦ）に書き換える。
【００７２】
一方、ステップＳ１００６の判別の結果、最後のブロックまで読み出していない場合は、ステップＳ１００８に進む。ステップＳ１００８において、ＭＰＵ１０１はコマンド管理テーブル４００の読み出した再生コマンドに対する読み出し開始ブロック番号の値を次に読み出すブロック番号に書き換え、ステップＳ１００９に進む。
【００７３】
ステップＳ１００９において、ＭＰＵ１０１はコマンド管理テーブル４００に登録されている全ての記録コマンドに対してステップＳ１００２〜Ｓ１００８の処理を実行したか否かを判別する。この判別の結果、全ての記録コマンドに対してステップＳ１００２〜Ｓ１００８の処理を実行した場合は、ステップＳ１０２０に進み、ステップＳ１００２〜Ｓ１００８の処理を実行されていない記録コマンドがある場合は、ステップＳ１００２に戻る。
【００７４】
ステップＳ１０２０において、ＭＰＵ１０１はコマンド管理テーブル４００を参照し、ステップＳ１０２１に進む。ステップＳ１０２１において、ＭＰＵ１０１はコマンド管理テーブル４００に記録コマンドが登録されているか否かを判別する。この判別の結果、記録コマンドが登録されている場合は、ステップＳ１０２２に進み、記録コマンドが登録されていない場合は、図８のステップＳ８００に戻る。
【００７５】
ステップＳ１０２２において、ＭＰＵ１０１はコマンド管理テーブル４００から（まだデータの書き込みが実行されていない）記録コマンドを読み出し、ステップＳ１０２３に進む。
【００７６】
ステップＳ１０２３において、ＭＰＵ１０１はＲＡＭ１０３上に確保された記録バッファ・メモリ領域に（少なくとも１ブロック分の大きさの）データがあるか否かを判別する。この判別の結果、記録バッファ・メモリ領域にデータがある場合は、ステップＳ１０２４に進み、記録バッファ・メモリ領域にデータがない場合は、ステップＳ１０２８に進む。
【００７７】
なお、第１〜第ｍのカメラ１４１〜１４ｍまたは第１〜第ｎの端末装置１６１〜１６ｎから受領したストリームデータの記録バッファ・メモリ領域への書き込みは、例えばストリームデータの第１〜第３のＨＤＤ１２１〜１２３へ／からの記録／再生処理とは別に実行されるネットワークから／へのデータの入出力にかかるＭＰＵ１０１のプロセスまたは他の図示しないＭＰＵのプロセスによってなされる。
【００７８】
ステップＳ１０２４において、ＭＰＵ１０１はＨＤＤ空き領域管理テーブル６００を参照する。ステップＳ１０２５において、読み出した記録コマンドに対する割り当てＨＤＤの値（記録コマンド管理テーブル４００）が示すＨＤＤの各々について１ブロック分のデータの大きさの領域を選択する。そして、ＨＤＤ空き領域管理テーブル６００の対応する欄を既使用領域とし、すなわち「１」を書き込む。
【００７９】
ステップＳ１０２６において、記録位置管理テーブル５００の読み出した記録コマンドが指定するファイルに新たなブロック番号を書き加える。そして、上記ブロック番号の示すブロックの記録位置として、上記選択した領域のＨＤＤ識別子とＬＢＡを書き込み、ステップＳ１０２７に進む。
【００８０】
ステップＳ１０２７において、ＭＰＵ１０１は記録バッファ・メモリ領域から読み出した（１ブロック分の大きさの）データを選択した二つの領域に多重化して、すなわち選択した領域の各々に同一のデータを書き込み、ステップＳ１０２８に進む。
【００８１】
ステップＳ１０２８において、ＭＰＵ１０１はコマンド管理テーブル４００から全ての記録コマンドを読み出し、データの書き込みを実行したか否かを判別する。この判別の結果、全ての記録コマンドに対してデータの書き込みを実行した場合は、図８のステップＳ８００に戻り、データの書き込みが実行されていないコマンドがある場合は、ステップＳ１０２２に戻る。
【００８２】
以上説明してきたように、本実施形態によれば、ストリーム記録再生システムにおいて、第１〜第ｍのカメラ１４１〜１４ｍまたは第１〜第ｎの端末装置１６１〜１６ｎから受領したストリームデータの記録及び再生要求に対して１台のデータ記憶装置にかかる読み出し負荷と書き込み負荷とを分散するとともに、データを２台のデータ記憶装置に二重化して記録する。これにより、記録されたデータの冗長性を確保しながら、複数のストリームデータを同時、高速に記録、再生することができる。
【００８３】
また、記録再生装置１００に規定された能力に基づいて、ストリームデータの記録または再生要求を受理（登録）するようにしている。これにより、記録／再生要求発行元のカメラから受領したストリームデータの記録および端末装置へ配信するストリームデータの再生において、ストリームデータのデータ転送レートを保証することができる。
【００８４】
（本発明に係る他の実施形態）
前述した本発明の実施形態におけるストリームデータ記録再生装置を構成する各手段は、コンピュータのＲＡＭやＲＯＭなどに記憶されたプログラムが動作することによって実現できる。このプログラム及び前記プログラムを記録したコンピュータ読み取り可能な記録媒体は本発明に含まれる。
【００８５】
また、本発明は、例えば、システム、装置、方法、プログラムもしくは記録媒体等としての実施形態も可能であり、具体的には、複数の機器から構成されるシステムに適用してもよいし、また、一つの機器からなる装置に適用してもよい。
【００８６】
なお、本発明は、前述した実施形態の機能を実現するソフトウェアのプログラム（実施形態では図８〜１０に示すフローチャートに対応したプログラム）を、システムまたは装置に直接、または遠隔から供給する。そして、そのシステムまたは装置のコンピュータが前記供給されたプログラムコードを読み出して実行することによっても達成される場合を含む。
【００８７】
したがって、本発明の機能処理をコンピュータで実現するために、前記コンピュータにインストールされるプログラムコード自体も本発明を実現するものである。つまり、本発明は、本発明の機能処理を実現するためのコンピュータプログラム自体も含まれる。
【００８８】
その場合、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより実行されるプログラム、ＯＳに供給するスクリプトデータ等の形態であってもよい。
【００８９】
プログラムを供給するための記録媒体としては、例えば、フロッピー（登録商標）ディスク、ハードディスク、光ディスク、光磁気ディスクなどがある。さらに、ＭＯ、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷ、磁気テープ、不揮発性のメモリカード、ＲＯＭ、ＤＶＤ（ＤＶＤ−ＲＯＭ、ＤＶＤ−Ｒ）などもある。
【００９０】
その他、プログラムの供給方法としては、クライアントコンピュータのブラウザを用いてインターネットのホームページに接続する方法がある。そして、前記ホームページから本発明のコンピュータプログラムそのもの、もしくは圧縮され自動インストール機能を含むファイルをハードディスク等の記録媒体にダウンロードすることによっても供給できる。
【００９１】
また、本発明のプログラムを構成するプログラムコードを複数のファイルに分割し、それぞれのファイルを異なるホームページからダウンロードすることによっても実現可能である。つまり、本発明の機能処理をコンピュータで実現するためのプログラムファイルを複数のユーザに対してダウンロードさせるＷＷＷサーバも、本発明に含まれるものである。
【００９２】
また、その他の方法として、本発明のプログラムを暗号化してＣＤ−ＲＯＭ等の記録媒体に格納してユーザに配布し、所定の条件をクリアしたユーザに対し、インターネットを介してホームページから暗号化を解く鍵情報をダウンロードさせる。そして、その鍵情報を使用することにより暗号化されたプログラムを実行してコンピュータにインストールさせて実現することも可能である。
【００９３】
また、コンピュータが、読み出したプログラムを実行することによって、前述した実施形態の機能が実現される。さらに、そのプログラムの指示に基づき、コンピュータ上で稼動しているＯＳなどが、実際の処理の一部または全部を行い、その処理によっても前述した実施形態の機能が実現され得る。
【００９４】
さらに、その他の方法として、まず記録媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれる。そして、そのプログラムの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行い、その処理によっても前述した実施形態の機能が実現される。
【図面の簡単な説明】
【００９５】
【図１】本発明の実施形態におけるストリームデータ記録再生システムの一例を示すブロック図である。
【図２】本発明の実施形態におけるコマンド・キューイング・メモリの一例を示す図である。
【図３】本発明の実施形態における処理能力テーブルの一例を示す図である。
【図４】本発明の実施形態におけるコマンド管理テーブルの一例を示す図である。
【図５】本発明の実施形態における記録位置管理テーブルの一例を示す図である。
【図６】本発明の実施形態におけるＨＤＤ空き領域管理テーブルの一例を示す図である。
【図７】本発明の実施形態におけるＨＤＤ割り当てテーブルの一例を示す図である。
【図８】本発明の実施形態における記録再生装置のストリームデータの第１〜第３のＨＤＤへ／からの記録／再生処理の一例を示すフローチャートである。
【図９】本発明の実施形態における記録再生装置のストリームデータの第１〜第３のＨＤＤへ／からの記録／再生処理の一例を示すフローチャートである。
【図１０】本発明の実施形態における記録再生装置のストリームデータのＨＤＤへ／からの記録／再生処理の一例を示すフローチャートである。
【符号の説明】
【００９６】
１００  ストリームデータ記録再生装置
１０１  マイクロプロセッサ（ＭＰＵ）
１０２  読み出し専用メモリ（ＲＯＭ）
１０３  ランダム・アクセス・メモリ（ＲＡＭ）
１０４  ハードディスク・インターフェース（ＨＤＤ・Ｉ／Ｆ）回路
１０５  ネットワーク・インターフェース（Ｉ／Ｆ）回路
１２１  第１のＨＤＤ
１２２  第２のＨＤＤ
１２３  第３のＨＤＤ
１４１〜１４ｍ  第１〜第ｍのネットワークカメラ
１６１〜１６ｎ  第１〜第ｎのネットワーク端末装置
１８０  ネットワークハブ（ＨＵＢ）
【図１】
2007281972.tif 000003
【図２】
2007281972.tif 000004
【図３】
2007281972.tif 000005
【図４】
2007281972.tif 000006
【図５】
2007281972.tif 000007
【図６】
2007281972.tif 000008
【図７】
2007281972.tif 000009
【図８】
2007281972.tif 000010
【図９】
2007281972.tif 000011
【図１０】
2007281972.tif 000012