(57)【要約】      （修正有）【課題】ファイルにアクセスする際のアクセス時間を短縮することができるようにする。【解決手段】FATなどのファイルシステム１８１のクラスタ数算出部３７２は、ハードディスク１９１に記録可能な最大ファイル数分の、ファイルの実際のデータを参照するための情報であるエントリ情報（ディレクトリエントリ）を記録するのに必要なクラスタ数を算出する。FAT制御部３６３は、クラスタ数算出部３７２で算出されたクラスタ数だけ連続するクラスタを、クラスタ単位で管理されるデータ領域内において確保する。例えば、FATファイルシステムなどで記録媒体にファイルを記録する記録装置に適用できる。【選択図】図１７
2006252096.tif 000002
【特許請求の範囲】
【請求項１】
所定のデータ単位が複数集められた記録単位で管理されるデータ領域を有する記録媒体にファイルを記録する記録装置において、
前記記録媒体に記録可能な最大ファイル数分の、前記ファイルの実際のデータを参照するための情報であるエントリ情報を記録するのに必要な記録単位数を算出する記録単位数算出手段と、
前記記録単位数算出手段により算出された記録単位数だけ連続する前記記録単位を、前記データ領域内において確保する確保手段と
を備えることを特徴とする記録装置。
【請求項２】
前記確保手段は、前記データ領域を前記記録単位で管理する場合の記録単位の管理情報が記録される領域である管理情報領域に、記録単位が使用中であることを表す情報を記録することにより、前記記録単位数算出手段により算出された記録単位数だけ前記記録単位を確保する
ことを特徴とする請求項１に記載の記録装置。
【請求項３】
前記確保手段は、前記記録単位数算出手段により算出された記録単位数だけ連続する記録単位を、前記データ領域内の空き領域の先頭の記録単位から確保する
ことを特徴とする請求項１に記載の記録装置。
【請求項４】
前記ファイルのファイルサイズには、複数種類のファイルサイズがあり、
前記複数種類のファイルサイズのうちの最も小さなファイルサイズと、前記記録媒体全体の記録容量とから、前記記録媒体に記録可能な前記最大ファイル数を算出するファイル数算出手段をさらに備える
ことを特徴とする請求項１に記載の記録装置。
【請求項５】
前記確保手段により確保された前記記録単位に記録する、前記ファイルの前記エントリ情報を予め作成する作成手段をさらに備える
ことを特徴とする請求項１に記載の記録装置。
【請求項６】
前記作成手段が予め作成する前記ファイルの前記エントリ情報の先頭のデータは、削除済みを表すデータである
ことを特徴とする請求項５に記載の記録装置。
【請求項７】
所定のデータ単位が複数集められた記録単位で管理されるデータ領域を有する記録媒体にファイルを記録する記録方法において、
前記記録媒体に記録可能な最大ファイル数分の、前記ファイルの実際のデータを参照するための情報であるエントリ情報を記録するのに必要な記録単位数を算出する記録単位数算出ステップと、
前記記録単位数算出ステップの処理により算出された記録単位数だけ連続する前記記録単位を、前記データ領域内において確保する確保ステップと
を含むことを特徴とする記録方法。
【請求項８】
所定のデータ単位が複数集められた記録単位で管理されるデータ領域を有する記録媒体にファイルを記録する処理を、コンピュータに実行させるプログラムにおいて、
前記記録媒体に記録可能な最大ファイル数分の、前記ファイルの実際のデータを参照するための情報であるエントリ情報を記録するのに必要な記録単位数を算出する記録単位数算出ステップと、
前記記録単位数算出ステップの処理により算出された記録単位数だけ連続する前記記録単位を、前記データ領域内において確保する確保ステップと
を含むことを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、記録装置および方法、並びにプログラムに関し、特に、ファイルにアクセスする際のアクセス時間を短縮する記録装置および方法、並びにプログラムに関する。
【背景技術】
【０００２】
従来、例えば、デジタルカメラ（デジタルビデオカメラまたはデジタルスチルカメラ）、PC(Personal Computer)や携帯電話機、および据え置き型ビデオレコーダなどにおいては、ハードディスクなどのランダムアクセス可能な記録媒体に、静止画像、動画像、または音声(または音楽)といった各種のデータが、FAT（File Allocation Tables）やUDF（Universal Disk Format）などのファイルシステムによって、ファイルとして記録されるようになされている。
【０００３】
例えば、FATファイルシステムにおいてファイルが記録媒体としてのハードディスクに記録されている場合、そのファイルにアクセスするためには、まずファイルの名前や、ファイルの実際のデータ(以下、実データと称する)の格納場所等が格納されているディレクトリエントリを参照し、そのディレクトリエントリで指定されているクラスタ番号に対応するFAT領域を参照することにより、ファイルの実データが記録されている領域を特定し、アクセスする（例えば、特許文献１参照）。
【０００４】
図１乃至図９を参照して、従来のFATファイルシステムでハードディスクに記録されたファイルへのアクセスについて詳しく説明する。
【０００５】
図１は、FATファイルシステム（FAT32）によりフォーマットされているハードディスク１の種々の領域の構成の一例を示す図である。
【０００６】
図１に示すように、FATファイルシステム（FAT32）によりフォーマットされたハードディスク１は、ハードディスク１を構成するパーティションの位置やサイズなどが記録されているパーティションテーブルやアクティブなパーティションから起動用のプログラムを読み込むためのマスタブートコード（Master Boot Code）などが記録されているMBR（Master Boot Record）１１と、空き領域１２およびパーティション１３とにより構成されている。
【０００７】
パーティション１３には、１クラスタあたりのセクタ数など、ハードディスク１の物理的な属性が記録されるBPB（BIOS（Basic Input Output System） Parameter Block）２１、空き容量を高速に計算するための空きクラスタ数が記録されるFSInfo２２、後述するデータ領域２５内の各クラスタに１対１に対応する領域（FATエントリ）で構成され、各クラスタについての情報が記録されるFAT領域２３、およびFAT領域２３のバックアップなどのために利用される予備の領域であるFAT領域２４が設けられている。
【０００８】
ここで、クラスタは、FATファイルシステムにおけるデータを管理可能な最小単位であり、ハードディスク１に対する記録単位であるセクタ（１セクタのサイズ＝５１２バイト）をｎ（ｎ＝１，２，４，・・・，６４，１２８）個集めた記録単位である。なお、本明細書では、クラスタのサイズは、ｎ＝６４としたときの３２Kバイト（キロバイト）であるとする。
【０００９】
また、パーティション１３には、ファイルのディレクトリエントリおよび実データが記録される領域であるデータ領域２５が設けられている。
【００１０】
なお、FAT32の詳細は、「Microsoft Extensible Firmware Initiative FAT32 File System Specification」に開示されている。
【００１１】
図１に示すハードディスク１は、デジタルカメラ（デジタルビデオカメラまたはデジタルスチルカメラ）に搭載されており、ハードディスク１には、デジタルカメラで静止画の撮像が行われたときに作成されるファイル（画像ファイル）が記録されるものとする。
【００１２】
ここで、デジタルカメラで静止画の撮像が行われたときに作成されるファイルは、DCF(Design rule for Camera File system)の規格に準拠した、図２に示すファイル名の命名規則およびディレクトリ構成（階層構造）でハードディスク１に記録されるようになされている。
【００１３】
図２では、ハードディスク１のルート（Root）直下に、DCIMディレクトリ（フォルダ）が作成される。また、DCIMディレクトリの下の階層（以下、下層と称する）に「？？？MSDCF」のディレクトリ（サブディレクトリ）が作成される。
【００１４】
ここで、“？？？”には、ディレクトリが作成されるごとに、“１０１”から１ずつインクリメントされた数字が入力される。即ち、DCIMディレクトリの下層にディレクトリが作成されるごとに、「101MSDCF」，「102MSDCF」，「103MSDCF」・・・・というようにディレクトリの名前が付与される。なお、図２では、「101MSDCF」乃至「301MSDCF」のディレクトリが作成されている例が示されている。
【００１５】
従って、ハードディスク１では、DCIMディレクトリの下層に、「101MSDCF」乃至「999MSDCF」の、最大で８９９個のディレクトリを作成することが可能である。換言すれば、デジタルカメラに搭載されたハードディスク１では、作成されるディレクトリの最大個数が、８９９個に設定されている。
【００１６】
また、名前が「？？？MSDCF」とされる各ディレクトリには、最大で９９９９個のファイルを格納可能であることと設定し、そのファイル名として、ディレクトリごとに「DSC0＃＃＃＃.JPG」の名前が付与される。ここで、“＃＃＃＃”には、ファイルが作成されるごとに、０００１から１ずつインクリメントされた数字が入力される。即ち、各ディレクトリに、ファイルが作成されるごとに、「DSC00001.JPG」，「DSC00002.JPG」，「DSC00003.JPG」，「DSC00004.JPG」・・・・の順にファイル名が付与される。
【００１７】
図２においては、「101MSDCF」のディレクトリに、９９９９個のファイル「DSC00001.JPG」乃至「DSC09999.JPG」が作成されており、「102MSDCF」のディレクトリに、１９９個のファイル「DSC00001.JPG」乃至「DSC00199.JPG」が作成されている例が示されている。また、図２では、「200MSDCF」のディレクトリには、２２２個のファイル「DSC00001.JPG」乃至「DSC00222.JPG」が作成されており、「301MSDCF」のディレクトリには、１４５０個のファイル「DSC00001.JPG」乃至「DSC01450.JPG」が作成されている例が示されている。
【００１８】
次に、図３のフローチャートを参照して、デジタルカメラで撮像された画像のファイルが即座に記録可能なように、ハードディスク１に対して行われる従来の記録準備処理について説明する。図３の記録準備処理は、例えば、デジタルカメラの工場出荷前などの、ハードディスク１をFATファイルシステムでフォーマット（初期化）した後などに実行される。
【００１９】
初めに、ステップＳ１において、デジタルカメラのCPUは、上述したDCFの規格に準拠した「DCIM」ディレクトリをハードディスク１に作成して、ステップＳ２に進む。
【００２０】
ステップＳ２において、デジタルカメラのCPUは、「DCIM」ディレクトリの下層に、「101MSCDF」ディレクトリを作成して、処理を終了する。
【００２１】
以上のように、記録準備処理によって、１個目のファイルが作成されるときに、そのファイルを保存（記録）する場所としての、「DCIM」ディレクトリおよび「101MSCDF」ディレクトリがハードディスク１に予め作成される。
【００２２】
図４は、図３の記録準備処理終了後の、ハードディスク１のデータ領域２５（図１）の詳細な構成例を示している。
【００２３】
記録準備処理終了後のデータ領域２５では、クラスタ番号２のクラスタに、上述したステップＳ１の「DCIM」ディレクトリの作成に対応する、「DCIM」ディレクトリのディレクトリエントリが記録されている。
【００２４】
また、クラスタ番号３のクラスタに、上述したステップＳ２の「101MSDCF」ディレクトリの作成に対応する、「101MSDCF」ディレクトリのディレクトリエントリが記録されている。
【００２５】
なお、「DCIM」ディレクトリおよび「101MSDCF」ディレクトリのディレクトリエントリそれぞれは、３２バイトで構成されている。
【００２６】
また、「101MSDCF」ディレクトリのディレクトリエントリの前(クラスタ番号３のクラスタの先頭側)の、“.”は、「自分のディレクトリ」を表し、“..”は、「１つ上の階層のディレクトリ」を表すエントリである。
【００２７】
図５は、図３の記録準備処理終了後の、ハードディスク１のFAT領域２３（図１）の詳細な構成例を示している。
【００２８】
「00000000h」または「00000001h」の（アドレスの）FATエントリには、「RSV」が格納されている。「RSV」は、そのクラスタ番号（「00000000h」または「00000001h」）のクラスタがWindows（登録商標）において使用される領域であることを表す。ここで、「00000000h」または「00000001h」の「h（hexadecimal number）」は、“00000000”または”00000001”が１６進数で表現されていることを表している。以下、「h」が付加されている値は、同様に１６進数で表現されていることを表す。
【００２９】
そして、「DCIM」ディレクトリのディレクトリエントリが記録されているクラスタ番号２のクラスタに対応する「00000002h」のFATエントリには、そのクラスタ（だけ）でデータの書き込みが終了していることを表す「EOF」が格納されている。また、「101MSDCF」ディレクトリのディレクトリエントリが記録されているクラスタ番号３のクラスタに対応する「00000003h」のFATエントリにも、同様に「EOF」が格納されている。ここで、「EOF」は、実際には、所定の数（FAT32では、0FFFFFFFhで、FAT16では、FFFFhなど）である。なお、図５において「−」で示されているFATエントリには、00000000hが格納されており、そのクラスタが「未使用」（空き領域）であることを表している。
【００３０】
図６を参照して、図１のようにフォーマットされたハードディスク１を搭載した従来のデジタルカメラで静止画の撮像が行われた場合に、その静止画の画像に対応するファイルをハードディスク１に記録する処理ついて説明する。
【００３１】
初めに、ファイルDSC00001.JPGがハードディスク１のデータ領域２５に記録（作成）されるときに、記録準備処理後の図４に示したデータ領域２５において空き領域となっているクラスタのうちの先頭のクラスタである、クラスタ番号４のクラスタに、ファイルDSC00001.JPGのディレクトリエントリが記録される。
【００３２】
そして、クラスタ番号４の次の、クラスタ番号５と６のクラスタを使用して、ファイルDSC00001.JPGの実データが記録される（ファイルDSC00001.JPGの実データが、クラスタ２つ分（６４Kバイト）に相当するものとする）。
【００３３】
次に、ファイルDSC00002.JPGがデータ領域２５に記録されるときには、クラスタ番号４のクラスタにディレクトリエントリを記録する空き領域があるため、ファイルDSC00001.JPGのディレクトリエントリの後ろに、ファイルDSC00002.JPGのディレクトリエントリが記録される。
【００３４】
以下、同様にして、クラスタ番号４のクラスタには、ディレクトリ101MSDCF内にあるファイルDSC00001.JPG乃至DSC01022.JPGのディレクトリエントリが記録されている。
【００３５】
ここで、１つのクラスタのサイズは、上述したように３２Kバイトであり、１つのディレクトリエントリは３２バイトで構成される（図７で後述）ため、１つのクラスタには、１０２４のディレクトリエントリが記録可能である。ただし、クラスタ番号４のクラスタには、“.”および“..”のエントリが記録されるため、１０２２個のファイルのディレクトリエントリとなる。
【００３６】
なお、以下では、ファイルのディレクトリエントリが記録されているクラスタをディレクトリエントリクラスタと称し、ディレクトリエントリクラスタの集まりをディレクトリエントリ領域と称する。
【００３７】
また、クラスタ番号５乃至１０２８のクラスタには、ファイルDSC00001.JPG乃至DSC01022.JPGの実データが記録されている。なお、以下では、ファイルの実データが記録されているクラスタの集まりを実データ領域とも称する。
【００３８】
次に、ファイルDSC01023.JPGが記録（作成）される時に、これまでディレクトリエントリを記録していたクラスタ番号４のクラスタであるディレクトリエントリクラスタ[1]には、ディレクトリエントリを記録する空き領域がないため、新たにディレクトリエントリクラスタ[2]として、クラスタ番号１０２９のクラスタが確保され、そこにファイルDSC01023.JPGのディレクトリエントリが記録される。なお、図６では、ディレクトリエントリクラスタの番号は、その番号の数字を丸で囲んで示してある（他の図も同様）。
【００３９】
同様にして、ディレクトリエントリクラスタ[2]には、ディレクトリ101MSDCF内にあるファイルDSC01024.JPG乃至DSC02046.JPGの１０２４個のファイルのディレクトリエントリが記録されている。
【００４０】
また、クラスタ番号１０３０乃至２０５４のクラスタには、ファイルDSC01023.JPG乃至DSC02046.JPGの実データが記録されている。
【００４１】
以下、クラスタ番号２０５５以降のクラスタについても、ディレクトリエントリクラスタおよび実データ領域が同様に確保され、そこにディレクトリエントリまたは実データが記録されている。
【００４２】
なお、ディレクトリ101MSDCF内に、１つのディレクトリ内に格納するファイルの最大ファイル数である９９９９個のファイルが格納される場合、ディレクトリエントリが記録されるクラスタとして、図６右側に示すように、１０個のディレクトリエントリクラスタ[1]乃至[10]が必要となる。
【００４３】
そして、従来のFATファイルシステムにおけるハードディスク１へのファイルの記録では、そのディレクトリエントリクラスタ[1]乃至[10]は、それぞれが、図６に示すように、実データ領域に挟まれるように分散されて配置されることになる。
【００４４】
次に、図６に示したように記録されたファイルの１つを読み出す場合の処理について説明する。
【００４５】
図７は、データ領域２５に記録されるファイルのディレクトリエントリの構造の例を示す図である。なお、図中の０(h)乃至１Ｆ(h)は、０を始点としてディレクトリエントリにおけるバイト数を表す１６進数である。なお、ディレクトリエントリにおけるバイト数を、１を始点とする１０進数で表した場合、０乃至１Ｆは、それぞれ、１乃至３２で表される。
【００４６】
ディレクトリエントリの先頭に配置される、７バイトの名前３１には、ファイル名が格納される。名前３１に続く、３バイトの拡張名３２には、いわゆる、ファイルの拡張子（例えば、MPEG2（Moving Picture Experts Group phase 2）フォーマットの場合は「mpg」、MP3（MPEG Audio Layer-3）フォーマットの場合は「mp3」)が格納される。また、拡張名３２に続く、１バイトの属性３３には、ファイルかディレクトリかを表す属性が格納される。属性３３（のデータ）が20hである場合、ファイルを表し、属性３３が10hである場合、ディレクトリを表す。属性３３に続く、１バイトの予約領域３４は、未使用とされる。
【００４７】
予約領域３４に続く、３バイトの作成時刻３５には、ファイルが作成された時刻が格納される。作成時刻３５に続く、２バイトの作成日付３６には、ファイルが作成された日付が格納される。作成日付３６に続く、２バイトの最終アクセス日付３７には、ファイルにアクセスされた最終の日付が格納される。
【００４８】
最終アクセス日付３７に続く先頭クラスタ番号(High)３８と、記録時刻３９および記録日付４０に続く先頭クラスタ番号（Low）４１とには、ファイルが使用する最初のクラスタ番号（以下、先頭クラスタ番号と称する）が格納される。先頭クラスタ番号の上位２バイトが先頭クラスタ番号(High) ３８に格納され、下位２バイトが先頭クラスタ番号（Low）４１に格納される。
【００４９】
先頭クラスタ番号(High)３８に続く、２バイトの記録時刻３９には、ファイルが記録された時刻、すなわち、ファイルが最後に更新された時刻（最後に書き込まれた時刻）が格納される。記録時刻３９に続く、２バイトの記録日付４０には、ファイルが記録された日付、すなわち、ファイルが最後に更新された日付（最後に書き込まれた日付）が格納される。
【００５０】
記録時刻３９に続いて、上述した先頭クラスタ番号（Low）４１が配置され、その後のディレクトリエントリの最後の４バイトであるファイルサイズ４２には、ファイルのファイルサイズが格納される。
【００５１】
以上のように構成されるディレクトリエントリにおいて、例えば、ファイルDSC00010.JPGのディレクトリエントリに格納されている先頭クラスタ番号が「0000001Bh」である場合、ファイルDSC00010.JPGの実データを抽出（検出）するために、FAT領域２３の「0000001Bh」のアドレスのFATエントリが参照される。
【００５２】
そこで、図８は、図６のデータ領域２５に対応するFAT領域２３（の一部）を示している。
【００５３】
データ領域２５に記録するファイルのデータサイズが１クラスタのサイズ（３２Kバイト）以内であって、１つのクラスタだけでデータの書き込みが終了する場合、FAT領域２３の各FATエントリには、上述したように、「EOF」が格納される。
【００５４】
一方、データ領域２５に記録するファイルのデータサイズが１クラスタのサイズを超え、別のクラスタへとデータが続けて書き込まれている場合には、FAT領域２３の各FATエントリに、次の（データが続く先の）クラスタ番号が格納される。
【００５５】
例えば、ファイルDSC00010.JPGのディレクトリエントリに書き込まれた先頭クラスタ番号の「0000001Bh」（のアドレス）のFATエントリには、図８に示すように、「00000011h」が格納されている。また、「00000011h」のFATエントリには「00000012h」が格納され、「00000012h」のFATエントリには「00000013h」が格納され、「00000013h」のFATエントリには「00000014h」が格納され、「00000014h」のFATエントリには「00000004h」が格納され、「00000004h」のFATエントリには、「EOF」が格納されている。
【００５６】
即ち、ファイルDSC00010.JPGの実データは、クラスタ番号が、「0000001Bh」のクラスタ、「00000011h」のクラスタ、「00000012h」のクラスタ、「00000013h」のクラスタ、「00000014h」のクラスタ、および「00000004h」のクラスタに、順に記録されていることを表している。
【００５７】
従って、FAT32などのファイルシステムにおいては、ファイルをハードディスク１から読み出す場合、そのファイルのディレクトリエントリが最初に検索される。そして、ディレクトリエントリ内に保持されている先頭クラスタの番号を基に、FAT領域２３のFATエントリが参照され、参照されたFATエントリから、そのファイルの実データが記録されているクラスタ番号が順次読み出され、読み出されたクラスタ番号のクラスタから実データが読み出される。
【００５８】
一方、ファイルをハードディスク１に記録する場合、ファイルのディレクトリエントリを記録するクラスタ（ディレクトリエントリクラスタ）が最初に検索される。そして、検出されたクラスタにファイルのディレクトリエントリが記録（作成）されるとともに、ファイルの実データが、ディレクトリエントリが記録されたクラスタより後段の空き領域のクラスタに記録される。
【００５９】
以上から、ファイルを、ハードディスク１から読み出す場合およびハードディスク１に記録する場合のいずれにおいても、該当するディレクトリエントリクラスタ（読み出すファイルのディレクトリエントリが記録されたクラスタ、またはディレクトリエントリを記録する空き領域があるクラスタ）を検索する処理が最初に行われる。
【００６０】
図９を参照して、ルートディレクトリの下のディレクトリ101MSDCF内に作成された９９９９個目のファイルDSC09999.JPGのディレクトリエントリを検索する処理について説明する。
【００６１】
ファイルDSC09999.JPGのディレクトリエントリは、図６を参照して説明したように、１０番目のディレクトリエントリクラスタ[10]に格納されている。
【００６２】
そして、図９において、ディレクトリエントリが格納（記録）されているディレクトリエントリクラスタ[1]乃至[10]は、図６を参照して説明したように、データ領域２５内で分散されて配置されている。
【００６３】
従って、ファイルDSC09999.JPGのディレクトリエントリを検索する場合、デジタルカメラのCPUは、LBA(Logical Block Address)の小さい方から、ディレクトリエントリクラスタを検索する。即ち、CPUは、データ領域２５内のディレクトリエントリクラスタ[1]，[2]，[3]，・・・の順に検索し、ディレクトリクラスタ[10]において、ファイルDSC09999.JPGのディレクトリエントリを検出する。
【００６４】
この場合、CPUがディレクトリエントリクラスタ[10]に到達するまでに、ハードディスク１のドライブでは、９回のシーク動作が発生する。即ち、例えば、ディレクトリエントリクラスタ[1]とディレクトリエントリクラスタ[2]の間では、ファイルDSC00001.JPG乃至DSC01022.JPGの実データの総サイズの記録領域に相当するディスクの半径方向の距離X1のシーク動作が発生する。また、ディレクトリエントリクラスタ[2]とディレクトリエントリクラスタ[3]の間では、ファイルDSC01023.JPG乃至DSC02046.JPGの実データの総サイズの記録領域に相当するディスクの半径方向の距離X2のシーク動作が発生する。さらに、ディレクトリエントリクラスタ[3]とディレクトリエントリクラスタ[4]の間では、ファイルDSC02047.JPG乃至DSC03070.JPGの実データの総サイズの記録領域に相当するディスクの半径方向の距離X3のシーク動作が発生する。
【００６５】
【特許文献１】特開２００４−１６４３４２号公報（図４）
【発明の開示】
【発明が解決しようとする課題】
【００６６】
その結果、ディレクトリエントリクラスタ[10]に到達するまでの時間が長いため、ファイルDSC09999.JPGのディレクトリエントリを検索するまでの時間が長くなってしまう。即ち、最終的にファイルDSC09999.JPGにアクセスするアクセス時間が長くなってしまう。
【００６７】
以上のように、従来のファイルシステムでは、ファイルにアクセスする際のアクセス時間が長くなるという問題があった。
【００６８】
本発明は、このような状況に鑑みてなされたものであり、ファイルにアクセスする際のアクセス時間を短縮することができるようにするものである。
【課題を解決するための手段】
【００６９】
本発明の記録装置は、記録媒体に記録可能な最大ファイル数分の、ファイルの実際のデータを参照するための情報であるエントリ情報を記録するのに必要な記録単位数を算出する記録単位数算出手段と、記録単位数算出手段により算出された記録単位数だけ連続する記録単位を、データ領域内において確保する確保手段とを備えることを特徴とする。
【００７０】
確保手段には、データ領域を記録単位で管理する場合の記録単位の管理情報が記録される領域である管理情報領域に、記録単位が使用中であることを表す情報を記録することにより、記録単位数算出手段により算出された記録単位数だけ記録単位を確保させることができる。
【００７１】
確保手段には、記録単位数算出手段により算出された記録単位数だけ連続する記録単位を、データ領域内の空き領域の先頭の記録単位から確保させることができる。
【００７２】
ファイルのファイルサイズには、複数種類のファイルサイズがあり、複数種類のファイルサイズのうちの最も小さなファイルサイズと、記録媒体全体の記録容量とから、記録媒体に記録可能な最大ファイル数を算出するファイル数算出手段をさらに設けることができる。
【００７３】
確保手段により確保された記録単位に記録する、ファイルのエントリ情報を予め作成する作成手段をさらに設けることができる。
【００７４】
作成手段が予め作成するファイルのエントリ情報の先頭のデータは、削除済みを表すデータであるようにさせることができる。
【００７５】
本発明の記録方法は、記録媒体に記録可能な最大ファイル数分の、ファイルの実際のデータを参照するための情報であるエントリ情報を記録するのに必要な記録単位数を算出する記録単位数算出ステップと、記録単位数算出ステップの処理により算出された記録単位数だけ連続する記録単位を、データ領域内において確保する確保ステップとを含むことを特徴とする。
【００７６】
本発明のプログラムは、記録媒体に記録可能な最大ファイル数分の、ファイルの実際のデータを参照するための情報であるエントリ情報を記録するのに必要な記録単位数を算出する記録単位数算出ステップと、記録単位数算出ステップの処理により算出された記録単位数だけ連続する記録単位を、データ領域内において確保する確保ステップとを含むことを特徴とする。
【００７７】
本発明においては、記録媒体に記録可能な最大ファイル数分の、ファイルの実際のデータを参照するための情報であるエントリ情報を記録するのに必要な記録単位数が算出され、算出された記録単位数だけ連続する記録単位が、データ領域内において確保される。
【発明の効果】
【００７８】
本発明によれば、ファイルにアクセスする際のアクセス時間を短縮することができる。
【発明を実施するための最良の形態】
【００７９】
以下に本発明の実施の形態を説明するが、請求項に記載の構成要件と、発明の実施の形態における具体例との対応関係を例示すると、次のようになる。この記載は、請求項に記載されている発明をサポートする具体例が、発明の実施の形態に記載されていることを確認するためのものである。従って、発明の実施の形態中には記載されているが、構成要件に対応するものとして、ここには記載されていない具体例があったとしても、そのことは、その具体例が、その構成要件に対応するものではないことを意味するものではない。逆に、具体例が構成要件に対応するものとしてここに記載されていたとしても、そのことは、その具体例が、その構成要件以外の構成要件には対応しないものであることを意味するものでもない。
【００８０】
さらに、この記載は、発明の実施の形態に記載されている具体例に対応する発明が、請求項に全て記載されていることを意味するものではない。換言すれば、この記載は、発明の実施の形態に記載されている具体例に対応する発明であって、この出願の請求項には記載されていない発明の存在、すなわち、将来、分割出願されたり、補正により追加されたりする発明の存在を否定するものではない。
【００８１】
請求項１に記載の記録装置は、
所定のデータ単位（例えば、セクタ）が複数集められた記録単位（例えば、クラスタ）で管理されるデータ領域を有する記録媒体（例えば、図１７のハードディスク１９１）にファイルを記録する記録装置（例えば、図１０のデジタルカメラ１００）において、
前記記録媒体に記録可能な最大ファイル数分の、前記ファイルの実際のデータを参照するための情報であるエントリ情報を記録するのに必要な記録単位数を算出する記録単位数算出手段（例えば、図１７のクラスタ数算出部３７１）と、
前記記録単位数算出手段により算出された記録単位数だけ連続する前記記録単位を、前記データ領域内において確保する確保手段（例えば、図１７のFAT制御部３６３）と
を備えることを特徴とする。
【００８２】
請求項４に記載の記録装置は、
前記ファイルのファイルサイズには、複数種類のファイルサイズがあり、
前記複数種類のファイルサイズのうちの最も小さなファイルサイズと、前記記録媒体全体の記録容量とから、前記記録媒体に記録可能な前記最大ファイル数を算出するファイル数算出手段（例えば、図１７のファイル数算出手段３７１）をさらに備える
ことを特徴とする。
【００８３】
請求項５に記載の記録装置は、
前記確保手段により確保された前記記録単位に記録する、前記ファイルの前記エントリ情報を予め作成する作成手段（例えば、図１７のディレクトリエントリ作成部３７３）をさらに備える
ことを特徴とする。
【００８４】
請求項７に記載の記録方法は、
所定のデータ単位が複数集められた記録単位で管理されるデータ領域を有する記録媒体にファイルを記録する記録方法において、
前記記録媒体に記録可能な最大ファイル数分の、前記ファイルの実際のデータを参照するための情報であるエントリ情報を記録するのに必要な記録単位数を算出する記録単位数算出ステップ（例えば、図２２のステップＳ２４の処理）と、
前記記録単位数算出ステップの処理により算出された記録単位数だけ連続する記録単位を、前記データ領域内において確保する確保ステップ（例えば、図２２のステップＳ２７の処理）と
を含むことを特徴とする。
【００８５】
請求項８に記載のプログラムの各ステップの具体例も、請求項７に記載の記録方法の各ステップの発明の実施の形態における具体例と同様である。
【００８６】
以下、図を参照して、本発明の実施の形態について説明する。
【００８７】
図１０は、本発明を適用したデジタルカメラ１００の一実施の形態の構成例を示すブロック図である。
【００８８】
CPU（Central Processing Unit）１１１は、例えば、組込型の汎用マイクロプロセッサなどからなり、デジタルカメラ１００の全体を制御する。CPU１１１には、ROM（Read Only Memory）１１２およびRAM（Random Access Memory）１１３が接続されている。例えば、CPU１１１は、ROM１１２に記憶されているプログラム、または、ハードディスクドライブ（以下、HDDと称する）１１４や、後述するドライブ１２５に装着された磁気ディスク１４１、光ディスク１４２、光磁気ディスク１４３、若しくは半導体メモリ１４４などからRAM１１３にロードされたプログラムを実行することにより、デジタルカメラ１００の全体の動作を制御する。RAM１１３にはまた、CPU１１１が各種の処理を実行する上において必要なデータなどが適宜記憶される。
【００８９】
CPU１１１にはまた、カメラ機能部１１５および画像信号処理部１１６が接続されている。カメラ機能部１１５は、専用のIC(Integrated Circuit)などからなり、CPU１１１の制御の下、光学レンズ部１１７を制御し、駆動する。例えば、カメラ機能部１１５は、光学レンズ部１１７による被写体１５１の撮影動作を開始させたり、終了させたりする他、光学レンズ部１１７のズーム率、取り込む光量などを適宜制御する。
【００９０】
光学レンズ部１１７は、光学レンズおよび絞りなどからなり、被写体１５１の画像を光電変換部１１８（の受光部）に結像させる。
【００９１】
CCD（Charge Coupled Device）またはC-MOS（Complementary-Metal Oxide Semiconductor）センサなどの撮像素子により構成される光電変換部１１８は、光学レンズ部１１７によって結像された画像を電気信号に変換して、生成されたアナログの電気信号（被写体１５１の画像に対応する電気信号）を画像信号処理部１１６に供給する。画像信号処理部１１６は、CPU１１１の制御の下、光電変換部１１８より供給された被写体１５１の画像に対応する電気信号に、所定の画像処理を適用する。以下、電気信号を単に信号と称する。
【００９２】
具体的には、例えば、デジタルカメラ１００の画像信号処理部１１６は、被写体１５１の画像に対応するアナログの信号を、A/D（Analog to Digital）変換して、デジタルの画像データとし、その画像データに対して、例えば、ホワイトバランスの調整、欠陥画素の補間などの画像処理を適用した後、必要に応じてJPEG(Joint Photographic Experts Group）方式等で圧縮符号化する。
【００９３】
画像信号処理部１１６は、圧縮符号化された画像データをCPU１１１に供給する。
【００９４】
即ち、画像信号処理部１１６は、光電変換部１１８より供給された被写体１５１の画像に対応するアナログの信号を、所定のフォーマットにより圧縮符号化された画像データに変換して、CPU１１１に供給する。
【００９５】
CPU１１１は、画像信号処理部１１６より供給された画像データを、ファイルとして、HDD１１４、またはドライブ１２５に装着されている磁気ディスク１４１、光ディスク１４２、光磁気ディスク１４３、若しくは半導体メモリ１４４などに記録させる。
【００９６】
また、画像信号処理部１１６は、被写体１５１の画像に対応するアナログの信号を、A/D変換して、ホワイトバランスを調整し、または欠陥画素を補間した画像データを、液晶ディスプレイ１１９および画像入出部１２０に供給する。より具体的には、画像信号処理部１１６は、その画像データを、液晶ディスプレイ１１９の入力方式である、例えば、RGB（Red, Green, Blue）信号に変換して、液晶ディスプレイ１１９に供給する。液晶ディスプレイ１１９は、画像信号処理部１１６より供給されたRGB信号に対応する画像（例えば、被写体１５１の撮像により取得された画像）を表示する。同様に、画像信号処理部１１６は、RGB信号を画像入出部１２０にも供給する。
【００９７】
さらに、画像信号処理部１１６は、CPU１１１を介して、HDD１１４、または磁気ディスク１４１、光ディスク１４２、光磁気ディスク１４３、若しくは半導体メモリ１４４にファイルとして記録されている画像データを読み出して、読み出しされた画像データに対応する信号を液晶ディスプレイ１１９または画像入出力部１２０に供給する。
【００９８】
画像入出力部１２０は、例えばテレビジョン受像機などの外部の画像表示装置または画像記録再生装置などの機器に画像信号である信号を入力または出力するためのインタフェースである。
【００９９】
CPU１１１にはまた、音声処理部１２１が接続されている。音声処理部１２１は、CPU１１１から供給された、HDD１１４、または磁気ディスク１４１、光ディスク１４２、光磁気ディスク１４３、若しくは半導体メモリ１４４から読み出された音声データに対して、所定の音声処理を施す。また、音声処理部１２１は、音声入出力部１２２から供給された音声信号または音声データに対しても音声処理を施す。
【０１００】
音声処理部１２１は、音声処理を施した結果得られる音声データまたは音声信号をCPU１１１または音声入出力部１２２に供給する。
【０１０１】
音声入出力部１２２は、マイクロフォン、スピーカ、および外部の機器とのインタフェースである。例えば、音声入出力部１２２は、音声処理部１２１より供給された音声信号を図示せぬテレビジョン受像機などの外部の機器に供給する。また、音声入出力部１２２は、図示せぬ機器から供給される音声信号を取得して、音声処理部１２１に供給する。
【０１０２】
また、音声入出力部１２２は、例えば、光学レンズ部１１７や光電変換部１１８が被写体１５１を撮影している場合、その被写体１５１自身またはその周辺で発生された音声を取得し、音声信号に変換して音声処理部１２１に供給する。
【０１０３】
音声信号処理部１２１は、音声入出力部１２２から供給された音声信号に、所定の音声処理を施し、その結果得られる音声データをCPU１１１の制御に基づいて、HDD１１４、または磁気ディスク１４１、光ディスク１４２、光磁気ディスク１４３、若しくは半導体メモリ１４４に供給し、記録させる。
【０１０４】
CPU１１１にはさらにまた、操作入力部１２３、および通信部１２４が接続されている。
【０１０５】
操作入力部１２３は、ボタン、スイッチ、もしくはリモートコントローラなどにより構成され、ユーザにより、所定の指令に対応する操作入力が行われた場合、その操作入力に対応する信号をCPU１１１に供給する。CPU１１１は、操作入力部１２３より供給された信号に対応する処理を実行する。
【０１０６】
通信部１２４は、CPU１１１の制御に基づいて、図示せぬ他の装置との通信処理を実行する。すなわち、通信部１２４は、画像信号処理部１１６より出力された画像データ等の様々な情報を他の装置に送信するとともに、他の装置より送信された画像データ、またはプログラム等の様々な情報を受信する。例えば、通信部１２４が画像データを受信した場合、CPU１１１は、それをRAM１１３やHDD１１４、またはドライブ１２５に装着された磁気ディスク１４１、光ディスク１４２、光磁気ディスク１４３、若しくは半導体メモリ１４４に記憶させる。また、例えば、通信部１２４がプログラムを受信した場合、CPU１１１は、それをRAM１１３にロードしたり、HDD１１４に記憶させる。
【０１０７】
なお、通信部１２４は、無線または有線による通信を行うものでもよいし、無線と有線の両方の通信が可能なものでもよい。さらに、その通信方式も特に限定されず、例えば、無線の場合、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１１１より供給されたデータを、ドライブ１２５に装着される磁気ディスク１４１、光ディスク１４２、光磁気ディスク１４３、または半導体メモリ１４４に記録させる。
【０１０９】
電源１２６は、デジタルカメラ１００の各部に必要な電力を供給する。
【０１１０】
以上のように構成されるデジタルカメラ１００では、撮像された被写体１５の画像に対応する画像データが、ファイルとして、HDD１１４、または磁気ディスク１４１、光ディスク１４２、光磁気ディスク１４３、または半導体メモリ１４４に記録される。
【０１１１】
以下では、撮像された被写体１５の画像に対応する画像データが格納されたファイルが、HDD１１４に記録される場合について説明する。
【０１１２】
HDD１１４には、撮像された被写体１５の画像に対応するファイルが、DCF(Design rule for Camera File system)の規格に従って記録される。
【０１１３】
また、撮像された被写体１５の画像に対応するファイルのファイル名の命名規則や、ファイルが格納されるディレクトリの階層構造などは、図２を参照して上述した従来における場合と同様である。
【０１１４】
即ち、HDD１１４内のハードディスク１９１（図１１）のルート（Root）直下に、「DCIM」ディレクトリ（フォルダ）が作成される。また、「DCIM」ディレクトリの下層に「？？？MSDCF」のディレクトリが作成される。ここで、“？？？”には、ディレクトリが作成されるごとに、“１０１”から１ずつインクリメントされた数字が入力される。即ち、「DCIM」ディレクトリの下層にディレクトリが作成されるごとに、「101MSDCF」，「102MSDCF」，「103MSDCF」・・・・というようにディレクトリの名前が付与される。
【０１１５】
従って、「DCIM」ディレクトリの下層には、「101MSDCF」乃至「999MSDCF」の、最大で８９９個のディレクトリを作成することが可能である。換言すれば、作成されるディレクトリの最大個数は、８９９個に設定されている。
【０１１６】
また、「？？？MSDCF」とされる各ディレクトリには、最大で９９９９個のファイルを格納可能であることと設定し、そのファイル名としては、ディレクトリごとに「DSC0＃＃＃＃.JPG」の名前が付与される。ここで、“＃＃＃＃”には、ファイルが作成されるごとに、０００１から１ずつインクリメントされた数字が入力される。即ち、各ディレクトリに、ファイルが作成されるごとに、「DSC00001.JPG」，「DSC00002.JPG」，「DSC00003.JPG」，「DSC00004.JPG」・・・・の順にファイル名が付与される。
【０１１７】
図１１は、HDD１１４に内蔵されているハードディスク（磁気ディスク）１９１に対してファイルの記録および読み出しを行う場合の、CPU１１１の機能的な構成例を示すブロック図である。
【０１１８】
CPU１１１は、アプリケーションプログラム１７１およびオペレーティングシステム（以下、OSと称する）１７２により構成される。OS１７２には、ファイルシステム１８１およびデバイスドライバ１８２が少なくとも含まれている。
【０１１９】
アプリケーションプログラム１７１は、各種の処理を実行して、ファイルの記録および読み出しをオペレーティングシステム１７２に要求する。オペレーティングシステム１７２は、いわゆる基本プログラムであり、例えば、デジタルカメラ１００のハードウェアなどのリソースの取り扱いを制御する。
【０１２０】
ファイルシステム１８１は、例えば、FATファイルシステム（FAT32）であり、ハードディスク１９１に記録されているデータを、クラスタ単位で管理する。デバイスドライバ１８２は、HDD１１４の動作に必要な情報をOS１７２に供給し、ハードディスク１９１へのデータの記録またはハードディスク１９１に記録されているデータの読み出しなど、HDD１１４の動作を制御する。
【０１２１】
アプリケーションプログラム１７１は、OS１７２のファイルシステム１８１に対して、ファイル単位（レベル）でのアクセス（読み出しまたは書き込み）を要求（指示）する。      
【０１２２】
ファイルシステム１８１は、ファイルをクラスタ単位で管理しており、アプリケーションプログラム１７１からファイルへのアクセスが要求された場合、そのファイルの該当するクラスタ（以下、該当クラスタと称する）を検索する。例えば、アプリケーションプログラム１７１からファイルシステム１８１に対して、ファイルの読み出しが要求された場合、ファイルシステム１８１は、そのファイルの実データが記録されているクラスタを該当クラスタとして検索する。また例えば、アプリケーションプログラム１７１からファイルシステム１８１に対してファイルの書き込みが要求された場合、ファイルシステム１８１は、ファイルの実データを書き込み可能な空きクラスタを該当クラスタとして検索する。
【０１２３】
そして、ファイルシステム１８１は、検索された該当クラスタをLBA(Logical Block Addressing)に変換し、デバイスドライバ１８２に対して、セクタ単位でアクセスを要求する。
【０１２４】
デバイスドライバ１８２は、HDD１１４の動作を制御し、ファイルシステム１８１からアクセスが要求されたセクタにアクセスする。
【０１２５】
HDD１１４は、デバイスドライバ１８２の制御の下で、内蔵するハードディスク１９１の要求されたセクタにアクセスする。またHDD１１４は、必要に応じて、アクセスの要求に対する応答を行う。例えば、HDD１１４は、デバイスドライバ１８２からセクタ単位での読み出しが要求された場合、セクタ毎に記録されているデータをデバイスドライバ１８２に供給する。
【０１２６】
デバイスドライバ１８２は、ファイルシステム１８１に対し、セクタ単位でのアクセスの要求に対する応答を行う。例えば、デバイスドライバ１８２は、ハードディスク１９１から読み出されたデータを、セクタ単位でファイルシステム１８１に供給する。ファイルシステム１８１は、アプリケーションプログラム１７１に対して、ファイル単位でのアクセスの要求に対する応答を行う。例えば、ファイルシステム１８１は、複数のクラスタから読み出されたファイルの実データを、ファイル単位でアプリケーションプログラム１７１に供給する。
【０１２７】
図１２乃至図１６を参照して、FATファイルシステムでフォーマットされたハードディスク１９１のデータ構成について説明する。
【０１２８】
図１２は、画像データを含む各種のデータが、FATファイルシステムでHDD１１４に記録される場合の、ハードディスク１９１上のデータの配置を示している。
【０１２９】
ハードディスク１９１の先頭のセクタ２２１(LBA＝0のセクタ)には、デジタルカメラ１００を起動させる場合に、ハードディスク１９１に記録されているOS１７２を実行させるためのMBR(Master Boot Record)２３１が配置されている。
【０１３０】
MBR２３１は、いわゆる、アクティブであるパーティションを示すコードなどを含む起動コード領域２５１、並びに各パーティション（後述するパーティション２４１乃至２４４）の先頭のLBA（図中の矢印で示す位置）および各パーティションのサイズなどを表すパーティションテーブル２５２により構成されている。
【０１３１】
先頭セクタ２２１に続いて、所定の数のセクタからなる空き領域２２２が配置されている。
【０１３２】
さらに、空き領域２２２に続いて、ファイルなどが記録されるデータ領域２２３が配置されている。データ領域２２３は、最大で４個のパーティションに区分することが可能であり、図１２では、４つのパーティション２４１乃至２４４に区分されている。
【０１３３】
図１３は、図１２のMBR２３１のさらに詳細な構成を示している。
【０１３４】
MBR２３１は、５１２バイトからなり、４４６バイトの起動コード領域２５１、６４バイトのパーティションテーブル２５２、および２バイトのブートシグニチャ２６１により構成されている。
【０１３５】
起動コード領域２５１は、MBR２３１の先頭の０バイト目から４４５バイト目までの領域であり、アクティブなパーティションから起動用のプログラムを読み込むためのマスタブートコード（Master Boot Code(Initial Program Loaderとも呼ばれる)）が記録されている。
【０１３６】
パーティションテーブル２５２には、MBR２３１の先頭から数えて４４６バイト目から始まり、４つのパーティション２４１乃至２４４それぞれに対応するパーティションテーブル２７１乃至２７４が記録されている。
【０１３７】
図１４は、図１３の４つのパーティションテーブル２７１乃至２７４のうちの、パーティションテーブル２７１の構成例を示している。なお、その他のパーティションテーブル２７２乃至２７４それぞれの構成も同様である。
【０１３８】
パーティションテーブル２７１は、１６バイトで構成されている。そして、パーティションテーブル２７１には、図１４に示されるように、先頭から順に、１バイトのフラグ２８１，３バイトの開始セクタ（CHS（Cylinder/Head/Sector））２８２，１バイトのタイプ２８３，３バイトの終了セクタ（CHS）２８４，４バイトの開始セクタ（LBA）２８５、および４バイトのパーティションサイズ２８６が格納されている。
【０１３９】
フラグ２８１は、パーティションがアクティブであるか否かを表す、いわゆる起動フラグである。例えば、フラグ２８１が“00h”である場合、そのパーティションがノンアクティブである（いわゆる起動パーティションでない）ことを表し、フラグ２８１が“80h”である場合、そのパーティションがアクティブである（いわゆる起動パーティションである）ことを表す。
【０１４０】
開始セクタ２８２は、シリンダ／ヘッド／セクタという３つのパラメータで、パーティションの先頭のセクタのアドレスを表す。タイプ２８３は、そのパーティションがフォーマットされているファイルシステムの方式を表す。例えば、タイプ２８３が“80h”である場合、そのパーティションのファイルシステムは、FAT32であることを表している。
【０１４１】
終了セクタ２８４は、シリンダ／ヘッド／セクタという３つのパラメータで、パーティションの最後のセクタのアドレスを表す。開始セクタ２８５は、LBAによる、パーティションの先頭のセクタのアドレスを表す。パーティションサイズ２８６は、パーティションに含まれるセクタの総数を表す。
【０１４２】
以上のようにパーティションテーブル２７１では、パーティション２４１に関する情報が格納されている。
【０１４３】
次に、図１５を参照して、パーティション２４１の詳細な構成例について説明する。なお、以下では、説明を簡単にするため、図１２のパーティションテーブル２５２に１つのパーティション（パーティション２４１）のみが登録されたものとする。
【０１４４】
即ち、図１５は、パーティションが（パーティション２４１の）１つの場合の、図１２のハードディスク１９１上のデータの配置を示している。
【０１４５】
パーティション２４１は、図１５に示されるように、BPB３０１，FSInfo３０２，FAT領域３０３，FAT領域３０４、およびデータ領域３０５から構成されている。
【０１４６】
BPB３０１，FSInfo３０２，FAT領域３０３，FAT領域３０４、およびデータ領域３０５のそれぞれは、図１で説明した、ハードディスク１のBPB２１，FSInfo２２，FAT領域２３，FAT領域２４、およびデータ領域２５と同様であるので、その詳細な説明を省略する。
【０１４７】
図１６は、ハードディスク１９１がFAT16のFATファイルシステムでフォーマットされている場合の、ハードディスク１９１上のデータの配置を示している。なお、図１６において、図１５における場合と対応する部分については、同一の符号を付してあり、その説明を省略する。
【０１４８】
即ち、FAT16のFATファイルシステムでハードディスク１９１がフォーマットされている場合、パーティション２４１は、図１５で示したFAT32のパーティション２４１の構成と比較して、FSInfo３０２が削除され、ルートディレクトリエントリ領域３３１が新たに設けられている。
【０１４９】
ルートディレクトリエントリ領域３３１には、ルートディレクトリ直下に作成されたディレクトリおよびファイルに関する情報（以下、適宜、ルートディレクトリの情報と称する）が記録される。図１５に示したFAT３２のFATファイルシステムでは、ルートディレクトリの情報は、データ領域３０５内に記録されるが、FAT16のFATファイルシステムでは、ルートディレクトリの情報が、データ領域３０５とは独立してFAT領域３０４とデータ領域３０５との間に設けられている。
【０１５０】
図１７は、図１１のファイルシステム１８１のより詳細な構成例（機能的な構成例）を示すブロック図である。
【０１５１】
ファイルシステム１８１は、記録制御部３５１およびメディア制御部３５２により構成されている。記録制御部３５１では、ハードディスク１９１にアクセスするデータがクラスタ単位で処理される。メディア制御部３５２では、ハードディスク１９１にアクセスするデータがセクタ単位で処理される。
【０１５２】
記録制御部３５１は、ディレクトリエントリ制御部３６１、クラスタ制御部３６２、およびFAT制御部３６３により構成され、さらに、ディレクトリエントリ制御部３６１は、ファイル数算出部３７１、クラスタ数算出部３７２、およびディレクトリエントリ作成部３７３により構成されている。メディア制御部３５２は、位置算出部３８１により構成されている。
【０１５３】
以下では、アプリケーションプログラム１７１からの要求に従い、ファイルシステム１８１がハードディスク１９１のフォーマットを実行する場合と、ファイルシステム１８１がフォーマット後のハードディスク１９１に対してアクセスする場合とに分けて、ファイルシステム１８１内の各ブロックについて説明する。
【０１５４】
まず、ファイルシステム１８１がハードディスク１９１のフォーマットを実行する場合、ファイルシステム１８１は、図１５に示した各領域を作成するとともに、デジタルカメラ１００で撮像された画像のファイルが即座に記録可能なようにハードディスク１９１に対して記録準備処理を行う。
【０１５５】
記録準備処理では、ファイル数算出部３７１が、デジタルカメラ１００で作成される画像のファイルのファイルサイズのうちの最も小さなファイルサイズFsizeと、ハードディスク１９１の記録容量（記憶容量）MCAPとから、ハードディスク１９１に記録可能な最大ファイル数およびディレクトリ数を算出する。
【０１５６】
RAM１１３（図１０）には、デジタルカメラ１００で作成可能な画像の解像度(画素数)と、その解像度でファイルを作成した場合のファイルサイズとが対応付けられたテーブルが記憶されている。例えば、画像の解像度としては、縦×横の画素数が、VGAサイズの640×480、１M（メガ）サイズの1280×960、2Mサイズの2048×1536などがあり、その各解像度に、ファイルを作成した場合のファイルサイズが対応付けられている。例えば、VGAサイズに対しては、ファイルサイズとして64KBが対応付けられている。従って、テーブルとして記憶されている複数種類のファイルサイズのうちの最も小さなファイルサイズFsizeは、最低画質（画素数）のVGAサイズで撮像し、ファイルを作成した場合であるので、最も小さなファイルサイズFsizeとして、64KBが採用される。
【０１５７】
そして、ファイル数算出部３７１は、記録容量MCAPをファイルサイズFsizeで除算することにより、最大ファイル数FNUMmaxを算出する。また、「DCIM」ディレクトリの下層に作成される１つのディレクトリには、最大で９９９９個までのファイルしか格納することができないので、算出された最大ファイル数FNUMmaxから、「DCIM」ディレクトリの下層に必要なディレクトリ数ｉも得ることができる。
【０１５８】
クラスタ数算出部３７２は、ファイル数算出部３７１で算出された最大ファイル数FNUMmax分の、ファイルの実際のデータを参照するための情報であるディレクトリエントリ（エントリ情報）を記録するのに必要なクラスタ数CNUMを算出する。また、クラスタ数算出部３７２は、クラスタを連続してデータ領域３０５内に確保する確保命令を、算出されたクラスタ数CNUMとともに、FAT制御部３６３に供給する。
【０１５９】
FAT制御部３６３は、クラスタ数算出部３７２からの確保命令に従い、デバイスドライバ１８２を制御して、クラスタ数CNUMで指定された数だけ連続するクラスタをデータ領域３０５内に確保する。具体的には、FAT制御部３６３は、データ領域３０５をクラスタ単位で管理する場合のクラスタの管理情報が記録されるハードディスク１９１のFAT領域３０３（管理情報領域）内の連続するFATエントリに、クラスタが使用中であることを表す情報を記録することにより、データ領域３０５内の連続するクラスタを確保する。
【０１６０】
次に、ファイルシステム１８１がフォーマット後のハードディスク１９１に対してアクセスする場合の、ファイルシステム１８１の各ブロックについて説明する。
【０１６１】
ファイルシステム１８１において、アプリケーションプログラム１７１から、ファイル名とともに実データが供給され、ハードディスク１９１に対するファイルの書き込みが要求された場合、ディレクトリエントリ作成部３７３は、ファイルのディレクトリエントリや実データを記録するクラスタを検索させるクラスタ検索命令をFAT制御部３６３に供給する。そして、クラスタ検索命令に応答して、検索されたクラスタを表すクラスタ情報が、FAT制御部３６３からディレクトリエントリ作成部３７３に供給される。
【０１６２】
ディレクトリエントリ作成部３７３は、図７で上述したディレクトリエントリの各種のデータを作成するとともに、FAT制御部３６３からのクラスタ情報に基づきクラスタを指定して、作成されたディレクトリエントリ（のデータ）と実データとをクラスタ制御部３６２に供給する。
【０１６３】
クラスタ制御部３６２は、クラスタ番号とともに、そこに記録する記録データ（ディレクトリエントリおよび実データ）を位置算出部３８１に供給する。
【０１６４】
位置算出部３８１は、クラスタ制御部３６２からのクラスタ番号をLBAに変換し、セクタ単位で、記録データをデバイスドライバ１８２に供給する。
【０１６５】
次に、ファイルシステム１８１において、アプリケーションプログラム１７１から、ファイル名を指定して、ファイルの読み出しが要求された場合、ディレクトリエントリ作成部３７３は、読み出しが指定されたファイルのディレクトリエントリをクラスタ制御部３６２に検索させる。
【０１６６】
クラスタ制御部３６２または位置算出部３８１は、それぞれ、クラスタ単位またはセクタ単位で、読み出しが指定されたファイルのディレクトリエントリを検索し、検出されたディレクトリエントリをディレクトリエントリ作成部３７３に供給する。
【０１６７】
ディレクトリエントリ作成部３７３は、検出されたディレクトリエントリの先頭クラスタ番号をFAT制御部３６３に供給し、それに応答してFAT制御部３６３から供給されるクラスタ情報を取得する。ここで、取得されるクラスタ情報は、読み出しが指定されたファイルの実データの記録場所が先頭クラスタ番号で表されるクラスタのみである場合には、その旨を表す情報であり、読み出しが指定されたファイルの実データの記録場所が先頭クラスタ番号で表されるクラスタを含む複数のクラスタに記録されている場合には、その複数のクラスタを表す情報である。
【０１６８】
ディレクトリエントリ作成部３７３は、FAT制御部３６３からのクラスタ情報に基づきクラスタを指定して、ファイルの実データをクラスタ制御部３６２に取得させ、供給させる。クラスタ制御部３６２は、指定されたクラスタの実データを位置算出部３８１に取得させ、ディレクトリエントリ作成部３７３に供給する。位置算出部３８１は、デバイスドライバ１８２を制御してハードディスク１９１からセクタ単位で実データを取得し、クラスタ単位にしてクラスタ制御部３６２に供給する。
【０１６９】
図１８を参照して、図１７のファイルシステム１８１が行う記録準備処理について説明する。なお、図１８では、HDD１１４のハードディスク１９１に記録可能な最大ファイル数FNUMmaxは、９９９９個であり、従って「DCIM」ディレクトリの下層に作成されるディレクトリは、「101MSDCF」ディレクトリだけであるとする。
【０１７０】
図１８は、ハードディスク１９１に対して記録準備処理を行った後のパーティション２４１を示している。
【０１７１】
記録準備処理では、まずファイルシステム１８１は、ハードディスク１９１に記録可能な最大ファイル数FNUMmaxおよびディレクトリ数を算出する。ここでは、上述したように、最大ファイル数FNUMmaxが９９９９個で、ディレクトリ数ｉが「101MSDCF」ディレクトリの１つである。
【０１７２】
そして、必要なディレクトリ数ｉが決定すると、ファイルシステム１８１は、図２で上述した命名規則に従って、DCIMディレクトリおよび101MSDCFディレクトリをハードディスク１９１に作成する。
【０１７３】
これにより、図１８に示すように、データ領域３０５内のクラスタ番号２のクラスタに、「DCIM」ディレクトリのディレクトリエントリが作成（記録）される。また、データ領域３０５内のクラスタ番号３のクラスタに、「自分のディレクトリ」を表す“.”エントリ、「１つ上の階層のディレクトリ」を表す“..”エントリ、および「101MSDCF」ディレクトリのディレクトリエントリが作成（記録）される。
【０１７４】
次に、ファイルシステム１８１は、９９９９個のファイルのディレクトリエントリを記録するのに必要なクラスタを確保する。
【０１７５】
初めに、９９９９個のファイルのディレクトリエントリを記録するのに必要なクラスタ数CNUMが算出される。
【０１７６】
例えば、最大ファイル数FNUMmaxが９９９９個である場合には、その９９９９個のファイルのディレクトリエントリを記録するのに必要なクラスタ数CNUMは、（９９９９＋２）÷１０２４の商に端数（小数部分）を切り上げた値である１０（個）となる。
【０１７７】
ここで、“９９９９”に加算される“２”は、ファイルDSC00001.JPGのディレクトリエントリが記録されるクラスタの先頭に「自分のディレクトリ」を表す“.”エントリと「１つ上の階層のディレクトリ」を表す“..”エントリが必要となるため、その２つのエントリに相当する数である。また、“１０２４”は、３２Kバイトで構成される１クラスタに記録可能な（３２バイトの）ディレクトリエントリの数である。
【０１７８】
従って、９９９９個のファイルのディレクトリエントリを記録するのに１０個のクラスタが必要となるため、ファイルシステム１８１は、１０個の連続するクラスタを、データ領域３０５内の空き領域の先頭のクラスタから確保する。即ち、ファイルシステム１８１は、「101MSDCF」ディレクトリのディレクトリエントリが記録されているクラスタ番号３の次の（クラスタ番号４の）クラスタから連続して１０個のクラスタ（即ち、クラスタ番号が４（04h）乃至１３（0Dh）のクラスタ）をディレクトリエントリ領域として確保する。
【０１７９】
具体的には、ファイルシステム１８１は、FAT領域３０３内のクラスタ番号４（04h）乃至１３（0Dh）のクラスタに対応するFATエントリに、クラスタの連鎖情報（クラスタチェーン）を作成することにより、連続する１０個のクラスタを確保する。
【０１８０】
即ち、図１９に示すように、ファイルシステム１８１は、「00000004h」の（アドレスの）FATエントリに、「00000005h」を格納し、「00000005h」のFATエントリに、「00000006h」を格納する。以下、同様に、ファイルシステム１８１は、「00000006h」，「00000007h」，「00000008h」，「00000009h」，「0000000Ah」，「0000000Bh」，「0000000Ch」、および「0000000Dh」のFATエントリに、それぞれ、「00000007h」，「00000008h」，「00000009h」，「0000000Ah」，「0000000Bh」，「0000000Ch」，「0000000Dh」、および「EOF」を格納する。
【０１８１】
これにより、データ領域３０５内のクラスタ番号４（04h）乃至１３（0Dh）のクラスタは、使用中（使用済み）となり、他のデータの書き込みに使用されることを防止することができる。
【０１８２】
また、確保されたデータ領域３０５内のクラスタ番号４（04h）乃至１３（0Dh）のクラスタに作成されることが予想される９９９９個のファイルは、作成されるときのファイル名が、上述した命名規則により予め決まっているため、ファイルが作成された場合に備えて、仮のディレクトリエントリ（以下、仮ディレクトリエントリと称する）（のデータ）を予めクラスタ番号４（04h）乃至１３（0Dh）のクラスタ（ディレクトリエントリ領域）に記録しておくこともできる。
【０１８３】
即ち、ファイルシステム１８１（のディレクトリエントリ作成部３７３）は、図２０に示すように、「自分のディレクトリ」を表す“.”エントリと「１つ上の階層のディレクトリ」を表す“..”エントリとともに、ファイルDSC00001.JPG乃至DSC01022.JPGの仮ディレクトリエントリを予め作成し、クラスタ番号４のクラスタに記録させる。また、ファイルシステム１８１は、ファイルDSC01023.JPG乃至DSC02046.JPGの仮ディレクトリエントリを作成し、クラスタ番号５のクラスタに記録させる。
【０１８４】
以下同様に、ファイルシステム１８１は、それぞれ、ファイルDSC02047.JPG乃至DSC03070.JPG，ファイルDSC03071.JPG乃至DSC04094.JPG，ファイルDSC04095.JPG乃至DSC05118.JPG，ファイルDSC05119.JPG乃至DSC06142.JPG，ファイルDSC06143.JPG乃至DSC07166.JPG，ファイルDSC07167.JPG乃至DSC08190.JPG，ファイルDSC08191.JPG乃至DSC09214.JPGおよびファイルDSC09215.JPG乃至DSC09999.JPGの仮ディレクトリエントリを作成し、クラスタ番号６乃至１３のクラスタに記録させる。
【０１８５】
但し、通常と同様に仮ディレクトリエントリ（のデータ）を作成すると、実際には、まだ撮像が行われてなく存在していないファイルが既に存在してしまうことになるため、ファイルシステム１８１は、ユーザに対しては、ファイルが存在していないことと同様の状態となるようにして仮ディレクトリエントリ（のデータ）を作成する。
【０１８６】
即ち、ファイルシステム１８１は、図２０に示すように、各仮ディレクトリエントリの先頭の１バイトに、ファイルが“削除済み”であることを表す「E5h」を格納するようにして、ファイル「DSC00001.JPG」乃至「DSC09999.JPG」の仮ディレクトリエントリを作成する。
【０１８７】
図２１を参照して、仮ディレクトリエントリに格納されるデータについて、ファイルDSC09999.JPGの仮ディレクトリエントリを例に説明する。
【０１８８】
図２１の上側は、図７における場合と同様のディレクトリエントリの構造を示している。
【０１８９】
ファイルDSC09999.JPGの仮ディレクトリエントリでは、仮ディレクトリエントリの先頭に配置される７バイトの名前３１に、ファイル名である「DSC09999」のうちの先頭の１バイトの「D」が「E5h」に代えられた「(E5h)DSC09999」が格納される。また、名前３１に続く３バイトの拡張名３２には、拡張子の「JPG」が格納される。さらに、拡張名３２に続く１バイトの属性３３には、ファイルを表す「20h」が格納される。
【０１９０】
そして、上記以外の予約領域３４乃至ファイルサイズ４２には、すべて「０」が格納される。
【０１９１】
このように、ファイルが作成された場合に備えて、先頭のデータ（１バイト）が削除済みを表すデータである仮ディレクトリエントリを予め確保されたクラスタ番号４（04h）乃至１３（0Dh）のクラスタ（ディレクトリエントリクラスタ）に記録しておくことにより、デジタルカメラ１００で撮像が行われ、実際にファイルが作成されたときに、迅速にファイルをハードディスク１９１に記録することができる。
【０１９２】
次に、図２２のフローチャートを参照して、デジタルカメラ１００の記録準備処理について説明する。この処理は、図３のフローチャートを参照して説明した従来の記録準備処理に対応するもので、図３における場合と同様に、例えば、デジタルカメラ１００の工場出荷前などの、ハードディスク１９１をFATファイルシステムでフォーマット（初期化）した後などに実行される。なお、ファイルシステム１８１は、ハードディスク１９１をフォーマットしたことにより、ハードディスク１９１の記憶容量MCAPを既に認識しているものとする。
【０１９３】
初めに、ステップＳ２１において、ファイルシステム１８１のクラスタ数算出部３７２は、フォーマット（初期化）結果から、１クラスタのサイズ（クラスタサイズ）を取得（参照）する。ここでは、クラスタサイズとして、３２Kバイト（キロバイト）が取得される。
【０１９４】
ステップＳ２１の処理後、ステップＳ２２において、ファイル数算出部３７１は、RAM１１３に記憶されている、デジタルカメラ１００で作成可能な画像の解像度とファイルサイズとが対応付けられたテーブルから、複数種類のファイルサイズのうちの最も小さなファイルサイズFsizeを取得する。即ち、ファイル数算出部３７１は、最低画質でファイルを作成した場合のファイルサイズを、最も小さなファイルサイズFsizeとして取得し、ステップＳ２３に進む。
【０１９５】
ステップＳ２３において、ファイル数算出部３７１は、記録容量MCAPをファイルサイズFsizeで除算することにより、最大ファイル数FNUMmaxを算出して、ステップＳ２４に進む。
【０１９６】
ステップＳ２４において、クラスタ数算出部３７２は、ステップＳ２３の処理で算出された最大ファイル数FNUMmax分の、ディレクトリエントリを記録するのに必要なクラスタ数CNUMを算出する算出処理を行う。この算出処理では、図２３を参照して後述するように、最大ファイル数FNUMmaxのファイルを格納するのに必要なディレクトリ数ｉと、ｉ個のディレクトリそれぞれに必要なクラスタ数CNUM_iが算出される。そして、ディレクトリエントリを記録するのに必要なクラスタ数CNUMは、ｉ個のディレクトリそれぞれに必要なクラスタ数CNUM_iの和に等しい。
【０１９７】
ステップＳ２４の処理後、ステップＳ２５において、ファイルシステム１８１は、「DCIM」ディレクトリを作成する。
【０１９８】
即ち、ステップＳ２５では、ディレクトリエントリ作成部３７３が、「DCIM」ディレクトリのディレクトリエントリを記録するクラスタを検索させるクラスタ検索命令をFAT制御部３６３に供給する。そして、クラスタ検索命令に応答して検索し、その結果検出されたクラスタを表すクラスタ情報が、FAT制御部３６３からディレクトリエントリ作成部３７３に供給される。ここでは、図１８に示したように、クラスタ番号２がクラスタ情報としてディレクトリエントリ作成部３７３に供給される。
【０１９９】
ディレクトリエントリ作成部３７３は、図７で上述したディレクトリエントリの各種のデータを作成し、作成されたディレクトリエントリのデータを、クラスタ番号２を指定してクラスタ制御部３６２に供給する。そして、クラスタ制御部３６２から出力された「DCIM」ディレクトリのディレクトリエントリのデータが、位置算出部３８１およびデバイスドライバ１８２を介して、セクタ単位でクラスタ番号２のクラスタに記録される。
【０２００】
ステップＳ２５の処理後、ステップＳ２６において、ファイルシステム１８１は、「101MSDCF」ディレクトリを作成して、ステップＳ２７に進む。なお、ステップＳ２６では、クラスタ番号３のクラスタに「101MSDCF」ディレクトリのディレクトリエントリが記録される。クラスタ番号３のクラスタに「101MSDCF」ディレクトリのディレクトリエントリを記録する場合のファイルシステム１８１内の各処理は、上述した「DCIM」ディレクトリのディレクトリエントリを記録する場合と同様である。
【０２０１】
ステップＳ２７において、ファイルシステム１８１は、ディレクトリエントリ領域を確保する。即ち、ステップＳ２７では、クラスタ数算出部３７２が、ステップＳ２４の処理で算出されたクラスタ数CNUMとともに確保命令をFAT制御部３６３に供給する。FAT制御部３６３は、クラスタ数算出部３７２からの確保命令に従い、デバイスドライバ１８２を制御して、クラスタ数CNUMで指定された数の連続するクラスタ（図１８に示した例では、クラスタ番号４乃至１３のクラスタ）を、ディレクトリエントリ領域としてデータ領域３０５内に確保して、ステップＳ２８に進む。
【０２０２】
ステップＳ２８において、ファイルシステム１８１は、確保されたディレクトリエントリ領域に記録されることが予想される最大ファイル数FNUMmaxのファイルの仮ディレクトリエントリを記録（作成）して、処理を終了する。なお、ステップＳ２８では、ステップＳ２４の処理で算出されたディレクトリ数ｉが１より大きい場合には、ファイルシステム１８１は、「101MSDCF」ディレクトリ以外のディレクトリ（例えば、「102MSDCF」ディレクトリなど）の仮ディレクトリエントリも記録する。
【０２０３】
次に、図２３のフローチャートを参照して、図２２のステップＳ２４における、ディレクトリエントリを記録するのに必要なクラスタ数CNUMを算出する算出処理について説明する。
【０２０４】
初めに、ステップＳ４１において、クラスタ数算出部３７２は、ディレクトリ数を表す変数ｉに１をセットして、ステップＳ４２に進む。
【０２０５】
ステップＳ４２において、クラスタ数算出部３７２は、ｉ個目のディレクトリのディレクトリ名「？？？MSDCF」を決定する。ここで、“？？？”には、“１００＋ｉ”の値（数字）が入力される。
【０２０６】
ステップＳ４２の処理後、ステップＳ４３において、クラスタ数算出部３７２は、上述したステップＳ２３で算出された最大ファイル数FNUMmaxが１つのディレクトリに格納可能な最大のファイル数である９９９９個以上であるか否かを判定する。
【０２０７】
ステップＳ４３で、最大ファイル数FNUMmaxが９９９９個以上であると判定された場合、ステップＳ４４に進み、クラスタ数算出部３７２は、ｉ個目のディレクトリに９９９９個のファイルを割り当てることとし、ｉ個目のディレクトリに必要なクラスタ数CNUM_iを算出する。ここで、算出されるクラスタ数CNUM_iは、上述したように、（９９９９＋２）÷１０２４の商に端数（小数部分）に端数を切り上げた値である１０（個）となる。
【０２０８】
次に、ステップＳ４５において、クラスタ数算出部３７２は、最大ファイル数FNUMmaxから９９９９を減算した結果を新たに最大ファイル数FNUMmaxにセットし、ステップＳ４６に進む。
【０２０９】
ステップＳ４６において、クラスタ数算出部３７２は、最大ファイル数FNUMmaxが０に等しいか否かを判定する。最大ファイル数FNUMmaxが０に等しくないと判定された場合、即ち、最大ファイル数FNUMmaxが０より大きい場合、ステップＳ４７に進み、変数ｉを１だけインクリメントして、ステップＳ４２に戻る。
【０２１０】
一方、ステップＳ４６において、最大ファイル数FNUMmaxが０に等しいと判定された場合、図２２に戻り、ステップＳ２５に進む。
【０２１１】
また、ステップＳ４３で、最大ファイル数FNUMmaxが９９９９個より少ないと判定された場合、ステップＳ４８に進み、クラスタ数算出部３７２は、ｉ個目のディレクトリにFNUMmax個のファイルを割り当てることとし、ｉ個目のディレクトリに必要なクラスタ数CNUM_iを算出し、図２２に戻り、ステップＳ２５に進む。ここで、算出されるクラスタ数CNUM_iは、（FNUMmax＋２）÷１０２４の商に端数（小数部分）を切り上げた値と等価である。
【０２１２】
以上のように、記録準備処理によれば、ファイルシステム１８１は、複数種類のファイルサイズのうちの最も小さなファイルサイズFsize（最低画質でファイルを作成した場合のファイルサイズ）とハードディスク１８１の記憶容量MCAPとから、最大ファイル数FNUMmaxを算出する。
【０２１３】
そして、ファイルシステム１８１は、最大ファイル数FNUMmaxのディレクトリエントリを記録するのに必要なクラスタ数CNUM（クラスタ数CNUM_iの和）を算出し、「DCIM」ディレクトリおよび「101MSDCF」ディレクトリのディレクトリエントリをデータ領域３０５に記録後、クラスタ数CNUM分のディレクトリエントリ領域を確保する。さらに、ファイルシステム１８１は、確保されたディレクトリエントリ領域に仮ディレクトリエントリを記録する。
【０２１４】
例えば、９９９９個のファイルが「101MSDCF」ディレクトリに作成された場合、図２４に示すように、データ領域３０５において、「101MSDCF」ディレクトリのディレクトリエントリが作成（記録）されているクラスタ番号３のクラスタ（図示せず）の次のクラスタから１０個の連続するクラスタが、ディレクトリエントリ領域（ディレクトリエントリクラスタ[1]乃至[10]）として配置され、その後にファイルDSC00001.JPG乃至DSC09999.JPGの実データが記録された実データ領域が配置される。
【０２１５】
従って、ディレクトリエントリ領域がデータ領域３０５内の連続するクラスタに確保されるので、ファイルシステム１８１が新たにファイルをハードディスク１９１に記録する場合に、新たなファイルのディレクトリエントリを記録するためのディレクトリエントリ領域の検索を迅速に実行することができ、ディレクトリエントリ領域の空き領域を即座に検出することができる。
【０２１６】
なお、図２２の記録準備処理において、ステップＳ２８の仮ディレクトリエントリの記録（作成）を省略してもよい。
【０２１７】
次に、図２５のフローチャートを参照して、デジタルカメラ１００で撮像された静止画の新たなファイルをハードディスク１９１に記録する場合の、デジタルカメラ１００のファイル記録処理を説明する。
【０２１８】
初めに、ステップＳ６１において、アプリケーションプログラム１７１は、ファイル名を指定して、新たなファイルを作成する作成コマンドをファイルシステム１８１に出力して、ステップＳ６２に進む。
【０２１９】
ステップＳ６２において、ファイルシステム１８１は、アプリケーションプログラム１７１からの作成コマンドに応答して、新たなファイルのディレクトリエントリを記録するためのディレクトリエントリ領域の空き領域を検索して、ステップＳ６３に進む。
【０２２０】
ステップＳ６３において、ファイルシステム１８１は、ステップＳ６２におけるディレクトリエントリ領域の空き領域の検索の結果、検出されたクラスタに新たなファイルのディレクトリエントリを記録して、ステップＳ６４に進む。
【０２２１】
ステップＳ６４において、ファイルシステム１８１は、新たなファイルの実データを記録するための、実データ領域の空きクラスタを検索して、ステップＳ６５に進む。
【０２２２】
ステップＳ６５において、アプリケーションプログラム１７１は、新たなファイルの実データ（例えば、被写体１５１の画像に対応するアナログの信号が所定のフォーマットにより圧縮符号化された画像データ）のファイルシステム１８１への出力を開始して、ステップＳ６６に進む。
【０２２３】
ステップＳ６６において、ファイルシステム１８１は、ステップＳ６４における実データ領域の空きクラスタの検索の結果検出された空きクラスタに、実データを記録して、処理を終了する。
【０２２４】
図２５のファイル記録処理に従い、ビデオカメラ１００が新たなファイルをハードディスク１９１に記録する場合における、従来との違いについて、図２６を参照して説明する。
【０２２５】
例えば、ファイルDSC09999.JPGをハードディスク１９１に記録する場合について考える。従って、ハードディスク１９１には、ファイルDSC00001.JPG乃至DSC09998.JPGのディレクトリエントリおよび実データが既に記録されている。
【０２２６】
図６を参照して説明したように、ファイルDSC09999.JPGのディレクトリエントリが記録可能なディレクトリエントリクラスタは、ディレクトリエントリクラスタ[10]である。
【０２２７】
図２５のステップＳ６２において、ファイルDSC09999.JPGのディレクトリエントリを記録するための、ディレクトリエントリ領域の空き領域が検索される場合、ディレクトリエントリクラスタ[1]，[2]，[3]，・・の順にディレクトリエントリ領域が検索されることになる。
【０２２８】
ディレクトリエントリクラスタ[1]，[2]，[3]，・・の順にディレクトリエントリ領域を検索する場合、従来のデジタルカメラに内蔵されたHDDでは、図２６左側に示すように、ディレクトリエントリクラスタ[1]と[2]との間で、シーク動作が発生する。同様に、ディレクトリエントリクラスタ[2]と[3]との間、[3]と[4]との間、[4]と[5]との間、[5]と[6]との間、[6]と[7]との間、[7]と[8]との間、[8]と[9]との間、および[9]と[10]との間でも、シーク動作が発生する。
【０２２９】
これに対して、デジタルカメラ１００では、ディレクトリエントリクラスタ[1]乃至[10]が連続して配置されているため、HDD１１４において、ディレクトリエントリクラスタ[1]，[2]，[3]，・・の順にディレクトリエントリ領域を検索する場合、シーク動作は、ほとんど発生しない。
【０２３０】
従って、従来の（ファイルシステムでフォーマットされているハードディスクにファイルを記録する）デジタルカメラと比較して、図１０のデジタルカメラ１００では、ディレクトリエントリ領域の空き領域を検索する時間を短縮することができる。
【０２３１】
同様に、ハードディスク１９１に記録されたファイルを読み出す場合についても、読み出すファイルのディレクトリエントリを検索する時間を短縮することができる。
【０２３２】
従って、図１０のデジタルカメラ１００では、従来と比べて、ファイルをアクセスする際のアクセス時間を短縮することができる。
【０２３３】
図２５のファイル記録処理において、ステップＳ６２乃至Ｓ６４の処理と、ステップＳ６５の処理とは並行して（同時に）行うことが可能である。この場合、ステップＳ６５においてアプリケーションプログラム１７１から出力された新たなファイルの実データは、一時的にバッファに記憶され、ステップＳ６４の処理により検出された実データ領域の空きクラスタに実データが記録される。従って、アクセス時間を短縮することにより、ファイルの実データを一時的に記憶するバッファの容量が従来より少なく済み、バッファオーバーフローの可能性も低減する。また、実データ領域の空きクラスタが検出されてから、実データを出力するために、新たなファイルの圧縮符号化を開始する場合には、新たなファイルの圧縮符号化の開始までのタイムラグを短縮することができる。
【０２３４】
なお、ファイルシステム１８１によって作成されるディレクトリエントリ領域の配置は、従来のFAT32方式の規格に適合するものであり、従来のFAT32方式のファイルシステムとの、いわゆる互換性を有するものである。
【０２３５】
図２７は、本発明を適用したパーソナルコンピュータ６０１の構成例を示すブロック図である。
【０２３６】
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６１１より供給されたデータを、ドライブ６２０に装着される磁気ディスク６６１、光ディスク６６２、光磁気ディスク６６３、或いは半導体メモリ６６４などに記憶させる。
【０２４３】
なお、上述した一連の処理を実行させるプログラムは、必要に応じてルータ、モデムなどのインタフェースを介して、ローカルエリアネットワーク、インターネット、デジタル衛星放送といった、有線または無線の通信媒体を介してコンピュータ６０１にインストールされるようにしてもよい。
【０２４４】
上述した実施の形態のように、大きなシーク動作が必要となるハードディスクなどの記録媒体に記録する記録装置に対して本発明を適用した場合、アクセス時間の短縮の効果が大きいといえるが、本発明はこれに限定されることなく、DVD(Digital Versatile Disc)，Blu-ray Disc（商標），MO(Magneto Optical disk)、PD(Phase change rewritable Disk)，Zip，SuperDiskといった、ランダムアクセス可能な他の記録媒体にファイルを記録する記録装置に対しても適用可能である。さらに、記録装置が、例えば、DVDとハードディスクなどのように、複数の種類の記録媒体を有するものでも良い。また、ファイルシステムに関しても、UDF（Universal Disk Format）などであってもよく、FAT32またはFAT１６に限定されるものではない。
【０２４５】
さらに、記録媒体に記録するファイルは、静止画のファイルに限らず、動画のファイル、音声（音楽）などのファイルでもよいが、例えば、静止画を連写して記録媒体に記録する場合などのように、ファイル１つ当たりの容量は小さくても、大量の数のファイルを記録する場合に、従来に比べて大きな効果を奏することができる。また、DCFの規格に準拠していなくても、各ディレクトリに記録され得る最大ファイル数が予め設定されている場合に効果を奏する。
【０２４６】
また、本発明が適用される記録媒体に記録する記録装置の実施の形態は、図１０に示されるデジタルカメラ１００および図２７に示されるパーソナルコンピュータ６０１に限定されず、所定のファイルシステムを利用して、記録媒体の記録および読み出しの制御が可能な記録装置であれば構わない。具体的には、例えば、PDA（Personal Digital Assistants）、携帯電話機、または、デジタル電化製品（例えば、テレビジョン受像機やハードディスク録画装置）等様々な実施の形態が可能である。
【０２４７】
上述した実施の形態では、最低画質でファイルを作成した場合のファイルサイズを、ファイルサイズFsizeとして採用し、最大ファイル数FNUMmaxを求めたが、それ以外の方法のファイルサイズFsizeを採用し、最大ファイル数FNUMmaxを求めるようにしてもよい。例えば、デジタルカメラ１００の撮像時の標準の解像度が2Mサイズで、ユーザのこれまでのデジタルビデオカメラ１００の使用履歴から、2Mサイズ以下の解像度では、撮像が行われないと予想される場合、2Mサイズの解像度のファイルサイズをファイルサイズFsizeとして採用し、最大ファイル数FNUMmaxを求めるようにしてもよい。
【０２４８】
なお、本明細書において、記録媒体に格納されるプログラムを記述するステップは、記載された順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくても、並列的あるいは個別に実行される処理を含むものである。
【図面の簡単な説明】
【０２４９】
【図１】従来のハードディスクの種々の領域の構成の一例を示す図である。
【図２】DCFの規格に準拠したファイルおよびディレクトリの構成例を示す図である。
【図３】従来の記録準備処理を説明するフローチャートである。
【図４】ハードディスク１のデータ領域２５の詳細な構成例を示す図である。
【図５】ハードディスク１のFAT領域２３の詳細な構成例を示す図である。
【図６】ハードディスク１にファイルを記録する処理ついて説明する図である。
【図７】ディレクトリエントリの構造の例を示す図である。
【図８】図６のデータ領域２５に対応するFAT領域２３を示す図である。
【図９】ディレクトリエントリを検索する処理を説明する図である。
【図１０】本発明を適用したデジタルカメラ１００の一実施の形態の構成例を示すブロック図である。
【図１１】CPU１１１の機能的な構成例を示すブロック図である。
【図１２】FATファイルシステムでフォーマットされたハードディスク１９１の構成について説明する図である。
【図１３】FATファイルシステムでフォーマットされたハードディスク１９１の構成について説明する図である。
【図１４】FATファイルシステムでフォーマットされたハードディスク１９１の構成について説明する図である。
【図１５】FATファイルシステムでフォーマットされたハードディスク１９１の構成について説明する図である。
【図１６】FATファイルシステムでフォーマットされたハードディスク１９１の構成について説明する図である。
【図１７】図１１のファイルシステム１８１のより詳細な構成例を示すブロック図である。
【図１８】パーティション２４１の構成例を示す図である。
【図１９】FAT領域３０３のデータ例を示す図である。
【図２０】仮ディレクトリエントリを説明する図である。
【図２１】仮ディレクトリエントリを説明する図である。
【図２２】デジタルカメラ１００の記録準備処理について説明するフローチャートである。
【図２３】図２２のステップＳ２４の処理を説明するフローチャートである。
【図２４】データ領域３０５を説明する図である。
【図２５】デジタルカメラ１００のファイル記録処理を説明するフローチャートである。
【図２６】従来と図１０のデジタルカメラ１００との違いを説明する図である。
【図２７】本発明を適用したコンピュータの一実施の形態の構成例を示すブロック図である。
【符号の説明】
【０２５０】
１００  デジタルカメラ，  １１１  CPU，  １１４  ハードディスクドライブ，  １４１  磁気ディスク，  １４２  光ディスク，  １４３  光磁気ディスク，  １４４  半導体メモリ，  １７３  ハードディスク，  １８１  ファイルシステム，  １８２  デバイスドライバ，  ３５１  記録制御部，  ３５２  メディア制御部，  ３６１  ディレクトリエントリ制御部，  ３６２  クラスタ制御部，  ３６３  FAT制御部，  ３７１  ファイル数算出部，  ３７２  クラスタ数算出部，  ３７３  ディレクトリエントリ作成部，  ３８１  位置算出部，  ６１１  CPU，  ６１９  ハードディスクドライブ，  ６６１  磁気ディスク，  ６６２  光ディスク，  ６６３  光磁気ディスク，  ６６４  半導体メモリ
【図１】
2006252096.tif 000003
【図２】
2006252096.tif 000004
【図３】
2006252096.tif 000005
【図４】
2006252096.tif 000006
【図５】
2006252096.tif 000007
【図６】
2006252096.tif 000008
【図７】
2006252096.tif 000009
【図８】
2006252096.tif 000010
【図９】
2006252096.tif 000011
【図１０】
2006252096.tif 000012
【図１１】
2006252096.tif 000013
【図１２】
2006252096.tif 000014
【図１３】
2006252096.tif 000015
【図１４】
2006252096.tif 000016
【図１５】
2006252096.tif 000017
【図１６】
2006252096.tif 000018
【図１７】
2006252096.tif 000019
【図１８】
2006252096.tif 000020
【図１９】
2006252096.tif 000021
【図２０】
2006252096.tif 000022
【図２１】
2006252096.tif 000023
【図２２】
2006252096.tif 000024
【図２３】
2006252096.tif 000025
【図２４】
2006252096.tif 000026
【図２５】
2006252096.tif 000027
【図２６】
2006252096.tif 000028
【図２７】
2006252096.tif 000029