(57)【要約】【課題】特殊再生時においてファイルを高速に読み出す。【解決手段】ＦＡＴ解析部２２は、読み出し対象となるファイルのオープン時に記憶部１２のＦＡＴデータ１５を読み出して、読み出し対象となるファイルである再生データ１６の部分を構成すると共に記憶部上に連続に記録されている断片化ファイルについて、ＦＡＴデータの情報を元に断片化ファイルの先頭位置情報および長さ情報を再生データ１６の全体に亘って求めて、クラスタ・リスト２３を作成する。作成されたクラスタ・リスト２３は、断片化ファイルの記憶部１２上のクラスタ位置と、断片化ファイルの長さを表すクラスタ数との組から構成される。読み出し部２５は、オープンされた再生データ１６のリード時にクラスタ・リスト２３を参照することで再生データ１６の記憶部１２上の位置を特定して再生データ１６を読み出す。【選択図】図２
2007265010.tif 000002
【特許請求の範囲】
【請求項１】
ＦＡＴ(File Allocation Table)ファイルシステムを用いて記録媒体上に記録されたファイルを読み出すファイル再生装置であって、
記録媒体上のＦＡＴ領域を読み出して、読み出し対象となるファイルの部分を構成すると共に該記録媒体上に連続に記録されている断片化ファイルについて、該ＦＡＴ領域の情報を元に該断片化ファイルの先頭位置情報および長さ情報を該読み出し対象となるファイルの全体に亘って求めて、リストを作成するＦＡＴ解析部と、
作成した前記リストを一時的に保持する記憶部と、
前記リストを参照することで前記ファイルの記録媒体上の位置を特定して前記ファイルを読み出すファイル読み出し部と、
を備えることを特徴とするファイル再生装置。
【請求項２】
前記リストは、前記断片化ファイルの記録媒体上のクラスタ位置と、前記断片化ファイルの長さを表すクラスタ数との組から構成されることを特徴とする請求項１記載のファイル再生装置。
【請求項３】
前記ＦＡＴ解析部が、前記読み出し対象となるファイルのオープン時に前記リストを作成し、
前記ファイル読み出し部が、オープンされた前記ファイルのリード時に前記リストを参照することを特徴とする請求項１または２記載のファイル再生装置。
【請求項４】
前記ファイル読み出し部は、前記ファイルの読み出し開始位置が前記リスト中のどの組に対応する前記断片化ファイルに属するかを判定することで前記ファイルの記録媒体上の位置を特定することを特徴とする請求項２記載のファイル再生装置。
【請求項５】
ＦＡＴ(File Allocation Table)ファイルシステムを用いて記録媒体上に記録されたファイルを読み出す方法であって、
記録媒体上のＦＡＴ領域を読み出すステップと、
読み出し対象となるファイルの部分を構成すると共に該記録媒体上に連続に記録されている断片化ファイルについて、該ＦＡＴ領域の情報を元に該断片化ファイルの先頭位置情報および長さ情報を該読み出し対象となるファイルの全体に亘って求めて、リストを作成するステップと、
前記リストを参照することで前記ファイルの記録媒体上の位置を特定して前記ファイルを読み出すステップと、
を含むことを特徴とするファイル再生方法。
【請求項６】
前記リストは、前記断片化ファイルの記録媒体上のクラスタ位置と、前記断片化ファイルの長さを表すクラスタ数との組から構成されることを特徴とする請求項５記載のファイル再生方法。
【請求項７】
前記リストを作成するステップは、前記読み出し対象となるファイルのオープン時に実行され、
前記ファイルを読み出すステップは、オープンされた前記ファイルのリード時に実行されることを特徴とする請求項５または６記載のファイル再生方法。
【請求項８】
前記ファイルを読み出すステップは、前記ファイルの読み出し開始位置が前記リスト中のどの組に対応する前記断片化ファイルに属するかを判定することで前記ファイルの記録媒体上の位置を特定することを特徴とする請求項６記載のファイル再生方法。
【請求項９】
ＦＡＴ(File Allocation Table)ファイルシステムを用いて記録媒体上に記録されたファイルを読み出すファイル再生装置を構成するコンピュータに、
記録媒体上のＦＡＴ領域を読み出す処理と、
読み出し対象となるファイルの部分を構成すると共に該記録媒体上に連続に記録されている断片化ファイルについて、該ＦＡＴ領域の情報を元に該断片化ファイルの先頭位置情報および長さ情報を該読み出し対象となるファイルの全体に亘って求めて、リストを作成する処理と、
作成した前記リストを一時的に保持する処理と、
前記リストを参照することで前記ファイルの記録媒体上の位置を特定して前記ファイルを読み出す処理と、
を実行させるプログラム。
【請求項１０】
前記リストは、前記断片化ファイルの記録媒体上のクラスタ位置と、前記断片化ファイルの長さを表すクラスタ数との組から構成されることを特徴とする請求項９記載のプログラム。
【請求項１１】
前記リストを作成する処理は、前記読み出し対象となるファイルのオープン時に実行され、
前記ファイルを読み出す処理は、オープンされた前記ファイルのリード時に実行されることを特徴とする請求項９または１０記載のプログラム。
【請求項１２】
前記ファイルを読み出す処理は、前記ファイルの読み出し開始位置が前記リスト中のどの組に対応する前記断片化ファイルに属するかを判定することで前記ファイルの記録媒体上の位置を特定することを特徴とする請求項１０記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ファイル再生装置およびファイル再生方法ならびにプログラムに関し、特にＦＡＴ(File Allocation Table)ファイルシステムを利用したファイルの再生装置、再生方法、およびプログラムに関する。
【背景技術】
【０００２】
昨今では、ハードディスクを利用した、マルチメディアの記録・再生システムが次々と発表、発売されている。このようなシステムにおいて、システムに内蔵されるハードディスクは、パーソナルコンピュータ等との親和性を優先するためにＦＡＴファイルシステムが採用される場合が多い。ＦＡＴを利用したシステムでは、ファイルのシークを行う際にファイル先頭からＦＡＴエントリを走査する方法が取られる。
【０００３】
ディスク内は、パーティションと呼ばれる複数区画に分けられ、パーティション内部のアクセスを行う為の管理方式（フォーマット）として、ＦＡＴファイルシステムが存在する。ＦＡＴファイルシステムは、図１０に示すように、パーティション内部をクラスタという単位で分割する。そして、ファイルシステム上の管理情報を配置するシステム領域と、記録・再生の対象とされるデータを格納するデータ領域とを分けてクラスタ単位に配置する。ここでＦＡＴ領域は、システム領域中に配置され、ＦＡＴエントリに対応付けされたＦＡＴデータが格納される。
【０００４】
データ領域に存在する各ファイル（ファイルデータＡ、Ｂ）は、ＦＡＴ上のエントリからデータ領域中の位置が特定される。ファイルの特定方法は、図１１に示すように、ＦＡＴエントリ番号とクラスタ番号とが一意に対応付けされ、データ領域における未使用のクラスタに対するＦＡＴデータは、通常０である。ファイルデータの先頭クラスタは、ディレクトリ・エントリ内から指定され、先頭クラスタに対応するＦＡＴデータは、続くファイルデータの格納クラスタ番号を格納する。図１１の例では、ディレクトリ・エントリからＦＡＴエントリ番号０ｘ０００３（０ｘは１６進数を表す）が指定され、ＦＡＴエントリ番号０ｘ０００３に対応するＦＡＴデータは、０ｘ０００４であって、ＦＡＴエントリ番号０ｘ０００４が次に続くことを表す。また、ＦＡＴエントリ番号０ｘ０００５に対応するＦＡＴデータは、０ｘ０００８であって、ＦＡＴエントリ番号０ｘ０００８が次に続くことを表し、ファイルデータがクラスタ番号０ｘ０００５と０ｘ０００８とで連続せず、断片化されていることを示す。
【０００５】
ファイルのデータが該当するクラスタ内で終了する場合、該当するＦＡＴエントリ番号のＦＡＴデータには、終端マーカが格納される。終端マーカとしては、例えばＦＡＴ１６では、０ｘＦＦＦＦが用いられ、ＦＡＴ１２では、０ｘＦＦＦ、ＦＡＴ３２では、０ｘ０ＦＦＦＦＦＦＦが用いられる。
【０００６】
このような構造のファイルデータは、連続したクラスタに格納されている必要はなく、連続領域が確保できなかったファイルは、ディスク内に断片的に配置される。
【０００７】
以上のような構造のファイルのリード（再生）時において、図１２に示すようにリード時にｒｅａｄ（）関数１０１が、ディレクトリ・エントリよって指示されたＦＡＴエントリに対応するＦＡＴデータ１０３を記憶部１０２から読み出す。そして、ＦＡＴデータ１０３の内容にしたがって、ファイルデータである再生データ１０４を順に記憶部１０２中のクラスタから取り出す。このとき、順方向であれば、ＦＡＴエントリを順にたどることで、クラスタ位置が特定されてデータが読み出され、特に問題を発生することはない。
【０００８】
しかしながら、ファイルの逆方向のリード／シークが必要な際には、ＦＡＴエントリが逆方向の走査を行うに適した構造とはなっていない。このため、再度ファイル先頭からの走査を行う必要があり、特に大きなファイルの逆方向のリード・シークでは、クラスタ上の実データを取り出すまで非常に時間がかかる場合が存在する。
【０００９】
したがって、マルチメディア・コンテンツ（動画／音声）等の特殊再生を行うシステムにおいて、特殊再生、例えばＦＡＴ上に有るファイルの逆方向再生を行う際、ファイルのシークが間に合わなくなって、再生が滑らかに行われない現象が発生する虞がある。
【００１０】
このため、従来において逆方向のシークの高速化のための技術が開示されている。例えば特許文献１には、ファイル・リードに先立って該当ファイルのＦＡＴエントリを調査し、ファイルが利用している全クラスタの情報をメモリ上に保存する技術が記載されている。リード／シークが必要な際は、メモリ上に保存されたクラスタ・リスト（ＦＡＴエントリのコピー）を利用して該当クラスタを判別する。
【００１１】
また、特許文献２には、所定のオフセット間隔毎に設定されたファイルの先頭からの位置を示すオフセット位置と、そのオフセット位置のデータが記録されている記録媒体上の場所を示すクラスタ番号とを対応させたクラスタテーブルを設けて、記録媒体の容量を消費することなく、記録媒体に格納されたデータを読出し逆再生可能とするファイル再生装置が記載されている。この方法は、特許文献１で利用するファイルのクラスタ情報リストを、ファイルの全クラスタではなく、単位クラスタ数を１から複数クラスタ単位に変更することでメモリ利用量を削減する技術である。
【００１２】
さらに、特許文献３には、ＦＡＴ領域に記録されるＦＡＴを構成する各ＦＡＴエントリに、次のＦＡＴエントリの番号の他に前のＦＡＴエントリの番号を格納し、各ＦＡＴエントリに格納されている前のＦＡＴエントリの番号を利用することで、ファイルの逆方向検索を高速に行うデータ再生装置が記載されている。
【００１３】
【特許文献１】特開２００４−７８４０９号公報
【特許文献２】特開２００３−３０８２３４号公報
【特許文献３】特開２００１−３３８４８４号公報
【発明の開示】
【発明が解決しようとする課題】
【００１４】
ところで、特許文献１の方法では、ファイル全体のクラスタ情報をメモリ上に記憶しておく必要がある。例えば、最大４ＧＢｙｔｅのディスク上に作成されたＦＡＴ３２のパーティションを対象にする場合、最大のクラスタ数は、ＦＡＴ３２の仕様上、０ｘ０ＦＦＦＦＦＦ８となる。実際に４ＧＢｙｔｅのディスク（マイクロドライブ）の場合、管理情報を除いた数でも３９０万クラスタ以上の可能性がある。４ＧＢｙｔｅマイクロドライブ利用時にＷｉｎｄｏｗｓ（登録商標）でフォーマットすると、最小「１０２４バイト／クラスタ」が利用できる。この場合、ドライブ全体のクラスタ数は、「３９９９７１２クラスタ＋管理領域で利用しているクラスタ」となる。４ＧＢｙｔｅのディスクをＷｉｎｄｏｗｓ（登録商標）  ＸＰから最少クラスタでフォーマットした、ファイルシステム上で構築できる最大ファイルの全クラスタ情報は、「３９０万クラスタ（ファイルサイズ３．７ＧＢｙｔｅｓ）×クラスタ・アドレス（３２ｂｉｔ＝４Ｂｙｔｅ）」であり、約１５ＭＢｙｔｅとなる。これだけの容量をメモリ上に確保するのは、組み込みシステムとしては困難である。
【００１５】
また、特許文献２の方法であっても、基本的にはファイルのクラスタ情報を（間引きながら）メモリに確保するという点では特許文献１と遜色ない。ただし、特許文献１のメモリサイズを圧縮する方法としては有効である。しかしながら、ＦＡＴファイルシステム上に置かれるファイルのサイズは、データの種類によって大きく変化し、静止画（ＪＰＥＧファイル等）と動画（ＭＰＥＧ／ＡＶＩ等）、音声（ＷＡＶＥ／ＭＰ３等）とではファイルのサイズが１〜２桁以上変化する。これらのファイル種類全体に対応するには、ファイル・タイプ毎の間引き量を設定することや、ファイルサイズ等によって調整が必要になってくる。また、作成されたリストが間引かれていてファイルが利用する全クラスタ情報を持っていないため、その間のクラスタを特定するために、再度ＦＡＴ領域を調査する必要がある。この動作を行うことで、ファイルのデータ・リードとＦＡＴデータ・リード間でハードディスクのヘッド移動が発生し、ヘッドのシーク時間が発生する。この時、ハードディスクのパーティション・サイズが大きくなり、ファイルの配置がディスク内の後方になり、ファイルサイズが大きくほどシーク時間の影響が無視できなくなってしまう。
【００１６】
さらに、特許文献３の装置にあっては、ＦＡＴ領域に記録されるＦＡＴを構成する各ＦＡＴエントリに、従来のシステムで使われる次のＦＡＴエントリの番号のみならず、前のＦＡＴエントリの番号を格納している。このため、従来の既存のファイルシステムと互換性がなくなってしまう。ＦＡＴファイルシステムには、長い歴史があり、システムとしてクローズしていない装置（他のシステムから読み書き可能なディスクなど）を想定すると、特殊な構造を持つＦＡＴシステムは、汎用性に乏しくなってしまい、適用領域が限定されてしまう。
【００１７】
本発明の解決課題は、要約すると、ＦＡＴファイルシステムを従来との互換性を維持しつつ、高速に読み出すことにある。
【課題を解決するための手段】
【００１８】
本発明者は、ＦＡＴファイルシステム上のファイル自体は、断片化がさほど起きておらず、断片化された点をリスト化することで、リストのある点から次のリストの点までのファイルデータは、ディスク上に連続して配置され、リスト内部のデータ位置の特定を簡単な計算によって求めることができることに着目した。
【００１９】
本発明の１つのアスペクトに係るファイル再生装置は、ＦＡＴファイルシステムを用いて記録媒体上に記録されたファイルを読み出す装置であって、記録媒体上のＦＡＴ領域を読み出して、読み出し対象となるファイルの部分を構成すると共に該記録媒体上に連続に記録されている断片化ファイルについて、該ＦＡＴ領域の情報を元に該断片化ファイルの先頭位置情報および長さ情報を該読み出し対象となるファイルの全体に亘って求めて、リストを作成するＦＡＴ解析部と、作成したリストを一時的に保持する記憶部と、リストを参照することでファイルの記録媒体上の位置を特定してファイルを読み出すファイル読み出し部と、を備える。
【００２０】
また、本発明の１つのアスペクトに係るファイル再生方法は、ＦＡＴファイルシステムを用いて記録媒体上に記録されたファイルを読み出す方法であって、記録媒体上のＦＡＴ領域を読み出すステップと、読み出し対象となるファイルの部分を構成すると共に該記録媒体上に連続に記録されている断片化ファイルについて、該ＦＡＴ領域の情報を元に該断片化ファイルの先頭位置情報および長さ情報を該読み出し対象となるファイルの全体に亘って求めて、リストを作成するステップと、リストを参照することでファイルの記録媒体上の位置を特定してファイルを読み出すステップと、を含む。
【００２１】
さらに、本発明の１つのアスペクトに係るプログラムは、ＦＡＴファイルシステムを用いて記録媒体上に記録されたファイルを読み出すファイル再生装置を構成するコンピュータに、記録媒体上のＦＡＴ領域を読み出す処理と、読み出し対象となるファイルの部分を構成すると共に該記録媒体上に連続に記録されている断片化ファイルについて、該ＦＡＴ領域の情報を元に該断片化ファイルの先頭位置情報および長さ情報を該読み出し対象となるファイルの全体に亘って求めて、リストを作成する処理と、作成したリストを一時的に保持する処理と、リストを参照することでファイルの記録媒体上の位置を特定してファイルを読み出す処理と、を実行させる。
【発明の効果】
【００２２】
本発明によれば、ＦＡＴファイルシステムに関して従来のシステムとの互換性を維持しつつ、断片化ファイルの情報をリスト化することで、特殊再生時においてもファイルを高速に読み出すことができる。
【発明を実施するための最良の形態】
【００２３】
本発明の実施形態に係るファイル再生装置は、ＦＡＴファイルシステムを用いて記録媒体上に記録されたファイルを読み出す装置である。ＦＡＴ解析部（図２の２２）は、読み出し対象となるファイルのオープン時に記憶部（図２の１２）のＦＡＴデータ（図２の１５）を読み出して、読み出し対象となるファイルである再生データ（図２の１６）の部分を構成すると共に記憶部上に連続に記録されている断片化ファイルについて、ＦＡＴデータの情報を元に断片化ファイルの先頭位置情報および長さ情報を再生データの全体に亘って求めて、クラスタ・リスト（図２の２３）を作成する。作成されたクラスタ・リストは、断片化ファイルの記憶部上のクラスタ位置と、断片化ファイルの長さを表すクラスタ数との組から構成される。読み出し部（図２の２５）は、オープンされた再生データのリード時にクラスタ・リストを参照することで再生データの記憶部上の位置を特定して再生データを読み出す。この時、読み出し部は、再生データの読み出し開始位置がクラスタ・リスト中のどの組の断片化ファイルに属するかを判定することで再生データの記憶部上の位置を特定する。
【００２４】
このように断片化された点をリスト化することで、リストのある点と次のリストの点までのファイルデータは、記憶部上に連続して配置されていることになる。したがって、リスト内部のデータ位置の特定は、クラスタ・リストを参照して簡単な計算で求めることができる。ファイルデータの読み出しにおいて、ＦＡＴエリアの再検索は不要となり、ファイルデータ位置の特定を高速に行うことが可能になる。これによって、逆方向再生などの特殊再生時においてもファイルを高速に読み出すことができる。
【実施例１】
【００２５】
図１は、本発明の実施例に係るファイル再生装置の構成を示すブロック図である。図１において、ファイル再生装置は、ＣＰＵ１１、記憶部１２、メモリ１３を備える。ＣＰＵ１１は、メモリ上のプログラム２０によって動作し、記憶部１２上にあるＦＡＴデータ１５、再生データ１６をメモリ１３に読み出して、ファイル再生装置として機能させる。プログラム２０は、予め記憶部１２に記憶させておいてもよく、不図示の外部記憶装置、あるいは不図示のネットワーク等から読み込ませるようにしてもよい。記憶部１２は、ハードディスク、光ディスク、半導体メモリなどから構成され、ＦＡＴファイルシステムを構成するＦＡＴデータ１５、再生データ１６を記憶する。
【００２６】
図２は、ファイル再生装置の機能部別の構成を示すブロック図である。オープン関数部２１は、ファイル再生開始の前に起動され、ＦＡＴ解析部２２を呼び出す。ＦＡＴ解析部２２は、記憶部１２内に予め記憶されているＦＡＴデータ１５を読み出してクラスタ・リスト２３を作成する。作成されたクラスタ・リスト２３は、メモリ１３上に記憶される。リード関数部２４は、オープンしたファイルの再生時に起動され、読み出し部２５を起動する。読み出し部２５は、作成されたクラスタ・リスト２３の内容にしたがって、記憶部１２上に予め記憶されている再生データ１５に対してリード／シークを行ってファイルを読み出す。
【００２７】
次に、クラスタ・リスト２３について説明する。クラスタ・リスト２３は、記憶部１２内に記憶されているファイルデータが不連続となるクラスタのリストであり、１つのエントリを、ディスク内の連続クラスタのスタートとなるクラスタ番号ｆｓｓｔａｒｔと、連続するクラスタの終端位置を表すファイル上のクラスタ番号ｅｎｄとの組で構成する。このエントリを複数個（例えば１０２３）まとめてメンバとして構成する。以下の説明においても１０２３エントリとして説明する。
【００２８】
図３は、記憶部１２内のファイル配置の例を模式的に示す図である。図３において示されるファイルは、ファイルの先頭がディスク内のＸクラスタに配置され、最初の６クラスタが連続し、その後、ＹクラスタからＭ−６＋１クラスタが連続する。さらに、ＺクラスタからＮ−（Ｍ＋１）＋１クラスタが連続してファイルの終端となる。この場合、クラスタ・リストにおけるｆｓｓｔａｒｔは、ＸとＹとＺであり、ｅｎｄは、５とＭとＮであり、クラスタ・リストのエントリ内のｆｓｓｔａｒｔとｅｎｄは、図４に示すような構成となる。
【００２９】
なお、１０２３個のクラスタ・リスト番号（メンバ）でファイルの不連続点を表現しきれない場合には、図５に示すように、１０２３番のエントリ番号のｆｓｓｔａｒｔに次のクラスタ・リストへのポインタを格納する。その際、ｅｎｄには、次にリンクがあることを表すＣＬＩＳＴ＿ＮＥＸＴＬＩＮＫ（０ｘＦＦＦＦＦＦＦＦ）を格納する。クラスタ・リストのメモリを確保した際に１０２３番エントリのｅｎｄは、０に初期化するものとする。
【００３０】
次に、ファイルのリード時において、上記のようなクラスタ・リストによって読み出し対象となるファイルデータへのアクセス方法について説明する。図６は、ファイルのリード時におけるデータの関係を示す図である。図６に示されるようにファイル位置（先頭からのバイト数）をクラスタサイズで割り、ファイル先頭からのクラスタ数ｆｉｌｅｃｌを求め、リストに保持されているｅｎｄと比較する。比較によってリストのｅｎｄがｆｉｌｅｃｌ以上となるエントリに要求されたクラスタが含まれている事が分かる。この直前のエントリのｅｎｄ＋１（＝ｓｔａｒｔ）が該当エントリのファイルの開始クラスタとなり、ｆｓｓｔａｒｔ＋（ｆｉｌｅｃｌ−ｓｔａｒｔ）が該当するクラスタとなる。このクラスタ情報を用いて、ディスクからのクラスタ・リードを行う。
【００３１】
このように一連のリード動作の前に、クラスタ・リスト単位でｆｉｌｅｃｌとの比較を行うことで、クラスタ・リストの全エントリを走査する必要がなくなり、リードの高速化を図ることができる。
【００３２】
次に、クラスタ・リスト作成手順について説明する。図７は、クラスタ・リストの作成手順を示すフローチャートである。
【００３３】
（１）クラスタ位置情報取得
ファイルのオープン時にファイルが利用しているクラスタ情報を調査し、パーティション上のクラスタ位置のリストを取得する。この際、初期のクラスタ・リストのエリアを確保し、エントリの最後尾（１０２３エントリ）のｅｎｄを０ｘ００００００００に初期化する（ステップＳ１１、Ｓ１２）。
【００３４】
（２）不連続点の検出と、クラスタ・リスト作成
（１）「クラスタ位置情報取得」で取得された該当ファイルのクラスタ情報を参照し（ステップＳ１３）、各種変数類を初期化し（ステップＳ１４、Ｓ１５）、クラスタが不連続な点を検索する（ステップＳ１６〜Ｓ１８）。このとき、不連続な点を検出した際に、不連続点の開始位置のクラスタ番号を取得し、連続しているクラスタの末尾のファイル内クラスタ番号を取得し、それぞれｆｓｓｔａｒｔ、ｅｎｄに登録して、クラスタ・リストを順次作成する（ステップＳ１９〜Ｓ２８）。なお、クラスタ・リストのエントリが１０２２まで達した場合には、続きとなるクラスタ・リストのエリアを確保し（ステップＳ２２）、１０２３エントリのｅｎｄをＣＬＩＳＴ＿ＮＥＸＴＬＩＮＫ（０ｘＦＦＦＦＦＦＦＦ）に変更し、ｆｓｓｔａｒｔには、確保した次のクラスタ・リストのエリアのポインタを代入する（ステップＳ２３）。図３、図４に示す例でいえば、最初の不連続点が検出された時点で、最初のエントリのｆｓｓｔａｒｔにＸを代入し、ｅｎｄに５を代入する。その後、再度不連続点の検索を行い、発見された不連続点Ｙ、ＭとＺ、Ｎを登録する。
【００３５】
次に、ファイルのリード手順について説明する。図８は、ファイルのリード手順を示すフローチャートである。
【００３６】
（１）リードの現在ポインタ
ファイルのリードが指示された場合、リード関数では、ファイルの現在ポインタを変数に保持しておく、ファイルのオフセット指定がされた場合、現在ポインタ（ｕＯｆｆｓｅｔ）を指定されたオフセットに変更する（ステップＳ３１、Ｓ３２）。
【００３７】
（２）現在ポインタからファイルのクラスタ算出
ｕＯｆｆｓｅｔを、パーティションのクラスタサイズで割り、ファイルの先頭からのクラスタ数ｆｉｌｅｃｌを計算し取得する（ステップＳ３３）。
【００３８】
（３）クラスタ・リストの検索
検索のための初期化を行い（ステップＳ３４、Ｓ３５）、ｕＯｆｆｓｅｔを含むクラスタ数ｆｉｌｅｃｌが格納されているクラスタ・リストを特定するため、１クラスタ・リストの最終エントリを確認し（ステップＳ３６）、続くクラスタ・リストが存在する場合、最終の前エントリを確認し、このリスト内に該当クラスタ情報が含まれるかを確認する（ステップＳ３７）。このクラスタ・リストにｆｉｌｅｃｌが含まれない場合は、制御しているクラスタ・リストを次に（ｃｌｉｓｔ［１０２３］．ｆｓｓｔａｒｔ）移行させ、クラスタ情報確認を続ける（ステップＳ３８、Ｓ３９）。
【００３９】
（４）クラスタ・リスト内エントリ検索
該当クラスタが含まれるクラスタ・リストの検索が終了した後、検索用のカウンタを初期化し（ステップＳ４０）、クラスタ・リスト内の最初のエントリｃｌｉｓｔ［０］から、ｅｎｄを比較し（ステップＳ４１）、該当クラスタがどの連続領域に含まれているのかを検索する（ステップＳ４２、Ｓ４３）。該当クラスタが含まれるエントリが取得（エントリ番号ｎ）された場合、連続領域のディスク上の先頭クラスタは、ｃｌｉｓｔ［ｎ］．ｆｓｓｔａｒｔとなり、ファイル上の先頭クラスタは、ｃｌｉｓｔ［ｎ−１］．ｅｎｄとなり、該当するファイルのクラスタは、ディスク上の［ｃｌｉｓｔ［ｎ］．ｆｓｓｔａｒｔ＋（ｃｌｉｓｔ［ｎ−１］．ｅｎｄ＋１−ｆｉｌｅｃｌ）］クラスタに配置されている（ステップＳ４４）。
【００４０】
（５）データ・リード
特定されたクラスタに対するリードを行い、リード要求のサイズまで、クラスタ・リードを行い、データを取得する（ステップＳ４５、Ｓ４６）。
【００４１】
ファイルのリード時に以上のように動作するファイル再生装置によれば、ファイルのシーク時間およびメモリ利用量は、以下のように、従来に比して改善される。
【００４２】
（１）シーク時間
本方式を採用することで、ファイル・リード時に、メモリ上に保存されたクラスタ・リストの参照を行うことで、ＦＡＴ検索を行うことなく、ファイルの特定位置がディスク上のどの位置に配置されているのかの情報を取得することができる。実測によれば、本発明のクラスタ・リストを用いないシステムでは、マイクロドライブ４Ｇのディスク上に約４ＧＢｙｔｅのファイルを作成した場合、ファイル後方の逆方向シークに１秒程度の時間を要した。これに対し、本発明のクラスタ・リストを用いたシステムでは、動画ファイルの１５倍速逆方向再生が可能になり、シーク時間０．０３３秒以下が実現された。なお、ここで用いた動画ファイルは、ＭＰＥＧ２の動画ファイルであって、１ＧＯＰ（Group of Pictures）内に１５フレームが含まれるものである。シークは、ＧＯＰ単位に行う必要があるために、この場合のシーク時間は、以下のようになる。
シーク時間≦ＧＯＰの再生に必要な時間＝０．５秒（ＧＯＰ内の再生時間）／１５＝０．０３３秒
【００４３】
（２）メモリ利用量
不連続な点をリスト化することにより、特許文献１の方式に比べ、１エントリ自体の容量は、２倍を必要とする。しかしながら、ファイルの断片化が５０％以下であれば、トータルのメモリ利用量は、従来に比べて少なくなる。ファイルの断片化が５０％を越えるケースは、極めて稀であるために、ほとんどの場合において本発明が有効である。
【００４４】
（２−１）メモリ利用量見積もり
４ＧＢｙｔｅ／１０２４クラスタ利用時（パーティション上に３９９９７１２クラスタ）に５０％断片化の最大ファイルを作成する場合は、クラスタの１／３が別の単独なファイル（１ＫＢｙｔｅ以下のファイル）の場合であり、このとき残りの容量内での最大ファイルのサイズは、約２．５ＧＢｙｔｅとなる。２．５ＧＢｙｔｅ以上のファイルであれば、本方式の方が確実にメモリ消費量が少ないことがわかる。また、既存方式では、ファイルサイズに比例してメモリ利用量が増大し、最大３９０万クラスタ以上（４ＧＢｙｔｅ  ＦＡＴ利用時）を管理する必要があるのに対して、本方式では、ファイルサイズに依存せず、ファイルが完全に連続している場合は、１エントリのみの利用で良い。
【００４５】
（２−２）メモリ利用量最大見積もり（１００％断片化）
本方式で、メモリ利用量の最大となるケースは、図９に示すような断片化が１クラスタおきに生じる場合である。この場合、１ファイルとして、１００％断片化されているのは、作成可能な最大クラスタ（３９９９７１２クラスタ）の半分であり、２００万クラスタ弱となる。このときのクラスタ・リストを見積もると、１５ＭＢｙｔｅ程度となり従来の方法とほぼ同等のメモリで実現可能である事が分かる。
【００４６】
（２−３）最大ファイル時のメモリ利用量見積もり
４ＧＢｙｔｅのディスクに作成できる最大のファイルの不連続点は、１００程度以下と想定される。例えば、管理領域＋ディレクトリ×３＋管理ファイル×５程度の場合は、多くても１０程度の断片化である。したがって、本方式のメリットであるファイルの不連続点のリスト化が生かされる。
【図面の簡単な説明】
【００４７】
【図１】本発明の実施例に係るファイル再生装置の構成を示すブロック図である。
【図２】ファイル再生装置の機能部別の構成を示すブロック図である。
【図３】記憶部内のファイル配置の例を模式的に示す図である。
【図４】クラスタ・リストの構成の例を示す図である。
【図５】クラスタ・リスト間のリンクの例を示す図である。
【図６】ファイルのリード時におけるデータの関係を示す図である。
【図７】クラスタ・リストの作成手順を示すフローチャートである。
【図８】ファイルのリード手順を示すフローチャートである。
【図９】断片化が最大となる場合の例を示す図である。
【図１０】ＦＡＴファイルシステムの構造を示す図である。
【図１１】データ領域に存在するファイルの特定方法を説明する図である。
【図１２】従来のファイルのリード時のアクセス方法を示す図である。
【符号の説明】
【００４８】
１１  ＣＰＵ
１２  記憶部
１３  メモリ
１５  ＦＡＴデータ
１６  再生データ
２０  プログラム
２１  オープン関数部
２２  ＦＡＴ解析部
２３  クラスタ・リスト
２４  リード関数部
２５  読み出し部
【図１】
2007265010.tif 000003
【図２】
2007265010.tif 000004
【図３】
2007265010.tif 000005
【図４】
2007265010.tif 000006
【図５】
2007265010.tif 000007
【図６】
2007265010.tif 000008
【図７】
2007265010.tif 000009
【図８】
2007265010.tif 000010
【図９】
2007265010.tif 000011
【図１０】
2007265010.tif 000012
【図１１】
2007265010.tif 000013
【図１２】
2007265010.tif 000014