(57)【要約】【課題】アクセスタイムをより短くするとともに、途切れることなくデータを読み出す。【解決手段】FAT32などのファイルシステムを用い、ファイルに関係するディレクトリエントリが記録されるディレクトリエントリ群３８１−１とファイルの実データが記録される実データ群３９１−１とが隣接するようにハードディスク１７３に配置される。ハードディスク１７３にディレクトリエントリおよび実データが記録されることで、ファイルが記録された場合、実データ群３９１−１の記録領域として、実データの記録に要するクラスタの数が計算され、計算されたクラスタの数が所定の閾値を超えた場合、実データ群３９１−１に隣接するディレクトリエントリ群３８１−１の次のディレクトリエントリ群３８１−２がハードディスク１７３に配置される。本発明は、デジタルビデオカメラに適用することができる。【選択図】図１６
2005250982.tif 000002
【特許請求の範囲】
【請求項１】
第１の記録領域に記録されている第１のデータを格納するファイルに関係する第２のデータが記録される第２の記録領域と前記第１の記録領域とを隣接するようにデータ記録媒体に配置して、所定のデータ量の記録単位を基に、前記データ記録媒体に前記第１のデータおよび前記第２のデータを記録することにより、前記ファイルを記録する記録装置において、
前記第１の記録領域として、前記第１のデータの記録に要する前記記録単位の数を計算する計算手段と、
計算された前記記録単位の数が、前記データ記録媒体の読み出しにおける特性を基に予め定めた閾値を超えたか否かを判定する判定手段と、
計算された前記記録単位の数が前記閾値を超えたと判定された場合、計算された前記記録単位の数が前記閾値を超えたと判定された前記第１の記録領域に隣接する前記第２の記録領域の次の第２の記録領域を前記データ記録媒体に配置するように、前記データ記録媒体への記録を制御する記録制御手段と
を含むことを特徴とする記録装置。
【請求項２】
前記計算手段は、前記第１のデータの記録に要する前記記録単位の数として、前記第１のデータが既に記録されている前記記録単位の数を計算する
ことを特徴とする請求項１に記載の記録装置。
【請求項３】
前記計算手段は、前記第１のデータが既に記録されている前記記録単位の数と、既に記録されている前記第１のデータの次の第１のデータの記録に必要な前記記録単位の数とを加算して、前記第１のデータの記録に要する前記記録単位の数を計算し、
前記記録制御手段は、計算された前記記録単位の数が前記閾値を超えたと判定された場合、計算された前記記録単位の数が前記閾値を超えたと判定された前記第１の記録領域に隣接する前記第２の記録領域の次の第２の記録領域を前記データ記録媒体に配置し、次の第２の記録領域に、その第１の記録領域に隣接する前記第２の記録領域に記録されている最後の前記第２のデータの次の第２のデータを記録すると共に、次の第２の記録領域に隣接する次の第１の記録領域に、次の第２のデータが関係するファイルに格納される次の第１のデータを記録するように、前記データ記録媒体への記録を制御する
ことを特徴とする請求項１に記載の記録装置。
【請求項４】
前記計算手段は、前記第１のデータが既に記録されている前記記録単位の数と、既に記録されている前記第１のデータの次の第１のデータの記録に要すると想定する前記記録単位の数とを加算して、前記第１のデータの記録に要する前記記録単位の数を計算し、
前記記録制御手段は、計算された前記記録単位の数が前記閾値を超えたと判定された場合、計算された前記記録単位の数が前記閾値を超えたと判定された前記第１の記録領域に隣接する前記第２の記録領域の次の第２の記録領域を前記データ記録媒体に配置し、次の第２の記録領域に、その第１の記録領域に隣接する前記第２の記録領域に記録されている最後の前記第２のデータの次の第２のデータを記録すると共に、次の第２の記録領域に隣接する次の第１の記録領域に、次の第２のデータが関係するファイルに格納される次の第１のデータを記録するように、前記データ記録媒体への記録を制御する
ことを特徴とする請求項１に記載の記録装置。
【請求項５】
前記記録制御手段は、計算された前記記録単位の数が前記閾値を超えたと判定された場合、計算された前記記録単位の数が前記閾値を超えたと判定された前記第１の記録領域に隣接する前記第２の記録領域のうちの、前記第２のデータが記録されていない領域に、前記第２のデータが記録されていない領域が使用されていることを示す情報を記録するように、前記データ記録媒体への記録を制御する
ことを特徴とする請求項１に記載の記録装置。
【請求項６】
第１の記録領域に記録されている第１のデータを格納するファイルに関係する第２のデータが記録される第２の記録領域と前記第１の記録領域とを隣接するようにデータ記録媒体に配置して、所定のデータ量の記録単位を基に、前記データ記録媒体に前記第１のデータおよび前記第２のデータを記録することにより、前記ファイルを記録する記録装置の記録方法であって、
前記第１の記録領域として、前記第１のデータの記録に要する前記記録単位の数を計算する計算ステップと、
計算された前記記録単位の数が、前記データ記録媒体の読み出しにおける特性を基に予め定めた閾値を超えたか否かを判定する判定ステップと、
計算された前記記録単位の数が前記閾値を超えたと判定された場合、計算された前記記録単位の数が前記閾値を超えたと判定された前記第１の記録領域に隣接する前記第２の記録領域の次の第２の記録領域を前記データ記録媒体に配置するように、前記データ記録媒体への記録を制御する記録制御ステップと
を含むことを特徴とする記録方法。
【請求項７】
第１の記録領域に記録されている第１のデータを格納するファイルに関係する第２のデータが記録される第２の記録領域と前記第１の記録領域とを隣接するようにデータ記録媒体に配置して、所定のデータ量の記録単位を基に、前記データ記録媒体に前記第１のデータおよび前記第２のデータを記録することにより、前記ファイルを記録する記録処理用のプログラムであって、
前記第１の記録領域として、前記第１のデータの記録に要する前記記録単位の数を計算する計算ステップと、
計算された前記記録単位の数が、前記データ記録媒体の読み出しにおける特性を基に予め定めた閾値を超えたか否かを判定する判定ステップと、
計算された前記記録単位の数が前記閾値を超えたと判定された場合、計算された前記記録単位の数が前記閾値を超えたと判定された前記第１の記録領域に隣接する前記第２の記録領域の次の第２の記録領域を前記データ記録媒体に配置するように、前記データ記録媒体への記録を制御する記録制御ステップと
を含むことを特徴とするコンピュータが読み取り可能なプログラムが記録されている記録媒体。
【請求項８】
第１の記録領域に記録されている第１のデータを格納するファイルに関係する第２のデータが記録される第２の記録領域と前記第１の記録領域とを隣接するようにデータ記録媒体に配置して、所定のデータ量の記録単位を基に、前記データ記録媒体に前記第１のデータおよび前記第２のデータを記録することにより、前記ファイルを記録する記録処理をコンピュータに行わせるプログラムであって、
前記第１の記録領域として、前記第１のデータの記録に要する前記記録単位の数を計算する計算ステップと、
計算された前記記録単位の数が、前記データ記録媒体の読み出しにおける特性を基に予め定めた閾値を超えたか否かを判定する判定ステップと、
計算された前記記録単位の数が前記閾値を超えたと判定された場合、計算された前記記録単位の数が前記閾値を超えたと判定された前記第１の記録領域に隣接する前記第２の記録領域の次の第２の記録領域を前記データ記録媒体に配置するように、前記データ記録媒体への記録を制御する記録制御ステップと
を含むことを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、記録装置および方法、記録媒体、並びにプログラムに関し、特に、ファイルシステムにおけるアクセスタイムをより短くすることができるようにした記録装置および方法、記録媒体、並びにプログラムに関する。
【背景技術】
【０００２】
従来、例えば、デジタルビデオカメラやデジタルスチルカメラ、PC(Personal Computer)や携帯電話機、および据え置き型ビデオレコーダなどにおいては、ハードディスクなどのランダムアクセス可能な記録媒体に、静止画像、動画像、または音声(または音楽)といった各種データが、FAT（File Allocation Tables）などのファイルシステムによって、ファイルとして記録されていた。
【０００３】
FAT32などのファイルシステムにおいては、１つのクラスタに、ファイルの名前やファイルに格納される実データへのエントリポイントを示すディレクトリエントリが記録され、論理フォーマット上のアドレスにおいて、このクラスタの後のクラスタに、ディレクトリエントリが関係するファイルの実データが記録される。ファイルをディレクトリ（フォルダ）に順次記録していく場合、１つのクラスタに記録できるディレクトリエントリの数（＝ファイルの数）には上限があるため、上限に達したときには、記録しきれないディレクトリエントリを記録するために、別のクラスタが確保される。
【０００４】
図１は、FATファイルシステム（FAT32）を用いるハードディスク１の領域の配置を示す図である。
【０００５】
図１に示されるように、ハードディスク１には、ハードディスク１を構成するパーティションの位置やサイズなどが記録されているパーティションテーブルやアクティブなパーティションから起動用のプログラムを読み込むためのマスタブートコード（Master Boot Code）などが記録されているMBR（Master Boot Record）１１、空き領域１２、およびパーティション１３が配置されている。
【０００６】
パーティション１３には、１クラスタあたりのセクタ数など、ハードディスク１の物理的な属性が記録されているBPB（BIOS（Basic Input Output System） Parameter Block）２１、ファイルのクラスタ（データの記録単位）の配列が記録されているFAT領域２２，FAT領域２２のバックアップなどのために利用される予備の領域であるFAT領域２３が設けられている。
【０００７】
またパーティション１３には、ディレクトリエントリ群３１−１として、複数のディレクトリエントリが記録されている。ディレクトリエントリは、ファイル名、拡張子、属性、作成された日付と時刻、開始クラスタ番号、およびファイルのサイズなどを格納する。さらに、パーティション１３には、実データ群４１−１として、ディレクトリエントリ群３１−１に記録されている複数のディレクトリエントリのそれぞれに対応するファイルに格納される実際のデータ（以下、適宜、実データと称する）が記録されている。
【０００８】
同様に、ディレクトリエントリ群３１−２およびディレクトリエントリ群３１−３として、複数のディレクトリエントリが記録され、複数のディレクトリエントリのそれぞれに対応するファイルの実データが実データ群４１−２および実データ群４１−３として記録されている。
【０００９】
ファイルにアクセスする場合、各ファイルが記録されるときに生成されたディレクトリエントリ内に保持されている先頭クラスタ番号を基に、FATが参照され、FATから、そのファイルの実データが記録されているクラスタのクラスタ番号が順次読み出され、クラスタ番号で示されるクラスタから実データが読み出されることにより、ファイルがアクセスされる。
【００１０】
ディレクトリエントリ群３１−１は、１クラスタの領域として確保される。ディレクトリエントリ群３１−１には、ファイルが１つ作成される度に、そのファイルに対応する３２バイト（byte）のディレクトリエントリとして、ファイル名や作成日時などの情報が記録される。したがって、１クラスタのサイズが３２キロバイトの場合、１つのクラスタ内に（ディレクトリエントリ群３１−１内に）最大１０２４個のディレクトリエントリが記録される。
【００１１】
なお、ディレクトリエントリが削除される場合、クラスタ内の該当する３２バイト分の情報が削除されることは無く、ディレクトリエントリの１バイト目に「E5h」という値が記録されるのみであり、ファイルが作成される度にクラスタ内の領域が３２バイトずつ消費される。なお、「E5h」の「h（hexadecimal number）」は、「E5」が１６進数で表現されていることを示している。以下、同様に、「h」が付加されている値は、１６進数で表現されていることを示す。
【００１２】
このとき、例えば、図２に示されるように、１つのディレクトリ（フォルダ）に、「file0001.mpg」乃至「file3000.mpg」のファイルが記録されている場合、「file0001.mpg」乃至「file1024.mpg」のそれぞれの１０２４個のディレクトリエントリがディレクトリエントリ群３１−１に記録され、「file0001.mpg」乃至「file1024.mpg」のディレクトリエントリのそれぞれに対応する１０２４個の実データが実データ群４１−１に記録される。
【００１３】
また、同様に「file1025.mpg」乃至「file2048.mpg」のそれぞれの１０２４個のディレクトリエントリがディレクトリエントリ群３１−２に記録され、「file1025.mpg」乃至「file2048.mpg」のディレクトリエントリのそれぞれに対応する１０２４個の実データが実データ群４１−２に記録され、「file2049.mpg」乃至「file3000.mpg」のそれぞれの９５２個のディレクトリエントリがディレクトリエントリ群３１−３に記録され、「file2049.mpg」乃至「file3000.mpg」のディレクトリエントリのそれぞれに対応する９５２個の実データが実データ群４１−３に記録される。
【００１４】
すなわち、同一のディレクトリに存在する「file0001.mpg」乃至「file3000.mpg」の３０００個のファイルは、「file0001.mpg」乃至「file1024.mpg」，「file1025.mpg」乃至「file2048.mpg」、および「file2049.mpg」乃至「file3000.mpg」の各ディレクトリエントリは、ディレクトリエントリ群３１−１乃至３１−３の３つのクラスタに分かれて記録される。
【００１５】
したがって、「file1024.mpg」のディレクトリエントリと「file1025.mpg」のディレクトリエントリとは、その間に実データ群４１−１を記録するクラスタが配置されることになるので、ハードディスク１において物理的に、実データ群４１−１のサイズ（容量）の分のクラスタの数（以下、適宜、クラスタ数とも称する）だけ離れて配置される。「file2048.mpg」と「file2049.mpg」とには、ハードディスク１において、物理的に、実データ群４１−２のサイズの分のクラスタだけ離れて配置される。例えば、「file0001.mpg」のファイル乃至「file2048.mpg」のファイルのデータ量が、それぞれ、５００メガバイトである場合、矢印Ａで示される、「file1024.mpg」のディレクトリエントリと「「file1025.mpg」」のディレクトリエントリとの間には、５００ギガバイト分のクラスタが配置され、矢印Ｂで示される、「file2048.mpg」のディレクトリエントリと「file2049.mpg」のディレクトリエントリとの間にも、５００ギガバイト分のクラスタが配置される。
【００１６】
次に、図３のフローチャートを参照して、クラスタのサイズが３２キロバイトであり、ディレクトリエントリのサイズが３２バイトである場合の、ハードディスク１における従来のファイル作成処理の詳細を説明する。図３のファイル作成処理は、ハードディスク１に対して、新たにファイルの作成（書き込み）が行われる場合に開始される。
【００１７】
ステップＳ１において、新たに記録されるファイルのディレクトリエントリが、１つのクラスタに格納されるディレクトリエントリとして、１０２５個目のディレクトリエントリであるか否かが判定される。ステップＳ１において、１０２５個目のディレクトリエントリであると判定された場合、そのクラスタにはさらにディレクトリエントリを格納することはできないので、ステップＳ２に進み、次のクラスタが確保され、ステップＳ３において、確保されたクラスタにディレクトリエントリが生成され、ステップＳ４において、確保されたクラスタに続くクラスタにファイル（実データ）が書き込まれ、処理は終了する。
【００１８】
以上の処理を、図４を参照して説明すると次のようになる。すなわち、例えば、図４に示されるように、１クラスタであるディレクトリエントリ群３１−１の中にディレクトリエントリ５１−１乃至５１−１０２４が記録されている場合、図３のステップＳ１において、１０２５個目のディレクトリエントリであると判定され、ステップＳ２において、ディレクトリエントリ群３１−２を記録するためのクラスタが確保される。ステップＳ３において、１０２５個目のディレクトリエントリであるディレクトリエントリ５１−１０２５がディレクトリエントリ群３１−２として生成（記録）される。ステップＳ４において、実データ群４１−２として、ディレクトリエントリ５１−１０２５に対応する実データ６１−１０２５が記録される。
【００１９】
一方、ステップＳ１において、１０２５個目のディレクトリエントリではないと判定された場合、そのクラスタにさらにディレクトリエントリを格納することができるので、ステップＳ２の処理がスキップされる。すなわち、例えば、ディレクトリエントリ群３１−１に、まだ、１０２４個のディレクトリエントリが記録されていないので、例えば、図示せぬディレクトリエントリ５１−１０００がディレクトリエントリ群３１−１として記録され、対応する実データ６１−１０００（図示せず）が実データ群４１−１として記録される。
【００２０】
クラスタが確保されて、ディレクトリエントリ群３１−２としてディレクトリエントリ５１−１０２５が記録されると、図３のフローチャートのステップＳ１の処理は、ディレクトリエントリ群３１−２が記録されるクラスタについて実行される。そして、ファイル作成の処理が繰り返されると、ディレクトリエントリ群３１−２として、１０２４個のディレクトリエントリ（ディレクトリエントリ５１−１０２５乃至５１−２０４８）が記録される。
【００２１】
また、１０２４個のディレクトリエントリに対応する実データ（実データ６１−１０２５乃至６１−２０４８）が実データ群４１−２に記録された後に、新たなファイルが記録される場合、新たなディレクトリエントリを記録するために、ハードディスク１にディレクトリエントリ群３１−３（図１参照）を記録するためのクラスタが確保される。
【００２２】
以上のように、ハードディスク１に各種データが記録される場合、例えば、図４に示されるように、ディレクトリエントリ群３１−１とディレクトリエントリ群３１−２との間（図２の矢印Ａで示される「file1024.mpg」のディレクトリエントリ５１−１０２４と「file1025.mpg」のディレクトリエントリ５１−１０２５との間）には、実データ群４１−１として記録されている実データ６１−１乃至６１−１０２４を格納する、実データ６１−１乃至６１−１０２４のサイズ（容量）に応じた数のクラスタが配置される。
【００２３】
例えば、１ファイル（１つの実データ）あたり１ギガバイトである場合、実データ群４１−１のサイズ（容量）は、１０２４ギガバイト（＝１テラバイト）となる。すなわち、クラスタのサイズが３２キロバイト（６４セクタ）である場合、２，１４７，４８３，６４８（＝１テラバイト/３２キロバイト×６４）個のセクタが、ディレクトリエントリ群３１−１とディレクトリエントリ群３１−２との間に存在することになる。
【００２４】
したがって、図２に示されるディレクトリ内の全てのファイル（「file0001.mpg」乃至「file3000.mpg」）が連続して再生される場合、「file1024.mpg」の再生後に、「file1025.mpg」の記録位置までシークするので、シークに要する時間が長くなり、再生が途切れてしまうことがあった。同様に「file2048.mpg」の再生後に、「file2049.mpg」の記録位置までシークするので、シークに要する時間が長くなり、再生が途切れてしまうことがあった。
【００２５】
図５は、従来のハードディスク１の領域の配置の他の例である。図５で示される例において、図４で示される場合と同様にディレクトリエントリ群３１−１および実データ群４１−１が記録され、さらに例えば、音声（または音楽）のデータを格納するファイルのディレクトリエントリ７１−１乃至７１−１０２４が、ディレクトリエントリ群３１−２として配置され、ディレクトリエントリ７１−１乃至７１−１０２４のそれぞれに対応する実データ８１−１乃至８１−１０２４が実データ群４１−２として配置されている。
【００２６】
例えば、ディレクトリエントリ５１−１乃至５１−１０２４で特定されるファイルが動画像のデータを格納し、ディレクトリエントリ５１−１乃至５１−１０２４で特定されるファイルに格納されている動画像のデータと、ディレクトリエントリ７１−１乃至７１−１０２４で特定される音声のデータとが同期して再生される。
【００２７】
また、実データ群４１−２の次の領域であるデータ領域９０（図１のディレクトリエントリ群３１−３や実データ群６１−３などに対応する）に静止画像のデータが記録されている場合、動画像と音声のデータを同期再生し、さらに動画像と静止画像とを重ねて表示する処理が要求されるときがある。
【００２８】
動画像、音声のデータ、および静止画像のファイルを同期再生する場合、すなわち、例えば、実データ６１−１である「file0001.mpg」、実データ８１−１である「file1025.mp3」、およびデータ領域９０に記録されている静止画像のデータとして「file4000.jpg」を開くことが指示された場合、ディレクトリエントリ５１−１に記録されているデータが読み取られ、実データ６１−１に記録されているデータが読み取られ、実データ６１−１のデータがデコードされ、クローズされるとともに、ディレクトリエントリ７１−１に記録されているデータが読み取られ、実データ８１−１に記録されているデータが読み取られ、デ実データ８１−１がデコードされ、クローズされる。さらに、データ領域９０に記録されている静止画像のデータを開くことが指示され、ディレクトリエントリに記録されているデータが読み取られ、実データに記録されているデータが読み取られ、実データがデコードされ、クローズされるという処理が繰り返し実行される。
【００２９】
以上のような場合、ハードディスク１におけるシークタイム（位置決め時間）やFATの処理時間などによって、データの読み出しに要する応答時間（アクセスタイム）が長くなる。具体的には、例えば、ハードディスク１のサイズ（容量）が１８０ギガバイト（＝３７７，４８７，３６０セクタ）、フルストロークのシークタイムが２０ミリ秒、サーチタイム（回転待ち時間）が２０ミリ秒、ヘッドの切り替え時間が１ミリ秒、シリンダの切り替え時間が１ミリ秒、動画の伝送速度が８メガビット毎秒（mega bits per second）、音楽の伝送速度が２５６キロビット毎秒（kilo bits per second）である場合、さらに実データ群４１−１のサイズ（容量）が１２６ギガバイト（＝２６４，２４１，１５２セクタ）である場合、図５に示される実データ群４１−１によって、ディレクトリエントリ５１−１０２４からディレクトリエントリ７１−１までのシークタイムは１４ミリ秒かかっていた。
【００３０】
また、ファイルシステムなどを利用して種々のデータの記録再生処理を円滑に行えるようにする技術が種々提案されている。
【００３１】
例えば、特許文献１には、記憶領域ごとに、ファイルを記憶する記憶領域の未使用ブロックを管理するファイルシステムにおいて、連続して同一の記憶領域に割り当てられる未使用ブロックの数を計測し、その計測結果および計測結果に対する規定値を基に、ファイルを格納する記憶領域を選択することが開示されている。
【００３２】
特許文献２には、任意の大きさのファイルデータを書き込む場合に、ファイルデータのサイズが、記憶部に確保されるファイルデータエリアのサイズを越えそうなとき、再度、記憶部に確保されるファイルデータエリアの補充を行うことが開示されている。
【００３３】
特許文献３には、フラッシュメモリにFATファイルシステムを用いて、動画像データを記録する場合、全てのクラスタが空いているデータブロックのクラスタから、データブロック単位で動画像データを記録することが開示されている。
【００３４】
特許文献４には、メモリとハードディスクドライブとの間で、MPEG（Moving Picture Experts Group）ストリームなどのデータストリームの記録、再生動作を円滑に行うために、CPUから独立して、バスの調停作業を制御するCPU/DRAMインタフェースを設けることが開示されている。
【特許文献１】特開平１１−９６０５２号公報
【特許文献２】特開２０００−１４８５４６号公報
【特許文献３】特開２００３−２９６１７７号公報
【特許文献４】特開２００３−３０３４７０号公報
【発明の開示】
【発明が解決しようとする課題】
【００３５】
しかしながら、以上のように、従来の技術では、AV（Audio Visual）データ、例えば、DV（Digital Video）やMPEG（Moving Picture Experts Group）などの動画像のファイルや音楽のファイルなどを多数記録する場合、ディレクトリエントリ間に存在する大量のクラスタ（またはセクタ）により、ハードディスクなどの記録媒体におけるシーク動作、またデータの応答処理全体のリアルタイム性を確保することが困難となり、応答時間の悪化を招く恐れがあるという課題があった。
【００３６】
同一のディレクトリに存在するファイルのディレクトリエントリを、１つのクラスタに記録可能な限度数に達するまで記録し続けてしまう場合、ディレクトリエントリ同士のクラスタ間のデータサイズが大きくなってしまい、そのデータサイズが数ギガ乃至数百ギガバイトになってしまう可能性があり、その分だけ、クラスタ間の長いシークタイムが発生してしまうという課題があった。
【００３７】
同様に、動画像、音楽、および静止画像などのデータの同時再生を行う場合、シークタイムやFATの処理時間などが長大化してしまうという課題があった。
【００３８】
本発明は、このような状況に鑑みてなされたものであり、例えば、ハードディスクなどの記録媒体における、アクセスタイムを短縮することができるようにするものである。
【課題を解決するための手段】
【００３９】
本発明の記録装置は、第１の記録領域として、第１のデータの記録に要する記録単位の数を計算する計算手段と、計算された記録単位の数が、データ記録媒体の読み出しにおける特性を基に予め定めた閾値を超えたか否かを判定する判定手段と、計算された記録単位の数が閾値を超えたと判定された場合、計算された記録単位の数が閾値を超えたと判定された第１の記録領域に隣接する第２の記録領域の次の第２の記録領域をデータ記録媒体に配置するように、データ記録媒体への記録を制御する記録制御手段とを含むことを特徴とする。
【００４０】
計算手段は、第１のデータの記録に要する記録単位の数として、第１のデータが既に記録されている記録単位の数を計算するようにすることができる。
【００４１】
計算手段は、第１のデータが既に記録されている記録単位の数と、既に記録されている第１のデータの次の第１のデータの記録に必要な記録単位の数とを加算して、第１のデータの記録に要する記録単位の数を計算し、記録制御手段は、計算された記録単位の数が閾値を超えたと判定された場合、計算された記録単位の数が閾値を超えたと判定された第１の記録領域に隣接する第２の記録領域の次の第２の記録領域をデータ記録媒体に配置し、次の第２の記録領域に、その第１の記録領域に隣接する第２の記録領域に記録されている最後の第２のデータの次の第２のデータを記録すると共に、次の第２の記録領域に隣接する次の第１の記録領域に、次の第２のデータが関係するファイルに格納される次の第１のデータを記録するように、データ記録媒体への記録を制御するようにすることができる。
【００４２】
計算手段は、第１のデータが既に記録されている記録単位の数と、既に記録されている第１のデータの次の第１のデータの記録に要すると想定する記録単位の数とを加算して、第１のデータの記録に要する記録単位の数を計算し、記録制御手段は、計算された記録単位の数が閾値を超えたと判定された場合、計算された記録単位の数が閾値を超えたと判定された第１の記録領域に隣接する第２の記録領域の次の第２の記録領域をデータ記録媒体に配置し、次の第２の記録領域に、その第１の記録領域に隣接する第２の記録領域に記録されている最後の第２のデータの次の第２のデータを記録すると共に、次の第２の記録領域に隣接する次の第１の記録領域に、次の第２のデータが関係するファイルに格納される次の第１のデータを記録するように、データ記録媒体への記録を制御するようにすることができる。
【００４３】
記録制御手段は、計算された記録単位の数が閾値を超えたと判定された場合、計算された記録単位の数が閾値を超えたと判定された第１の記録領域に隣接する第２の記録領域のうちの、第２のデータが記録されていない領域に、第２のデータが記録されていない領域が使用されていることを示す情報を記録するように、データ記録媒体への記録を制御するようにすることができる。
【００４４】
本発明の記録方法は、第１の記録領域として、第１のデータの記録に要する記録単位の数を計算する計算ステップと、計算された記録単位の数が、データ記録媒体の読み出しにおける特性を基に予め定めた閾値を超えたか否かを判定する判定ステップと、計算された記録単位の数が閾値を超えたと判定された場合、計算された記録単位の数が閾値を超えたと判定された第１の記録領域に隣接する第２の記録領域の次の第２の記録領域をデータ記録媒体に配置するように、データ記録媒体への記録を制御する記録制御ステップとを含むことを特徴とする。
【００４５】
本発明の記録媒体のプログラムは、第１の記録領域として、第１のデータの記録に要する記録単位の数を計算する計算ステップと、計算された記録単位の数が、データ記録媒体の読み出しにおける特性を基に予め定めた閾値を超えたか否かを判定する判定ステップと、計算された記録単位の数が閾値を超えたと判定された場合、計算された記録単位の数が閾値を超えたと判定された第１の記録領域に隣接する第２の記録領域の次の第２の記録領域をデータ記録媒体に配置するように、データ記録媒体への記録を制御する記録制御ステップとを含むことを特徴とする。
【００４６】
本発明のプログラムは、第１の記録領域として、第１のデータの記録に要する記録単位の数を計算する計算ステップと、計算された記録単位の数が、データ記録媒体の読み出しにおける特性を基に予め定めた閾値を超えたか否かを判定する判定ステップと、計算された記録単位の数が閾値を超えたと判定された場合、計算された記録単位の数が閾値を超えたと判定された第１の記録領域に隣接する第２の記録領域の次の第２の記録領域をデータ記録媒体に配置するように、データ記録媒体への記録を制御する記録制御ステップとを含むことを特徴とする。
【００４７】
本発明においては、第１の記録領域として、第１のデータの記録に要する記録単位の数が計算され、計算された記録単位の数が、データ記録媒体の読み出しにおける特性を基に予め定めた閾値を超えたか否かが判定され、計算された記録単位の数が閾値を超えたと判定された場合、計算された記録単位の数が閾値を超えたと判定された第１の記録領域に隣接する第２の記録領域の次の第２の記録領域をデータ記録媒体に配置するように、データ記録媒体への記録が制御される。
【発明の効果】
【００４８】
本発明によれば、データを記録することができる。特に、例えば、ハードディスクなどの記録媒体において、データの書き込みまたは読み出しにおけるアクセスタイムを短縮することができる。
【発明を実施するための最良の形態】
【００４９】
以下に本発明の最良の形態を説明するが、開示される発明と実施の形態との対応関係を例示すると、次のようになる。本明細書中には記載されているが、発明に対応するものとして、ここには記載されていない実施の形態があったとしても、そのことは、その実施の形態が、その発明に対応するものではないことを意味するものではない。逆に、実施の形態が発明に対応するものとしてここに記載されていたとしても、そのことは、その実施の形態が、その発明以外の発明には対応しないものであることを意味するものでもない。
【００５０】
さらに、この記載は、明細書に記載されている発明の全てを意味するものではない。換言すれば、この記載は、明細書に記載されている発明であって、この出願では請求されていない発明の存在、すなわち、将来、分割出願されたり、補正により出現し、追加される発明の存在を否定するものではない。
【００５１】
本発明によれば、記録装置が提供される。この記録装置（例えば、図６のデジタルビデオカメラ１００）は、第１の記録領域（例えば、図１６の実データ群３９１−１）に記録されている第１のデータを格納するファイルに関係する第２のデータ（例えば、図１７のディレクトリエントリ４０１−１）が記録される第２の記録領域（例えば、図１６のディレクトリエントリ群３８１−１）と第１の記録領域とを隣接するようにデータ記録媒体（例えば、図１６のハードディスク１７３）に配置して、所定のデータ量の記録単位を基に、データ記録媒体に第１のデータおよび第２のデータを記録することにより、ファイルを記録する記録装置であって、第１の記録領域として、第１のデータの記録に要する記録単位の数を計算する計算手段（例えば、図８の累積クラスタ数計算部２０１）と、計算された記録単位の数が、データ記録媒体の読み出しにおける特性を基に予め定めた閾値を超えたか否かを判定する判定手段（例えば、図８の累積クラスタ数判定部２０２）と、計算された記録単位の数が閾値を超えたと判定された場合、計算された記録単位の数が閾値を超えたと判定された第１の記録領域に隣接する第２の記録領域の次の第２の記録領域をデータ記録媒体に配置するように、データ記録媒体への記録を制御する記録制御手段（例えば、図８のコード記禄制御部２０３）とを含む。
【００５２】
この記録装置は、計算手段が、第１のデータの記録に要する記録単位の数として、第１のデータが既に記録されている記録単位の数を計算する（例えば、図１５のステップＳ２６）ようにすることができる。
【００５３】
この記録装置は、計算手段（例えば、図２０のファイルサイズ加算部４４１）が、第１のデータが既に記録されている記録単位の数と、既に記録されている第１のデータの次の第１のデータの記録に必要な記録単位の数とを加算して、第１のデータの記録に要する記録単位の数を計算し（例えば、図２１のステップＳ７７）、記録制御手段は、計算された記録単位の数が閾値を超えたと判定された場合（例えば、図２１のステップＳ７８において「Yes」）、計算された記録単位の数が閾値を超えたと判定された第１の記録領域に隣接する第２の記録領域の次の第２の記録領域をデータ記録媒体に配置し（例えば、図２１のステップＳ７２）、次の第２の記録領域に、その第１の記録領域に隣接する第２の記録領域に記録されている最後の第２のデータの次の第２のデータを記録する（例えば、図２１のステップＳ７４）と共に、次の第２の記録領域に隣接する次の第１の記録領域に、次の第２のデータが関係するファイルに格納される次の第１のデータを記録する（例えば、図２１のステップＳ７５）ように、データ記録媒体への記録を制御するようにすることができる。
【００５４】
この記録装置は、計算手段（例えば、図１８の最小クラスタ数加算部４２１）が、第１のデータが既に記録されている記録単位の数と、既に記録されている第１のデータの次の第１のデータの記録に要すると想定する記録単位の数とを加算して、第１のデータの記録に要する記録単位の数を計算し（例えば、図１９のステップＳ５７）、記録制御手段は、計算された記録単位の数が閾値を超えたと判定された場合（例えば、図１９のステップＳ５８において「Yes」）、計算された記録単位の数が閾値を超えたと判定された第１の記録領域に隣接する第２の記録領域の次の第２の記録領域をデータ記録媒体に配置し（例えば、図１９のステップＳ５２）、次の第２の記録領域に、その第１の記録領域に隣接する第２の記録領域に記録されている最後の第２のデータの次の第２のデータを記録する（例えば、図１９のステップＳ５４）と共に、次の第２の記録領域に隣接する次の第１の記録領域に、次の第２のデータが関係するファイルに格納される次の第１のデータを記録する（例えば、図１９のステップＳ５５）ように、データ記録媒体への記録を制御するようにすることができる。
【００５５】
この記録装置は、記録制御手段が、計算された記録単位の数が閾値を超えたと判定された場合、計算された記録単位の数が閾値を超えたと判定された第１の記録領域に隣接する第２の記録領域のうちの、第２のデータが記録されていない領域に、第２のデータが記録されていない領域が使用されていることを示す情報（例えば、図１７の「E5h」）を記録する（例えば、図１５のステップＳ２８）ように、データ記録媒体への記録を制御するようにすることができる。
【００５６】
本発明によれば、記録方法が提供される。この記録方法は、第１の記録領域（例えば、図１６の実データ群３９１−１）に記録されている第１のデータを格納するファイルに関係する第２のデータ（例えば、図１７のディレクトリエントリ４０１−１）が記録される第２の記録領域（例えば、図１６のディレクトリエントリ群３８１−１）と第１の記録領域とを隣接するようにデータ記録媒体（例えば、図１６のハードディスク１７３）に配置して、所定のデータ量の記録単位を基に、データ記録媒体に第１のデータおよび第２のデータを記録することにより、ファイルを記録する記録装置（例えば、図６のデジタルビデオカメラ１００）の記録方法であって、第１の記録領域として、第１のデータの記録に要する記録単位の数を計算する計算ステップ（例えば、図１５のステップＳ２６）と、計算された記録単位の数が、データ記録媒体の読み出しにおける特性を基に予め定めた閾値を超えたか否かを判定する判定ステップ（例えば、図１５のステップＳ２７）と、計算された記録単位の数が閾値を超えたと判定された場合、計算された記録単位の数が閾値を超えたと判定された第１の記録領域に隣接する第２の記録領域の次の第２の記録領域をデータ記録媒体に配置するように、データ記録媒体への記録を制御する記録制御ステップ（例えば、図１５のステップＳ２９）とを含む。
【００５７】
本発明によれば、プログラムが提供される。このプログラムは、第１の記録領域（例えば、図１６の実データ群３９１−１）に記録されている第１のデータを格納するファイルに関係する第２のデータ（例えば、図１７のディレクトリエントリ４０１−１）が記録される第２の記録領域（例えば、図１６のディレクトリエントリ群３８１−１）と第１の記録領域とを隣接するようにデータ記録媒体（例えば、図１６のハードディスク１７３）に配置して、所定のデータ量の記録単位を基に、データ記録媒体に第１のデータおよび第２のデータを記録することにより、ファイルを記録する記録処理をコンピュータに行わせるプログラムであって、第１の記録領域として、第１のデータの記録に要する記録単位の数を計算する計算ステップ（例えば、図１５のステップＳ２６）と、計算された記録単位の数が、データ記録媒体の読み出しにおける特性を基に予め定めた閾値を超えたか否かを判定する判定ステップ（例えば、図１５のステップＳ２７）と、計算された記録単位の数が閾値を超えたと判定された場合、計算された記録単位の数が閾値を超えたと判定された第１の記録領域に隣接する第２の記録領域の次の第２の記録領域をデータ記録媒体に配置するように、データ記録媒体への記録を制御する記録制御ステップ（例えば、図１５のステップＳ２９）とを含む。
【００５８】
このプログラムは、記録媒体（例えば、図６の磁気ディスク１４１）に記録することができる。
【００５９】
以下に、本発明の実施の形態について図面を参照して説明する。
【００６０】
図６は、本発明が適用したデジタルビデオカメラ１００の構成例を示すブロック図である。
【００６１】
CPU（Central Processing Unit）１１１は、例えば、組込型の汎用マイクロプロセッサなどからなり、デジタルビデオカメラ１００の全体を制御する。CPU１１１には、ROM（Read Only Memory）１１２およびRAM（Random Access Memory）１１３が接続されている。例えば、CPU１１１は、ROM１１２に記憶されているプログラム、または、ハードディスクドライブ（以下、HDDと称する）１１４および後述するドライブ１２５に装着された磁気ディスク１４１、光ディスク１４２、光磁気ディスク１４３、および半導体メモリ１４４などからRAM１１３にロードしたプログラムを実行して、デジタルビデオカメラ１００の全体の動作を制御する。RAM１１３にはまた、CPU１１１が各種の処理を実行する上において必要なデータなどが適宜記憶される。
【００６２】
CPU１１１にはまた、カメラ機能部１１５および画像信号処理部１１６が接続されている。カメラ機能部１１５は、専用のIC(Integrated Circuit)などからなり、CPU１１１の制御を基に、光学レンズ部１１７を制御し、駆動する。例えば、カメラ機能部１１５は、CPU１１１の制御を基に、光学レンズ部１１７による被写体１５１の撮影動作を開始させたり、終了させたりする他、光学レンズ部１１７のズーム率、取り込む光量などを適宜制御する。
【００６３】
光学レンズ部１１７は、光学レンズおよび絞りなどからなり、被写体１５１の画像を光電変換部１１８（の受光部）に結像させる。
【００６４】
CCD（Charge Coupled Device）またはC-MOS（Complementary Metal-Oxide Semiconductor）センサなどの撮像素子により構成される光電変換部１１８は、光学レンズ部１１７によって結像された画像を電気信号に変換して、変換により生成したアナログの電気信号（被写体１５１の画像に対応する電気信号）を画像信号処理部１１６に供給する。画像信号処理部１１６は、CPU１１１の制御を基に、光電変換部１１８より供給された被写体１５１の画像に対応する電気信号に、所定の画像処理を適用する。
【００６５】
以下、電気信号を単に信号と称する。
【００６６】
具体的には、例えば、デジタルビデオカメラ１００の画像信号処理部１１６は、被写体１５１の画像に対応するアナログの信号を、A/D（Analog to Digital）変換して、デジタルの画像データとし、その画像データに対して、例えば、ホワイトバランスの調整、欠陥画素の補間などの画像処理を適用した後、必要に応じてMPEG（Moving Picture Experts Group）方式等で圧縮符号化する。
【００６７】
画像信号処理部１１６は、圧縮符号化した画像データをCPU１１１に供給する。
【００６８】
すなわち、画像信号処理部１１６は、光電変換部１１８より供給された被写体１５１の画像に対応する信号を、所定のフォーマットの画像データに変換させて、CPU１１１に供給する。
【００６９】
CPU１１１は、画像信号処理部１１６より供給された画像データを、HDD１１４またはドライブ１２５に装着されている磁気ディスク１４１、光ディスク１４２、光磁気ディスク１４３、および半導体メモリ１４４などに記録させる。
【００７０】
また、画像信号処理部１１６は、ホワイトバランスを調整し、または欠陥画素を補間した画像データを液晶ディスプレイ１１９および画像入出部１２０に供給する。より具体的には、画像信号処理部１１６は、画像データを、液晶ディスプレイ１１９の入力方式である、例えば、RGB（Red,Green,Blue）信号に変換して、RGB信号を液晶ディスプレイ１１９に供給する。液晶ディスプレイ１１９は、画像信号処理部１１６より供給された信号に対応する画像（例えば、被写体１５１の撮像により取得された画像）を表示させる。
【００７１】
同様に、例えば、画像信号処理部１１６は、RGB信号を画像入出部１２０に供給する。
【００７２】
さらに、画像信号処理部１１６は、CPU１１１を介して、HDD１１４および磁気ディスク１４１、光ディスク１４２、光磁気ディスク１４３、および半導体メモリ１４４に記録されている画像データを読み出して、読み出した画像データに対応する信号を液晶ディスプレイ１１９または画像入出力部１２０に供給する。
【００７３】
画像入出力部１２０は、例えばテレビジョン受像器などの外部の画像表示装置または画像記録再生装置などの機器に画像信号である信号を入力または出力するためのインタフェースである。
【００７４】
CPU１１１にはまた、音声処理部１２１が接続されている。音声処理部１２１は、CPU１１１から供給された、HDD１１４および磁気ディスク１４１、光ディスク１４２、光磁気ディスク１４３、および半導体メモリ１４４に記録され、読み出された音声データに対して、所定の音声処理を適用する。また、音声処理部１２１は、音声入出力部１２２から供給された音声信号または音声データに音声処理を適用する。
【００７５】
音声処理部１２１は、音声処理を適用した結果得られた音声データまたは音声信号をCPU１１１または音声入出力部１２２に供給する。
【００７６】
音声入出力部１２２は、マイクロフォン、スピーカ、および外部の機器とのインタフェースである。例えば、音声入出力部１２２は、音声処理部１２１より供給された電気信号を図示せぬテレビジョン受像器などの外部の機器に供給する。また、音声入出力部１２２は、図示せぬ機器から供給される音声信号を取得して、取得した音声信号を音声処理部１２１に供給する。
【００７７】
また、音声入出力部１２２は、例えば、光学レンズ部１１７や光電変換部１１８が被写体１５１を撮影している場合、その被写体１５１自身またはその周辺で発生された音声を取得し、音声信号に変換して音声処理部１２１に供給する。
【００７８】
音声信号処理部１２１は、音声入出力部１２２から供給された音声信号に、所定の音声処理を行い、所定の音声処理を行った音声データをCPU１１１の制御の基、HDD１１４および磁気ディスク１４１、光ディスク１４２、光磁気ディスク１４３、および半導体メモリ１４４に供給し、記録させる。
【００７９】
CPU１１１にはさらにまた、操作入力部１２３、および通信部１２４が接続されている。
【００８０】
操作入力部１２３は、ボタン、スイッチ、もしくはリモートコントローラなどにより構成され、ユーザにより、所定の指令に対応する操作入力が行われた場合、その操作入力に対応する信号をCPU１１１に供給する。CPU１１１は、操作入力部１２３より供給された信号に対応する処理を実行する。
【００８１】
通信部１２４は、CPU１１１の制御を基に、図示せぬ他の情報処理装置との通信処理を実行する。すなわち、通信部１２４は、画像信号処理部１１６より出力された画像データ等の様々な情報を他の情報処理装置に送信するとともに、他の情報処理装置より送信された画像データ、またはプログラム等の様々な情報を受信する。例えば、通信部１２４が画像データを受信した場合、CPU１１１は、それをRAM１１３やドライブ１２５に装着された磁気ディスク１４１、光ディスク１４２、光磁気ディスク１４３、および半導体メモリ１４４に記憶させる。また、例えば、通信部１２４がプログラムを受信した場合、CPU１１１は、それをRAM１１３にロードする。
【００８２】
なお、通信部１２４は、無線または有線による通信を行うものでもよいし、無線と有線の両方の通信が可能なものでもよい。さらに、その通信方式も特に限定されず、例えば、無線の場合、IEEE(The Institute of Electrical and Electronic Engineers)802.11a，802.11b、および802.11gなどの無線LAN（Local Area Network）、またはBluetooth等様々な無線通信方式が利用可能である。同様に、有線の場合も、Ethernet（登録商標）やUSB（Universal Serial Bus）等様々な有線通信方式が利用可能である。
【００８３】
ドライブ１２５は、CPU１１１の制御を基に、装着されている磁気ディスク１４１、光ディスク１４２、光磁気ディスク１４３、および半導体メモリ１４４に記録されているプログラムまたはデータを読み出し、読み出したプログラムまたはデータをCPU１１１に供給する。また、CPU１１１より供給されたデータを、ドライブ１２５に装着される磁気ディスク１４１、光ディスク１４２、光磁気ディスク１４３、および半導体メモリ１４４に記録させる。
【００８４】
電源１２６は、デジタルビデオカメラ１００の各部に必要な電力を供給する。
【００８５】
図７は、CPU１１１により実行されるアプリケーションプログラム１７１、オペレーティングシステム（以下、OSと称する）１７２、およびハードディスク１７３の関係を示す図である。OS１７２には、ファイルシステム１８１およびデバイスドライバ１８２を含む。
【００８６】
アプリケーションプログラム１７１は、各種の処理を実行して、ファイルの記録およびファイルの読み出しをオペレーティングシステム１７２に要求する。オペレーティングシステム１７２は、いわゆる基本プログラムであり、例えば、デジタルビデオカメラ１００のハードウェアなどのリソースの取り扱いを制御する。
【００８７】
ハードディスク１７３は、HDD１１４に内蔵されている磁気ディスクである記録媒体である。
【００８８】
ファイルシステム１８１は、例えば、FATファイルシステム（FAT32）であり、クラスタの連鎖情報を保持し、ハードディスク１７３に記録されているデータを管理する。デバイスドライバ１８２は、HDD１１４の動作に必要な情報をOS１７２に供給し、ハードディスク１７３へのデータの記録またはハードディスク１７３に記録されているデータの読み出しなど、HDD１１４の動作を制御する。
【００８９】
アプリケーションプログラム１７１は、OS１７２のファイルシステム１８１に対して、ファイル単位（レベル）でのアクセス（読み出しまたは書き込み）を要求（指示）する。ファイルシステム１８１は、アプリケーションプログラム１７１からファイルへのアクセスが要求された場合、デバイスドライバ１８２に対して、ファイルの実データが記録されているクラスタ単位のアクセスを要求する。デバイスドライバ１８２は、ファイルシステム１８１からクラスタ単位のアクセスが要求された場合、HDD１１４に対して、セクタ（ハードディスク１７３の記録単位）単位のアクセスを要求する。このとき、ハードディスク１７３において、クラスタは、ファイルシステム１８１（FAT32）におけるデータを管理可能な最小単位であり、セクタのサイズ＝５１２バイトをｎ（ｎ＝１，２，４，・・・，６４，１２８）個集めた構成となる。
【００９０】
HDD１１４は、デバイスドライバ１８２からセクタ単位のアクセスが要求された場合、デバイスドライバ１８２に対し、セクタ単位でのアクセスの要求に対する応答を行う。例えば、HDD１１４は、デバイスドライバ１８２からセクタ単位の読み出しが要求された場合、セクタ毎に記録されているデータをデバイスドライバ１８２に供給する。
【００９１】
デバイスドライバ１８２は、ファイルシステム１８１に対し、クラスタ単位でのアクセスの要求に対する応答を行う。例えば、デバイスドライバ１８２は、ファイルシステム１８１に対し、クラスタ毎に記録されている実データをファイルシステム１８１に供給する。ファイルシステム１８１は、アプリケーションプログラム１７１に対して、ファイル単位でのアクセスの要求に対する応答を行う。例えば、ファイルシステム１８１は、ファイルをアプリケーションプログラム１７１に供給する。
【００９２】
図８は、ファイルシステム１８１のより詳細な構成を説明するブロック図である。図７に示す場合と同様の部分には、同じ符号が付してあり、その説明は省略する。
【００９３】
ファイルシステム１８１には、クラスタ管理プログラム１９１が含まれている。クラスタ管理プログラム１９１は、ハードディスク１７３において、ファイルに格納される実データが記録されるクラスタの数を管理するプログラムである。
【００９４】
クラスタ管理プログラム１９１は、さらに、累積クラスタ数計算部２０１、累積クラスタ数判定部２０２、およびコード記録制御部２０３を含む。
【００９５】
累積クラスタ数計算部２０１は、１つのクラスタに記録されているディレクトリエントリが関係するファイル（ディレクトリエントリによって、ファイル名またはエントリポイントなどが示されるファイル）に格納される実データが記録されているクラスタの数を計算する。
【００９６】
例えば、累積クラスタ数計算部２０１は、１つのクラスタに記録されているディレクトリエントリが関係するファイルについて、デバイスドライバ１８２を介して、ハードディスク１７３に記録されたファイルのサイズを示す情報（図１４を参照して後述するファイルサイズ３４２に記録される情報）を取得する。
【００９７】
累積クラスタ数計算部２０１は、ファイルのサイズを示す情報を基に、ハードディスク１７３において、１つのクラスタに記録されているディレクトリエントリが関係するファイルに格納される実データが記録されているクラスタの数を計算する。
【００９８】
例えば、１セクタに５１２バイトのデータを記録することができ、１つのクラスタが６４のセクタからなる場合、１つのクラスタには、３２キロバイトの実データが記録される。そこで、累積クラスタ数計算部２０１は、１つのクラスタに記録されているディレクトリエントリが関係するファイルに格納される実データのデータ量を、１つのクラスタに記録されるデータのデータ量で割り算することにより、１つのクラスタに記録されているディレクトリエントリが関係するファイルに格納される実データが記録されているクラスタの数を計算する。
【００９９】
累積クラスタ数計算部２０１は、１つのクラスタに記録されているディレクトリエントリが関係するファイルに格納される実データが記録されているクラスタの数を示す情報を累積クラスタ数判定部２０２に供給する。さらに、累積クラスタ数計算部２０１は、コード記録制御部２０３から供給された信号を基に、計算したクラスタの数（以下、累積クラスタ数と称する）をリセットする（累積クラスタ数に０を設定する）。
【０１００】
累積クラスタ数判定部２０２は、累積クラスタ数計算部２０１から累積クラスタ数および予め設定された閾値を基に、累積クラスタ数が閾値を超えたか否かを判定する。累積クラスタ数判定部２０２は、判定結果を示す情報をコード記録制御部２０３に供給する。
【０１０１】
コード記録制御部２０３は、供給された判定結果を示す情報を基に、ハードディスク１７３における、ディレクトリエントリが記録されているクラスタのうちの、ディレクトリエントリが記録されていない空き領域の所定の位置に、後述する「空き」を示すコードを記録させるように、ハードディスク１７３の記録を制御する。コード記録制御部２０３は、ディレクトリエントリが記録されているクラスタのうちの、ディレクトリエントリが記録されていない空き領域の所定の位置に「空き」を示すコードをハードディスク１７３に記録させた場合、累積クラスタ数計算部２０１にリセットを指示する信号を供給する。
【０１０２】
次に、図９乃至図１４を参照して、FAT方式によりフォーマットされているハードディスク１７３について説明する。
【０１０３】
図９は、MBR(Master Boot Record)およびパーティションを説明する図である。ハードディスク１７３の先頭のセクタ２２１(LBA(Logical Block Addressing)＝0のセクタ)は、デジタルビデオカメラ１００を起動させる場合、ハードディスク１７３に記録されているオペレーティングシステム１７２を実行させるためのMBR２３１とされる。
【０１０４】
MBR２３１には、いわゆる、アクティブであるパーティションを示すコードなどを含む起動コード領域２５１、並びに各パーティションの先頭のLBA（図中の矢印で示す位置）および各パーティションのサイズなどを示すパーティションテーブル２５２が配置される。
【０１０５】
先頭セクタ２２１に続いて、所定の数のセクタからなる空き領域２２２が配置される。
【０１０６】
さらに、空き領域２２２に続いて、ファイルなどが記録されるデータ領域２２３が配置される。データ領域２２３は、最大で４個のパーティション（パーティション２４１乃至パーティション２４４）に区分可能とされている。
【０１０７】
なお、以下、パーティションテーブル２５２に、１つのパーティション（パーティション２４１のみ）が登録されたハードディスク１７３、すなわち、データ領域２２３が、１つのパーティション（パーティション２４１）のみから構成されるハードディスク１７３を例に説明する。
【０１０８】
図１０に示されるように、MBR２３１である５１２バイトからなる先頭クラスタには、４４６バイトの起動コード領域２５１、６４バイトのパーティションテーブル２５２、および２バイトの情報２６１が配置される。起動コード領域２５１は、クラスタの先頭の０バイト目から始まる４４５バイト目までの領域であり、アクティブなパーティションから起動用のプログラムを読み込むためのマスタブートコード（Master Boot Code(Initial Program Loaderとも呼ばれる)）が記録されている。４４６バイト目から始まる６４バイト分の領域からなるパーティションテーブル２５２、および最後の２バイトの情報２６１から構成されている。
【０１０９】
パーティションテーブル２５２は、クラスタの先頭から４４６バイト目から始まり、個々のパーティションに対応するパーティション情報（パーティションの開始アドレスとサイズ）を記録する。すなわち、例えば、１個のパーティションが登録されている場合、図１１に示されるように、１６バイトのパーティション情報（パーティションテーブル２５２のエントリ）２７１が、パーティションテーブル２５２に保存される。具体的には、パーティション情報２７１には、先頭から順に、１バイトのフラグ２８１，３バイトの開始セクタ（CHS（Cylinder/Head/Sector））２８２，１バイトのタイプ２８３，３バイトの終了セクタ（CHS）２８４，４バイトの開始セクタ（LBA）２８５、および４バイトのパーティションサイズ２８６が格納されている。
【０１１０】
フラグ２８１は、パーティションがアクティブであるか否かを示す、いわゆる起動フラグである。例えば、“00h”であるフラグ２８１は、そのパーティションがノンアクティブである（いわゆる起動パーティションでない）ことを示し、“80h”であるフラグ２８１は、そのパーティションがアクティブである（いわゆる起動パーティションである）ことを示す。
【０１１１】
開始セクタ２８２は、シリンダ／ヘッド／セクタという３つのパラメータで、パーティションの先頭のセクタのアドレスを示す。タイプ２８３は、そのパーティションがフォーマットされているファイルシステムの方式を示す。例えば、“80h”であるタイプ２８３は、FAT32であることを示す。
【０１１２】
終了セクタ２８４は、シリンダ／ヘッド／セクタという３つのパラメータで、パーティションの最後のセクタのアドレスを示す。開始セクタ２８５は、LBAによる、パーティションの先頭のセクタのアドレスを示す。パーティションサイズ２８６は、パーティションに含まれるセクタの総数を示す。
【０１１３】
MBR２３１の最後の２バイトの情報２６１、すなわち「55h」、および「AAh」は、パーティションテーブル２６１の終端を示す情報である。
【０１１４】
次に、図１２を参照して、データ領域２２３のパーティション２４１の詳細な構成例について説明する。図１２に示されるように、パーティション２４１は、BPB（BIOS（Basic Input Output System） Parameter Block）３０１、FAT領域３０２，FAT領域３０３、およびデータ領域３０４から構成されている。
【０１１５】
BPB３０１には、パーティション２４１における１クラスタあたりのセクタ数など、パーティション２４１の論理的な属性が記録されている。
【０１１６】
FAT領域３０２は、ハードディスク１７３に記録される実データのクラスタの配列が記録される領域であり、FAT領域３０３は、FAT領域３０２のバックアップなどのために利用されるFAT領域３０２の予備の領域である。
【０１１７】
データ領域３０４は、各ファイルのそれぞれのデータ（ディレクトリエントリや実データ）が実際に記録される領域である。
【０１１８】
図１３は、FAT領域３０２に格納されている、FAT32であるFATの例を示す図である。なお、FAT32の詳細は、「Microsoft Extensible Firmware Initiative FAT32 File System Specification」に開示されている。図１３において、上から２行目乃至５行目における、左から２列目乃至１７列目の個々の四角は、１つのエントリ３２１を示す。FAT32のエントリ３２１の中の数字は、次のFATエントリの番号を表している。なお、図１３において、「00000000h」または「00000001h」のアドレスのエントリ３２１に格納されている「RSV」は、「00000000h」または「00000001h」のクラスタ番号のクラスタがWindows（登録商標）において使用される領域であることを示す。EOF(End Of File)は、ファイルの終点を表し、「−」は、「00000000h」を意味し、「未使用」を表している。
【０１１９】
図１３で示されるFATの例において、４つのファイルが格納される実データが記録されているクラスタのアドレスが示されている。詳細は後述するが、ディレクトリエントリにおいて、先頭クラスタ番号として、「00000007h」が示されている場合、「00000007h」のアドレスのエントリ３２１には「00000008h」が格納され、「00000008h」のアドレスのエントリ３２１には「00000009h」が格納され、「00000009h」のアドレスのエントリ３２１には「EOF」が格納されているので、「00000007h」のクラスタ番号のクラスタ、「00000008h」のクラスタ番号のクラスタ、および「00000009h」のクラスタ番号のクラスタに、先頭クラスタ番号として、「00000007h」が示されているディレクトリエントリに関係するファイルの実データが順に記録されている。
【０１２０】
ディレクトリエントリにおいて、先頭クラスタ番号として、「0000000Ah」が示されている場合、「0000000Ah」のアドレスのエントリ３２１には「0000001Fh」が格納され、「0000001Fh」のアドレスのエントリ３２１には「00000025h」が格納され、「00000025h」のアドレスのエントリ３２１には「00000031h」が格納され、「00000031h」のアドレスのエントリ３２１には「00000030h」が格納され、「00000030h」のアドレスのエントリ３２１には「EOF」が格納されているので、「0000000Ah」のクラスタ番号のクラスタ、「0000001Fh」のクラスタ番号のクラスタ、「00000025h」のクラスタ番号のクラスタ、「00000031h」のクラスタ番号のクラスタ、および「00000030h」のクラスタ番号のクラスタに、先頭クラスタ番号として、「0000000Ah」が示されているディレクトリエントリに関係するファイルの実データが順に記録されている。
【０１２１】
ディレクトリエントリにおいて、先頭クラスタ番号として、「0000001Bh」が示されている場合、「0000001Bh」のアドレスのエントリ３２１には「00000011h」が格納され、「00000011h」のアドレスのエントリ３２１には「00000012h」が格納され、「00000012h」のアドレスのエントリ３２１には「00000013h」が格納され、「00000013h」のアドレスのエントリ３２１には「00000014h」が格納され、「00000014h」のアドレスのエントリ３２１には「00000003h」が格納され、「00000003h」のアドレスのエントリ３２１には、「EOF」が格納されているので、「0000001Bh」のクラスタ番号のクラスタ、「00000011h」のクラスタ番号のクラスタ、「00000012h」のクラスタ番号のクラスタ、「00000013h」のクラスタ番号のクラスタ、「00000014h」のクラスタ番号のクラスタ、および「00000003h」のクラスタ番号のクラスタに、先頭クラスタ番号として、「0000001Bh」が示されているディレクトリエントリに関係するファイルの実データが順に記録されている。
【０１２２】
さらに、また、ディレクトリエントリにおいて、先頭クラスタ番号として、「0000002Ch」が示されている場合、「0000002Ch」のアドレスのエントリ３２１には「0000002Dh」が格納され、「0000002Dh」のアドレスのエントリ３２１には「0000002Eh」が格納され、「0000002Eh」のアドレスのエントリ３２１には「0000002Fh」が格納され、「0000002Fh」のアドレスのエントリ３２１には「00000038h」が格納され、「00000038h」のアドレスのエントリ３２１には「00000039h」が格納され、「00000039h」のアドレスのエントリ３２１には、「0000003Ah」が格納され、「0000003Ah」のアドレスのエントリ３２１には「0000003Bh」が格納され、「0000003Bh」のアドレスのエントリ３２１には「EOF」が格納されているので、「0000002Ch」のクラスタ番号のクラスタ、「0000002Dh」のクラスタ番号のクラスタ、「0000002Eh」のクラスタ番号のクラスタ、「0000002Fh」のクラスタ番号のクラスタ、「00000038h」のクラスタ番号のクラスタ、「00000039h」のクラスタ番号のクラスタ、「0000003Ah」のクラスタ番号のクラスタ、および「0000003Bh」のクラスタ番号のクラスタに、先頭クラスタ番号として、「0000002Ch」が示されているディレクトリエントリに関係するファイルの実データが順に記録されている。
【０１２３】
図１４は、FAT32におけるファイルに関係するディレクトリエントリの構造の例を示す図である。なお、図中の０乃至１Ｆは、０を始点としてディレクトリエントリにおけるバイト数を表わす１６進数である。なお、ディレクトリエントリにおけるバイト数を１を始点とする１０進数で表わした場合、０乃至１Ｆは、それぞれ、１乃至３２で表わされる。
【０１２４】
ディレクトリエントリの先頭に配置される、７バイトの名前３３１は、ファイル名を示す。名前３３１に続く、３バイトの拡張名３３２は、いわゆる、ファイルの拡張子（例えば、MPEG2（Moving Picture Experts Group phase 2）フォーマットの場合は「mpg」、MP3（MPEG Audio Layer-3）フォーマットの場合は「mp3」)を示す。また、拡張名３３２に続く、１バイトの属性３３３は、ファイルの属性を示す。ファイルの属性は、例えば、読み取り専用ファイルまたは隠しファイルなどを示す。属性３３３に続く、１バイトの予約領域３３４は、未使用の領域である。
【０１２５】
予約領域３３４に続く、３バイトの作成時刻３３５は、ファイルが作成された時刻を示す。作成時刻３３５に続く、２バイトの作成日付３３６は、ファイルが作成された日付を示す。作成日付３３６に続く、２バイトの最終アクセス日付３３７は、ファイルにアクセスされた最終の日付を示す。
【０１２６】
先頭クラスタの番号(位置)は、先頭クラスタの番号の上位を示す２バイトの先頭クラスタ番号(High)３３８と、先頭クラスタの番号の下位を示す２バイトの先頭クラスタ番号（Low）３４１とに、分けて配置される。すなわち、先頭クラスタの番号（位置）は、３２ビットで示される。そのファイルのサイズは、４バイトの「ファイルサイズ」３４２に記憶される。
【０１２７】
２バイトの記録時刻３３９は、ファイルが記録された時刻、すなわち、ファイルが最後に更新された時刻（最後に書き込まれた時刻）を示す。２バイトの記録日付３４０は、ファイルが記録された日付、すなわち、ファイルが最後に更新された日付（最後に書き込まれた日付）を示す。
【０１２８】
ディレクトリエントリにおいて、最終アクセス日付３３７に続いて、先頭クラスタ番号（High）３３８、記録時刻３３９、記録日付３４０、先頭クラスタ番号（Low）３４１、およびファイルサイズ３４２が順に配置される。
【０１２９】
次に、図１５のフローチャートを参照して、オペレーティングシステム１７２を実行するデジタルビデオカメラ１００による、クラスタのサイズが３２キロバイトであり、ディレクトリエントリのサイズが３２バイトである場合の、ハードディスク１７３にファイルを書き込む、ファイルの作成の処理を説明する。なお、図１５のファイルの作成の処理は、ユーザからの指示に対応し、アプリケーションプログラム１７１が、オペレーティングシステム１７２に、新たなファイル（実データ）のハードディスク１７３への記録を要求した場合、実行される。
【０１３０】
ステップＳ２１において、ファイルシステム１８１は、新たに記録されるディレクトリエントリが、１つのクラスタに格納されるディレクトリエントリとして、１０２５個目のディレクトリエントリであるか否かを判定する。例えば、ステップＳ２１において、ファイルシステム１８１は、デバイスドライバ１８２に、ハードディスク１７３から、新たにディレクトリエントリを記録しようとするクラスタに記録されているディレクトリエントリを読み出させる。そして、ファイルシステム１８１は、読み出された、クラスタに記録されているディレクトリエントリの数を数えて、クラスタに記録されているディレクトリエントリの数を基に、１０２５個目のディレクトリエントリか否かを判定する。
【０１３１】
ステップＳ２１において、１０２５個目のディレクトリエントリであると判定された場合、そのクラスタにはさらにディレクトリエントリを格納することはできないので、ステップＳ２２に進み、ファイルシステム１８１は、ディレクトリエントリを格納するための、次のクラスタを確保する。例えば、ステップＳ２２において、ファイルシステム１８１は、デバイスドライバ１８２に、ディレクトリエントリを格納するための、次のクラスタの確保を指示すると、デバイスドライバ１８２は、ファイルの実データが記録されているクラスタのうちの最後のクラスタ（最も大きいLBAのクラスタ）の次のクラスタを、ディレクトリエントリを格納するための、次のクラスタとして確保する。
【０１３２】
すなわち、ステップＳ２１の処理においてディレクトリエントリを記録できるかが判定されたクラスタとは別のクラスタが、新たにディレクトリエントリを記録するために確保される。例えば、図１６に示されるようにディレクトリエントリ群３８１−１が記録されているクラスタであって、新たなディレクトリエントリを記録しようとするクラスタに、ディレクトリエントリ群３８１−１として１０２４個のディレクトリエントリが記録されていた場合、このクラスタには、これ以上、ディレクトリエントリを記録することができないので、新たにディレクトリエントリ群３８１−２を格納するためのクラスタが確保される。
【０１３３】
ステップＳ２３において、累積クラスタ数計算部２０１は、累積クラスタ数をリセットする（累積クラスタ数に０を設定する）。すなわち、例えば、ステップＳ２２の処理において、次のクラスタ（ディレクトリエントリ群３８１−２）が確保された場合、実データ群３９１−２が記録されるクラスタ数を示す累積クラスタ数に０が設定される。
【０１３４】
一方、ステップＳ２１において、１０２５個目のディレクトリエントリではないと判定された場合、すなわち、例えば、ディレクトリエントリ群３８１−１が記録されているクラスタには、まだ、１０２４個のディレクトリエントリが記録されていない場合、そのクラスタにさらにディレクトリエントリを記録することができるので、ステップＳ２２およびステップＳ２３の処理はスキップされ、手続きは、ステップＳ２４に進む。
【０１３５】
ステップＳ２４において、ファイルシステム１８１は、ディレクトリエントリを生成する。すなわち、ステップＳ２２およびステップＳ２３の処理はスキップされた場合、ステップＳ２４において、ファイルシステム１８１は、ステップＳ２１の処理において、ディレクトリエントリの数が判定されたクラスタに新たなディレクトリエントリを生成（記録）する。また、ステップＳ２２の処理において、次のクラスタが確保された場合、ステップＳ２４において、ファイルシステム１８１は、確保されたクラスタに新たなディレクトリエントリを生成（記録）する。
【０１３６】
ステップＳ２５において、ファイルシステム１８１は、生成されたディレクトリエントリに対応するファイル（実データ）を書き込む。すなわち、ファイルシステム１８１は、デバイスドライバ１８２に、ファイルの実データの書き込みを要求する。デバイスドライバ１８２は、ファイルシステム１８１からの要求に応じて、生成されたディレクトリエントリに対応するファイルの実データ（ファイルに格納するデータ）をハードディスク１７３のクラスタに書き込む。
【０１３７】
例えば、ステップＳ２４において、新たにディレクトリエントリがディレクトリエントリ群３８１−１に記録された場合、ステップＳ２５において、ファイルシステム１８１は、デバイスドライバ１８２に、ファイル（実データ）を実データ群３９１−１として記録させる。また、ステップＳ２４において、新たにディレクトリエントリがディレクトリエントリ群３８１−２に記録された場合、ステップＳ２５において、ファイルシステム１８１は、デバイスドライバ１８２に、ファイル（実データ）を実データ群３９１−２として記録させる。
【０１３８】
ステップＳ２５において、ファイルの実データが書き込まれると、ファイルの実データが書き込まれたクラスタを示すように、FAT領域３０２およびFAT領域３０３のそれぞれに格納されているFATが更新され、また、図１４を参照して説明したように、ディレクトリエントリに、先頭クラスタ番号３３８および先頭クラスタ番号３４１、並びにファイルサイズ３４２などが格納される。
【０１３９】
ステップＳ２６において、累積クラスタ数計算部２０１は、生成したディレクトリエントリを記録したクラスタの後のクラスタ（LBAが大きいクラスタ）であって、実データが記録されているクラスタの総数である累積クラスタ数を計算する。すなわち、例えば、ステップＳ２６において、累積クラスタ数計算部２０１は、ステップＳ２２およびステップＳ２３の処理が実行された場合、デバイスドライバ１８２を介してハードディスク１７３のFAT領域３０２またはFAT領域３０３からFATを読み出して、読み出したFATから、ステップＳ２５の処理において、実データが書き込まれたクラスタの数を計算し、累積クラスタ数とする。
【０１４０】
また、例えば、ステップＳ２６において、累積クラスタ数計算部２０１は、ステップＳ２２およびステップＳ２３の処理が実行された場合、ステップＳ２５の処理において、新たに書き込まれたファイル（実データ）のサイズを、１つのクラスタに記録されるデータのデータ量で割り算することにより、新たに書き込まれた実データのクラスタ数を計算し、累積クラスタ数とするようにしてもよい。
【０１４１】
さらに例えば、ステップＳ２６において、累積クラスタ数計算部２０１は、ステップＳ２２およびステップＳ２３の処理がスキップされた場合、デバイスドライバ１８２を介してハードディスク１７３のFAT領域３０２またはFAT領域３０３からFATを読み出して、読み出したFATから、ステップＳ２５の処理において、新たに書き込まれた（記録された）実データを含む実データ群（実データ群３９１−１または３９１−２）が書き込まれているクラスタの数を計算し、累積クラスタ数とする。
【０１４２】
さらにまた、例えば、ステップＳ２６において、累積クラスタ数計算部２０１は、ステップＳ２２およびステップＳ２３の処理がスキップされた場合、デバイスドライバ１８２を介してハードディスク１７３から１つのクラスタに記録されているディレクトリエントリを読み出して、読み出したディレクトリエントリから、ステップＳ２５の処理において、新たに書き込まれた（記録された）実データを含む実データ群（実データ群３９１−１または３９１−２）のサイズを求めて、求めたサイズを、１つのクラスタに記録されるデータのデータ量で割り算することにより、クラスタ数を計算し、累積クラスタ数とするようにしてもよい。
【０１４３】
ステップＳ２７において、累積クラスタ数判定部２０２は、ステップＳ２６の処理で計算された累積クラスタ数が予め設定された閾値を超えたか否かを判定する。ステップＳ２７において、累積クラスタ数が閾値を超えたと判定された場合、ステップＳ２８に進み、コード記録制御部２０３は、デバイスドライバ１８２を介して、ハードディスク１７３の、ディレクトリエントリが記録されているクラスタ内の空き領域に「E5h」を記録する。すなわち、例えば、図１７に示されるように、ステップＳ２４の処理において、ディレクトリエントリ群３８１−１に対応するクラスタに新たなディレクトリエントリが生成（記録）され、生成されたディレクトリエントリがディレクトリエントリ４０１−１０００の場合、ディレクトリエントリ群３８１−１の３２バイトからなるデータ領域４０２−１乃至４０２−２４の１バイト目に、「E5h」が記録される。
【０１４４】
これにより、データ領域４０２−１乃至４０２−２４には、新たなディレクトリエントリが生成されることはなくなる。
【０１４５】
ここで、ステップＳ２７の処理、および図１９と図２１とを参照して後述するステップＳ５８の処理とステップＳ７８の処理とで利用される閾値は、BPB３０１の１８乃至２１バイト目に記録される。通常、BPB３０１の１８乃至２１バイト目には、FAT１２またはFAT１６における「ルートディレクトリエントリの最大数（BPB RootEntCnt）」や「パーティションの総セクタ数（BPB ToSec16）」などの情報が保持される。しかしながら、本発明では、FAT32などの数百メガバイト乃至数ギガバイト、および数百ギガバイト程度のパーティションを管理可能なファイルシステムを対象にしているため使用上の問題が生じることはない。
【０１４６】
また、ステップＳ２７の処理で利用される閾値は、ハードディスクなどの記録媒体の特性（１セクタあたりの記録容量（サイズ）、回転数など）、記録媒体のドライブの特性（シーク時間など）、およびアプリケーションプログラムに要求される応答時間などを考慮した上で設定される。
【０１４７】
具体的には、例えば、HDD１１４に対して記録再生処理を行う装置（例えば、デジタルビデオカメラ１００）において、アクセス単位が１メガバイト（＝１０２４キロバイト）であり、ファイルシステム（例えば、FAT32）の処理時間が５ミリ秒である場合、また、ハードディスク１７３の特性（または仕様）において、例えば、最大シーク（フルストロークのシーク）タイムが２０ミリ秒であり、ハードディスク１７３の回転数が毎分５４００回転（revolution per minute）であり、平均サーチタイム（平均回転待ち時間）が６ミリ秒（＝１÷（５４００÷６０）÷２）であり、標準データ転送速度が１００メガビット毎秒であり、標準アクセス時間が８４ミリ秒（＝１メガバイト÷１００メガビット毎秒）である場合に閾値を算出すると次のようになる。
【０１４８】
このとき、ハードディスク１７３に対して、バッファアンダフローの発生を防ぎ、途切れることなくデータをデコードするためには、データ転送速度が、最低でも８０メガビット毎秒であり、およびアクセス時間が１０５ミリ秒以内であることが必要とされると仮定する。
【０１４９】
標準アクセス時間が８４ミリ秒である場合、シークタイムなどの和（シークタイム、サーチタイム、およびファイルシステムの処理時間の和）が２１ミリ秒（＝１０５ミリ秒−８４ミリ秒）以内であることが必要とされる。したがって、シークタイムは１０ミリ秒（２１ミリ秒−６ミリ秒−５ミリ秒）以内であることが必要とされる。
【０１５０】
すなわち、最大シーク（フルストロークのシーク）タイムが２０ミリ秒であるので、シークタイムを１０ミリ秒以内とするには、シーク量（クラスタ単位）が総クラスタ数の５０％以下であることが必要とされる。例えば、総クラスタ数が８０００００クラスタである場合、閾値は、４０００００という値となる。したがって、１０進数の４０００００を１６進数で表した値「６１Ａ８０ｈ」が、BPB３０１の１８乃至２１バイト（４バイト）目に記録される。
【０１５１】
このように、ステップＳ２７の処理、および図１９と図２１とを参照して後述するステップＳ５８の処理とステップＳ７８の処理とで利用される閾値は、セクタのサイズ、クラスタのサイズ、最大シーク時間、回転数、データ転送レート、標準アクセス時間、ファイルシステム１８１において処理に要する時間、アプリケーションプログラム１７１における単位時間あたりに処理されるデータのデータ量、バッファの容量など、ハードディスクなどの記録媒体の特性、記録媒体のドライブの特性、およびアプリケーションプログラムの特定などにより定められる。
【０１５２】
なお、この閾値は、クラスタ単位で、算出したが、セクタ単位で算出するようにしてもよい。
【０１５３】
ステップＳ２９において、ファイルシステム１８１は、ステップＳ２２と同様の処理で、次のクラスタを確保する。すなわち、ステップＳ２４の処理において、新たなディレクトリエントリが記録されたクラスタとは別のクラスタが確保される。すなわち、例えば、ステップＳ２４の処理において、新たなディレクトリエントリがディレクトリエントリ群３８１−２として記録され、ステップＳ２８の処理において、ディレクトリエントリ群３８１−２が記録されているクラスタの空き領域に「E5h」が記録された場合、ステップＳ２９の処理において、ディレクトリエントリ群３８１−３を記録するための新たなクラスタが確保される。
【０１５４】
ステップＳ３０において、累積クラスタ数計算部２０１は、累積クラスタ数をリセットする。すなわち、ステップＳ２６の処理において、算出された累積クラスタ数に０が設定され、処理は終了する。
【０１５５】
一方、ステップＳ２７において、累積クラスタ数が閾値を超えていないと判定された場合、続くクラスタに実データを記録しても、所定のシーク時間内で実データを読み出しすることができるので、ステップＳ２８乃至ステップＳ３０の処理はスキップされ、ファイルの作成の処理は終了する。
【０１５６】
以上のように、同一のディレクトリ（フォルダ）に記録されているファイルが、クラスタのサイズなどにより、複数のクラスタに分かれて記録されてしまう場合、ステップＳ２７の処理において、閾値を用い、閾値を超えた場合、ステップＳ２８の処理において、図１７に示されるように、クラスタ内の空き領域に「E5h」を記録し、ディレクトリエントリを記録するための次のクラスタを確保することで、例えば、図１６に示されるように、ディレクトリエントリ群３８１−１およびディレクトリエントリ群３８１−２のクラスタ間（ディレクトリエントリ間）、またはディレクトリエントリ群３８１−２およびディレクトリエントリ群３８１−３のクラスタ間の距離（クラスタの数で示される距離）を、一定以下にすることができる。これにより、ハードディスク１７３におけるシークタイムやサーチタイムなどを含む、応答時間を短縮することができる。
【０１５７】
また、予め想定された範囲時間内で、ファイルを読み出しすることができるため、AVデータ、例えば、DV（Digital Video）やMPEG（Moving Picture Experts Group）などの動画ファイルを多数記録する場合、シーク動作または処理のリアルタイム性を確保することが可能となり、応答時間が長くなってしまうことを防ぐことができる。
【０１５８】
さらに、動画像、音楽、および静止画像などのデータの同時再生を行う場合、シークタイムが長くなってしまうことを防ぐことができる。
【０１５９】
図１８は、デジタルビデオカメラ１００のCPU１１１が実行するクラスタ管理プログラム１９１の機能の構成の他の例を示す図である。なお、図８と同様の構成には、図８の符号と同じ符号が付してあり、その説明は、繰り返しになるので省略する。
【０１６０】
累積クラスタ数計算部２０１には、最小クラスタ数加算部４２１が設けられている。最小クラスタ数加算部４２１は、新たにファイルが記録される場合、ファイルの種類（例えば、動画像、音声、静止画像などの種類）毎に、最も小さいファイルのサイズを基に想定され、予め設定されたクラスタ数を、ハードディスク１７３に記録されているファイルのクラスタ数（累積クラスタ数計算部２０１により計算された累積クラスタ数）に加算する。また、最小クラスタ数加算部４２１は、加算した結果であるクラスタ数を示す情報を累積クラスタ数判定部２０２に供給する。
【０１６１】
累積クラスタ数判定部２０２は、最小クラスタ数加算部４２１から供給されたクラスタ数を示す情報および予め設定された閾値を基に、最小クラスタ数加算部４２１から供給されたクラスタ数が閾値を超えたか否かを判定する。また、累積クラスタ数判定部２０２は、判定結果を示す情報をコード記録制御部２０３に供給する。
【０１６２】
図１９のフローチャートを参照して、ファイルの作成の他の処理を説明する。ステップＳ５１乃至ステップＳ５６の処理のそれぞれは、図１５のステップＳ２１乃至ステップＳ２６の処理のそれぞれと同様なので、その説明は省略する。
【０１６３】
ステップＳ５１において、１０２５個目のディレクトリエントリではないと判定された場合、すなわち、例えば、ディレクトリエントリ群３８１−１には、まだ、１０２４個のディレクトリエントリが記録されていない場合、ステップＳ５７に進み、最小クラスタ数加算部４２１は、累積クラスタ数に、ファイルの種類毎に、想定される最小のクラスタ数を加算する（前回のステップＳ５６の処理において、計算された累積クラスタ数に加算する）。
【０１６４】
ステップＳ５８において、累積クラスタ数判定部２０２は、最小のクラスタ数が加算された累積クラスタ数が予め設定された閾値を超えたか否かを判定する。すなわち、ステップＳ５７の処理において、算出された累積クラスタ数が、予め設定された閾値を超えたか否かが判定される。
【０１６５】
ステップＳ５８において、累積クラスタ数が閾値を超えたと判定された場合、ステップＳ５９に進み、コード記録制御部２０３は、ステップＳ２８の処理と同様の処理で、デバイスドライバ１８２を介して、ハードディスク１７３の、ディレクトリエントリが記録されているクラスタ内の空き領域に「E5h」を記録し、ステップＳ５２に進み、上述した処理が実行される。
【０１６６】
一方、ステップＳ５８において、累積クラスタ数が閾値を超えていないと判定された場合、処理は、ステップＳ５４に進み、上述した処理が実行される。
【０１６７】
なお、ステップＳ５７において、最小のクラスタ数が加算された累積クラスタ数は、ステップＳ５８の処理の後、破棄される。すなわち、ステップＳ５６の処理で計算された累積クラスタ数は、実際に実データが記録されているクラスタの数を示し、次のファイル作成の処理まで保持されるが、ステップＳ５７の処理において求められる、最小のクラスタ数が加算された累積クラスタ数は、実データが記録されているクラスタの数に、記録されると予測されるクラスタの数を加算した結果、すなわち、実データが記録されると予測されるクラスタの数であり、次のファイル作成の処理まで保持されない。
【０１６８】
ステップＳ５６の処理が実行された後、処理は終了する。
【０１６９】
なお、ステップＳ５７の処理において用いられる予め設定されたクラスタ数は、デジタルビデオカメラ１００が、随時記録されるファイルのサイズを学習して、更新されるようにしてもよい。
【０１７０】
以上のように、予め設定された最小のクラスタ数を加算することで、例えば、図１６に示されるように、ディレクトリエントリ群３８１−１が記録されているクラスタおよびディレクトリエントリ群３８１−２が記録されているクラスタの間（ディレクトリエントリ間）、またはディレクトリエントリ群３８１−２が記録されているクラスタおよびディレクトリエントリ群３８１−３が記録されているクラスタの間の距離（間に配置されるクラスタの数）を、より正確に所望の値以下にすることができる（実データ群３９１−１乃至３９１−３のそれぞれのサイズを所定の値以下、または同じにすることができる）。これにより、ハードディスク１７３におけるシークタイムをより確実に所望の値より短く保つことができる。
【０１７１】
図２０は、デジタルビデオカメラ１００のCPU１１１が実行するクラスタ管理プログラム１９１の機能の構成のさらに他の例を示す図である。なお、図８と同様の構成には、図８の符号と同じ符号が付してあり、その説明は、繰り返しになるので省略する。
【０１７２】
累積クラスタ数計算部２０１に、ファイルサイズ加算部４４１が設けられている。ファイルサイズ加算部４４１は、記録しようとするファイルのデータ量を取得して、ファイルのデータ量からファイルの実データを記録するために必要なクラスタの数を求めて、１つのクラスタに記録されているディレクトリエントリに対応する、ファイルの実データが既に記録されている連続したクラスタの数に、記録しようとするファイルの実データを記録するために必要なクラスタの数を加算する。例えば、ファイルサイズ加算部４４１は、RAM１１３に一時的に記憶されているファイルを記録しようとする場合、新たなファイルが記録されるクラスタの数を、ハードディスク１７３において、既に他のファイルの実データが記録されているクラスタの数に加算する。また、ファイルサイズ加算部４２１は、加算したクラスタ数を示す情報を累積クラスタ数判定部２０２に供給する。
【０１７３】
累積クラスタ数判定部２０２は、ファイルサイズ加算部４４１から供給されたクラスタ数を示す情報および予め設定された閾値を基に、ファイルサイズ加算部４４１から供給されたクラスタ数が閾値を超えたか否かを判定する。また、累積クラスタ数判定部２０２は、判定結果を示す情報をコード記録制御部２０３に供給する。
【０１７４】
図２１のフローチャートを参照して、デジタルビデオカメラ１００によるファイルの作成のさらに他の処理の詳細を説明する。
【０１７５】
なお、ステップＳ７１乃至ステップＳ７６、ステップＳ７８、およびステップＳ７９のそれぞれの処理は、図１９のフローチャートを参照して上述したステップＳ５１乃至ステップＳ５６、ステップＳ５８、およびステップＳ５９のそれぞれの処理と同様なので、その詳細な説明は、適宜、省略する。
【０１７６】
ステップＳ７１において、１０２５個目のディレクトリエントリではないと判定された場合、ステップＳ７７に進み、ファイルサイズ加算部４４１は、記録しようとするファイルのサイズに応じたクラスタ数を累積クラスタ数（ステップＳ７６で算出されるクラスタ数）に加算する。
【０１７７】
例えば、ステップＳ７７において、ファイルサイズ加算部４４１は、記録しようとするファイルのデータ量を取得して、ファイルのデータ量を、１クラスタに記録できるデータ量で割り算することにより、そのファイルの実データを記録するために必要なクラスタの数を求める。そして、ファイルサイズ加算部４４１は、１つのクラスタに記録されているディレクトリエントリに対応する、ファイルの実データが既に記録されている連続したクラスタの数に、記録しようとするファイルの実データを記録するために必要なクラスタの数を加算する。
【０１７８】
より詳細には、例えば、ファイルサイズ加算部４４１は、RAM１１３に一時的に記憶されているファイルを記録しようとする場合、新たなファイルが記録されるクラスタの数を、ハードディスク１７３において、既に他のファイルの実データが記録されているクラスタの数に加算する。また、ファイルサイズ加算部４２１は、加算したクラスタ数を示す情報を累積クラスタ数判定部２０２に供給する。
【０１７９】
なお、ファイルサイズ加算部４４１は、他の記録媒体に記録されているファイルをハードディスク１７３に記録する場合には、他の記録媒体からそのファイルのヘッダを読み出すことによりファイルのサイズを取得することができ、また、ファイルがストリームとして送信されてくる場合には、データが格納されているパケットのヘッダなどから、記録しようとするファイルのサイズを取得することができ、ファイルのサイズの取得の方式はこれに限らず、本発明を限定するものではない。
【０１８０】
以上のように、ファイルの実データを記録するために必要なクラスタ数を加算することで、例えば、図１６に示されるように、ディレクトリエントリ群３８１−１が記録されているクラスタおよびディレクトリエントリ群３８１−２が記録されているクラスタの間（ディレクトリエントリ間）、またはディレクトリエントリ群３８１−２が記録されているクラスタおよびディレクトリエントリ群３８１−３が記録されているクラスタの間の距離（間に配置されるクラスタの数）を、より確実に所望の値以下にすることができる（実データ群３９１−１乃至３９１−３のそれぞれのサイズを所定の値以下、または同じにすることができる）。これにより、ハードディスク１７３におけるシークタイムをより正確かつより確実に所望の値より短く保つことができる。
【０１８１】
図２２は、本発明を適用したパーソナルコンピュータ５０１の構成例を示すブロック図である。CPU５１１は、ROM５１２に記憶されているプログラム、またはHDD５１９からRAM５１３にロードされたプログラムに従って各種の処理を実行する。RAM５１３にはまた、CPU５１１が各種の処理を実行する上において必要なデータなども適宜記憶される。
【０１８２】
CPU５１１，ROM５１２、およびRAM５１３は、バス５１４を介して相互に接続されている。このバス５１４にはまた、入出力インタフェース５１５も接続されている。
【０１８３】
入出力インタフェース５１５には、ユーザが操作して、テキストを入力するキーボード５３１、ポインティングデバイスの一例であるマウス５３２、画像を入力するスキャナ５３３、音声を入力するマイクロフォン５３４等の入力デバイスで構成される入力部５１６、ディスプレイなどの表示部５４１、音声を出力するスピーカ５４２、紙に文字または画像を印刷して、いわゆるハードコピーを出力するプリンタ５４３、紙に文字または画像を描画するプロッタ５４４等の出力デバイスで構成される出力部５１７が接続されている。さらに、入出力インタフェース５１５には、プログラムや各種データを記録するHDD５１９、およびLAN（Local Area Network）またはインターネットを含むネットワークを介してデータを通信する、USB（Universal Serial Bus）インタフェース５５１,IEEE（Institute of Electrical and Electronic Engineers）1394インタフェース５５２、ブルートゥースインタフェース５５３,IEEE802.11インタフェース５５４などの通信部５１８が接続される。
【０１８４】
USBインタフェース５５１は、USBの規格に基づき、ケーブルを介して（有線通信で）、他の機器と通信する。IEEE1394インタフェース５５２は、IEEE1394の規格に基づき、ケーブルを介して、他の機器と通信する。同様に、ブルートゥースインタフェース５５３は、ブルートゥースの規格に基づき、他の機器と無線通信する。IEEE802.11インタフェース５５４は、IEEE802.11a，IEEE802.11b、またはIEEE802.11gなどの規格に基づき、他の機器と無線通信する。
【０１８５】
入出力インタフェース５１５にはまた、必要に応じてドライブ５２０が接続され、磁気ディスク５６１、光ディスク５６２、光磁気ディスク５６３、或いは半導体メモリ５６４などが適宜装着され、それらから読み出されたコンピュータプログラムが、必要に応じてHDD５１９にインストールされる。
【０１８６】
ドライブ５２０は、CPU５１１の制御に基づいて、装着されている磁気ディスク５６１、光ディスク５６２、光磁気ディスク５６３、或いは半導体メモリ５６４などの記録媒体に記録されているデータを読み出し、読み出したデータをCPU５１１に供給する。また、CPU５１１より供給されたデータを、ドライブ５２０に装着される磁気ディスク５６１、光ディスク５６２、光磁気ディスク５６３、或いは半導体メモリ５６４などに記憶させる。
【０１８７】
なお、本明細書ではハードディスクを例に挙げて説明したが、本発明はこれに限定されることなく、MO(Magneto Optical disk)、PD(Phase change rewritable Disk)，Zip，SuperDiskといったZCAV(Zone Constant Angular Velocity)方式を採用し、ランダムアクセス可能な他の記録媒体にも適用可能である。また、ファイルシステムに関しても、UDF（Universal Disk Format）などであってもよく、FAT32に限定されるものではない。
【０１８８】
また、本発明が適用される情報処理装置の実施の形態は、図６に示されるデジタルビデオカメラ１００および図２２に示されるパーソナルコンピュータ５０１に限定されず、所定のファイルシステムを利用して、記録媒体の記録および読み出しの制御が可能な情報処理装置であれば構わない。具体的には、例えば、PDA（Personal Digital Assistants）、携帯電話機、または、デジタル電化製品（例えば、テレビジョン受像機やハードディスク録画装置）等様々な実施の形態が可能である。
【０１８９】
このように、FAT32などのファイルシステムを用いてファイルを記録するようにした場合、記録したデータを容易に管理することができる。計算手段が、第１の記録領域として、第１のデータの記録に要する記録単位の数を計算し、判定手段が、計算された記録単位の数が、データ記録媒体の読み出しにおける特性を基に予め定めた閾値を超えたか否かを判定し、記録制御手段が、計算された記録単位の数が閾値を超えたと判定された場合、計算された記録単位の数が閾値を超えたと判定された第１の記録領域に隣接する第２の記録領域の次の第２の記録領域をデータ記録媒体に配置するように、データ記録媒体への記録を制御するようにした場合には、ハードディスク１７３とのアクセスタイムを短くすることができる。
【０１９０】
この記録媒体は、図６または図２２に示すように、コンピュータとは別に、ユーザにプログラムを提供するために配布される、プログラムが記録されている磁気ディスク１４１および５６１（フレキシブルディスクを含む）、光ディスク１４２および５６２（CD-ROM（Compact Disk Read-Only Memory），DVD（Digital Versatile Disc）を含む）、光磁気ディスク１４３および５６３（MD（Mini Disc）（商標）を含む）、若しくは半導体メモリ１４４および５６４などよりなるパッケージメディアにより構成されるだけでなく、コンピュータに予め組み込まれた状態でユーザに提供される、プログラムが記録されているROM１１３および５１２、もしくはハードディスク１７３およびHDD５１９などで構成される。
【０１９１】
なお、上述した一連の処理を実行させるプログラムは、必要に応じてルータ、モデムなどのインタフェースを介して、ローカルエリアネットワーク、インターネット、デジタル衛星放送といった、有線または無線の通信媒体を介してコンピュータにインストールされるようにしてもよい。
【０１９２】
また、本明細書において、記録媒体に格納されるプログラムを記述するステップは、記載された順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくても、並列的あるいは個別に実行される処理を含むものである。
【図面の簡単な説明】
【０１９３】
【図１】FATファイルシステムを用いるハードディスクの領域の配置を示す図である。
【図２】同一のディレクトリに保存されるファイルを説明するための図である。
【図３】従来のファイル作成処理を説明するフローチャートである。
【図４】従来のハードディスクの領域の配置を示す図である。
【図５】従来のハードディスクの領域の配置を示す図である。
【図６】本発明を適用したデジタルビデオカメラの構成例を示すブロック図である。
【図７】アプリケーションプログラム、ファイルシステム、デバイスドライバ、およびハードディスクの関係を説明する図である。
【図８】デジタルビデオカメラのCPUが実行するクラスタ管理プログラムの機能の構成の例を説明する図である。
【図９】FATファイルシステムを用いるハードディスクの領域の配置を示す図である。
【図１０】図９のMBRの詳細な構成例を示す図である。
【図１１】図１０のMBR内のパーティションテーブルに格納されるパーティション情報の詳細な構成例を示す図である。
【図１２】ハードディスクのパーティションの構成例を示す図である。
【図１３】FAT32であるFATの例を示す図である。
【図１４】ディレクトリエントリの構成例を示す図である。
【図１５】ファイルの作成の処理を説明するフローチャートである。
【図１６】ハードディスクに記録されるデータを示す図である。
【図１７】ディレクトリエントリ群を説明する図である。
【図１８】デジタルビデオカメラのCPUが実行するクラスタ管理プログラムの機能の構成の他の例を説明する図である。
【図１９】ファイルの作成の他の処理を説明するフローチャートである。
【図２０】デジタルビデオカメラのCPUが実行するクラスタ管理プログラムの機能の構成のさらに他の例を説明する図である。
【図２１】ファイルの作成のさらに他の処理を説明するフローチャートである。
【図２２】本発明を適用したパーソナルコンピュータの構成例を示すブロック図である。
【符号の説明】
【０１９４】
１００  デジタルビデオカメラ，  １１１  CPU，  １１４  ハードディスクドライブ，  １７３  ハードディスク，  １８１  ファイルシステム，  １８２  デバイスドライバ，  １４１  磁気ディスク，  １４２  光ディスク，  １４３  光磁気ディスク，  １４４  半導体メモリ，  １９１  クラスタ管理プログラム，  ２０１  累積クラスタ数計算部，  ２０２  累積クラスタ数判定部，  ２０３  コード記録制御部，  ３８１−１乃至３８１−３  ディレクトリエントリ群，  ３９１−１乃至３９１−３  実データ群，  ４２１  最小クラスタ数加算部，  ４４１  ファイルサイズ加算部，  ５１１  CPU，  ５１９  ハードディスクドライブ，  ５６１  磁気ディスク，  ５６２  光ディスク，  ５６３  光磁気ディスク，  ５６４  半導体メモリ
【図１】
2005250982.tif 000003
【図２】
2005250982.tif 000004
【図３】
2005250982.tif 000005
【図４】
2005250982.tif 000006
【図５】
2005250982.tif 000007
【図６】
2005250982.tif 000008
【図７】
2005250982.tif 000009
【図８】
2005250982.tif 000010
【図９】
2005250982.tif 000011
【図１０】
2005250982.tif 000012
【図１１】
2005250982.tif 000013
【図１２】
2005250982.tif 000014
【図１３】
2005250982.tif 000015
【図１４】
2005250982.tif 000016
【図１５】
2005250982.tif 000017
【図１６】
2005250982.tif 000018
【図１７】
2005250982.tif 000019
【図１８】
2005250982.tif 000020
【図１９】
2005250982.tif 000021
【図２０】
2005250982.tif 000022
【図２１】
2005250982.tif 000023
【図２２】
2005250982.tif 000024