(57)【要約】      （修正有）【課題】連続録音中や録音終了中に電源の瞬断等により正常に終了処理ができなかった場合でも、ファイル修復が可能な情報記憶装置、データ記憶方法、およびプログラムを提供する。【解決手段】音声データを所定の記憶サイズのブロックに記憶するデータ領域と、音声データを記憶するブロックの連鎖を記憶するＦＡＴと、音声データをファイルとして記憶するためのエントリーを有するメモリを有し、音声データのサイズが制限サイズより大きいと判定された場合には（＃１３、＃１５）、制限サイズ内にファイルを分割し（＃１９〜＃２９）、制限サイズに収まるファイルが全て生成された後に、終了情報を記憶エリアに記憶する（＃３１参照）。【選択図】図２
2010128605.tif 000002
【特許請求の範囲】
【請求項１】
任意のサイズのデータを所定の記憶サイズの１以上のブロックに記憶する第１の記憶エリアと、前記データを記憶するブロックの連鎖を記憶する第２の記憶エリアと、前記データをファイルとして記憶するための情報を記憶する第３の記憶エリアを有する記憶媒体にデータを記憶する情報記憶装置であって、
前記データを入力するデータ入力手段と、
使用者の操作により、前記データ入力手段で入力したデータを前記記憶媒体に記憶することを開始するデータ記憶開始手段と、
前記データ記憶開始手段により、前記入力したデータの記憶が開始されると、少なくとも新しい第１のファイル名及びその第１のファイル名で特定されるデータを記憶する最初のブロックを指定する第１の開始ブロック情報を第３の記憶エリアに記憶するファイルエントリー手段と、
前記データ入力手段により前記データの入力が進むに従って、順次前記第１の記憶エリア中の未使用のブロックにデータを書き込むと共に、そのデータが書き込まれたブロックの連鎖を表す連鎖情報を前記第２の記憶エリアに記憶するデータ記憶手段と、
使用者の操作により前記データの記録を終了した場合、最後にデータが書き込まれたブロックから連鎖するブロックが無いことを示す終了情報を、前記第２の記憶エリアに記憶するデータ記憶終了手段と、
前記第１のファイル名で特定されるデータのサイズが、１つのファイルに許された第２の所定サイズに収まるか否かを判定するデータサイズ判定手段と、
前記データサイズ判定手段で、前記第１のファイル名で特定されるデータのサイズが、前記第２の所定サイズを超えると判断された場合、新たな第２のファイル名を生成して第３の記憶エリアに記憶すると共に、その第２のファイル名で特定されるデータを記憶した最初のブロックを、前記第１のファイル名で特定されるデータのブロック連鎖中のブロックから指定し、その指定された第２の開始ブロック情報を前記第３の記憶エリアに記憶して前記第２の所定サイズに収まる第１のファイルを生成するファイル生成手段と、
前記データサイズ判定手段によって、前記データサイズが前記第２の所定サイズに収まらないと判定された場合、前記ファイル生成手段によって、前記第２の所定サイズに収まる前記第１のファイルが全て生成された後に、前記ファイル生成手段によって生成された前記第１のファイルの全てについて、前記連鎖情報より、前記第２の開始ブロックへ連鎖するブロックを特定し、その特定されたブロックから連鎖するブロックが無いことを示す終了情報を前記第２の記憶エリアに記憶する記憶データ縮小手段と、
を有することを特徴とする情報記憶装置。
【請求項２】
前記記憶データ縮小手段は、前記第１のファイル名で特定されるデータのブロック連鎖の最後のブロックから最初のブロックに向かって、前記特定されたブロックに対応する前記終了情報を前記第２の記憶エリアに記憶することを特徴とする請求項１に記載の情報記憶装置。
【請求項３】
前記入力手段は、マイクロフォンであって、前記データは音声データであり、前記情報記憶装置は音声レコーダであることを特徴とする請求項２に記載の情報記憶装置。
【請求項４】
前記記憶媒体のフォーマットはＦＡＴフォーマットであり、前記第１の記憶エリアはデータ領域に対応し、前記第２の記憶エリアはＦＡＴ領域に対応し、前記第３の記憶エリアはルートディレクトリエントリー領域に対応することを特徴とする請求項３に記載の情報記憶装置。
【請求項５】
情報装置において、任意のサイズのデータを所定の記憶サイズの１以上のブロックに記憶する第１の記憶エリアと、前記データを記憶するブロックの連鎖を記憶する第２の記憶エリアと、前記データをファイルとして記憶するための情報を記憶する第３の記憶エリアを有する記憶媒体にデータを記憶するデータ記憶方法であって、
使用者の操作により、当該情報記憶装置に入力されたデータを前記記憶媒体に記憶することを開始するデータ記憶開始工程と、
前記入力したデータの記憶が開始されると、少なくとも第１のファイル名を生成し、前記第１のファイル名及びデータを記憶する最初のブロックを特定する第１の開始ブロック情報を前記第３の記憶エリアに記憶するファイルエントリー記憶工程と、
前記データの入力が進むに従って、順次前記第１の記憶エリア中の未使用のブロックにデータを書き込むと共に、そのデータが書き込まれたブロックの連鎖を表す連鎖情報を前記第２の記憶エリアに記憶するデータ記憶工程と、
使用者の操作により前記データの記録を終了した場合、最後にデータが書き込まれたブロックから連鎖するブロックが無いことを示す終了情報を、前記第２の記憶エリアに記憶するデータ記憶終了工程と、
前記第１のファイル名で特定されるデータのサイズが、１つのファイルに許された第２の所定サイズに収まるか否かを判定するデータサイズ判定工程と、
前記データサイズ判定工程で、前記第１のファイル名で特定されるデータのサイズが、前記第２の所定サイズを超えると判断された場合には、新たな第２のファイル名を生成して第３の記憶エリアに記憶すると共に、その第２のファイル名で特定されるデータを記憶した最初ブロックを、前記第１のファイル名で特定されるデータのブロック連鎖中のブロックから指定し、その指定された第２の開始ブロック情報を前記第３の記憶エリアに記憶して前記第２の所定サイズに収まる第１のファイルを生成するファイル生成工程と、
前記データサイズ判定工程によって、前記データサイズが前記第２の所定サイズに収まらないと判定された場合、前記ファイル生成工程によって、前記第２の所定サイズに収まる前記第１のファイルが全て生成された後に、前記ファイル生成工程において生成された前記第１のファイルの全てについて、前記連鎖情報より、前記第２の開始ブロックへ連鎖するブロックを特定し、その特定されたブロックから連鎖するブロックが無いことを示す終了情報を前記第２の記憶エリアに記憶する記憶データ縮小工程と、
を有することを特徴とするデータ記憶方法。
【請求項６】
前記データ縮小工程は、前記第１のファイル名で特定されるデータのブロック連鎖の最後のブロックから最初のブロックに向かって、前記特定されたブロックに対応する前記終了情報を前記第２のエリアに記憶することを特徴とする請求項５に記載のデータ記憶方法。
【請求項７】
前記データは音声データであり、前記情報記憶装置は音声レコーダであることを特徴とする請求項６に記載のデータ記憶方法。
【請求項８】
前記記憶媒体のフォーマットはＦＡＴフォーマットであり、前記第１の記憶エリアはデータ記憶領域に対応し、前記第２の記憶エリアはＦＡＴ領域に対応し、前記第３の記憶エリアはルートディレクトリエントリー領域に対応することを特徴とする請求項７に記載のデータ記憶方法。
【請求項９】
情報装置において、任意のサイズのデータを所定の記憶サイズの１以上のブロックに記憶する第１の記憶エリアと、前記データを記憶するブロックの連鎖を記憶する第２の記憶エリアと、前記データをファイルとして記憶するための情報を記憶する第３の記憶エリアを有する記憶媒体にデータの記憶を実行させるプログラムであって、
使用者の操作により、当該情報記憶装置に入力されたデータを前記記憶媒体に記憶することを開始するデータ記憶開始工程と、
前記入力したデータの記憶が開始されると、少なくとも第１のファイル名を生成し、前記第１のファイル名及びデータを記憶する最初のブロックを特定する第１の開始ブロック情報を前記第３の記憶エリアに記憶するファイルエントリー記憶工程と、
前記データの入力が進むに従って、順次前記第１の記憶エリア中の未使用のブロックにデータを書き込むと共に、そのデータが書き込まれたブロックの連鎖を表す連鎖情報を前記第２の記憶エリアに記憶するデータ記憶工程と、
使用者の操作により前記データの記録を終了した場合、最後にデータが書き込まれたブロックから連鎖するブロックが無いことを示す終了情報を、前記第２の記憶エリアに記憶するデータ記憶終了工程と、
前記第１のファイル名で特定されるデータのサイズが、１つのファイルに許された第２の所定サイズに収まるか否かを判定するデータサイズ判定工程と、
前記データサイズ判定工程で、前記第１のファイル名で特定されるデータのサイズが、前記第２の所定サイズを超えると判断された場合には、新たな第２のファイル名を生成して第３の記憶エリアに記憶すると共に、その第２のファイル名で特定されるデータを記憶した最初ブロックを、前記第１のファイル名で特定されるデータのブロック連鎖中のブロックから指定し、その指定された第２の開始ブロック情報を前記第３の記憶エリアに記憶して前記第２の所定サイズに収まる第１のファイルを生成するファイル生成工程と、
前記データサイズ判定工程によって、前記データサイズが前記第２の所定サイズに収まらないと判定された場合、前記ファイル生成工程によって、前記第２の所定サイズに収まる前記第１のファイルが全て生成された後に、前記ファイル生成工程において生成された前記第１のファイルの全てについて、前記連鎖情報より、前記第２の開始ブロックへ連鎖するブロックを特定し、その特定されたブロックから連鎖するブロックが無いことを示す終了情報を前記第２の記憶エリアに記憶する記憶データ縮小工程と、
を有することを特徴とするプログラム。
【請求項１０】
前記記憶データ縮小工程は、前記第１のファイル名で特定されるデータのブロック連鎖の最後のブロックから最初のブロックに向かって、前記特定されたブロックに対応する前記終了情報を前記第２の記憶エリアに記憶することを特徴とする請求項９に記載のプログラム。
【請求項１１】
前記データは音声データであり、前記情報記憶装置は音声レコーダであることを特徴とする請求項１０に記載のプログラム。
【請求項１２】
前記記憶媒体のフォーマットはＦＡＴフォーマットであり、前記第１の記憶エリアはデータ記憶領域に対応し、前記第２の記憶エリアはＦＡＴ領域に対応し、前記第３の記憶エリアはルートディレクトリエントリー領域に対応することを特徴とする請求項１１に記載のプログラム。
【請求項１３】
データを入力するデータ入力手段と、
前記データを記憶可能な第１の記憶エリアと、前記データを記憶するブロックの連鎖を記憶する第２の記憶エリアを有する記憶媒体と、
前記データを前記入力手段によって連続的に記録する際には、制限サイズを超えても、前記記憶媒体中の前記第１の記憶エリアに前記データを記録するデータ記録手段と、
前記データ記録手段による前記データの終了後に、前記データが制限サイズを超えているか否かを判定するサイズ判定手段と、
前記サイズ判定手段によって前記制限サイズを超えていることが判定された場合には、前記第１の記憶エリアに記録された前記データを、前記制限サイズを超えない範囲内に前記データを分割してファイルを生成するファイル生成手段と、
前記ファイル生成手段によって全てのファイルの生成を完了後に、終了情報を前記第２の記憶エリアに記憶するデータ終了情報記録手段と、
を有することを特徴とする情報記憶装置。
【請求項１４】
前記データの記録の開始にあたって、リカバリー情報を記憶するリカバリー情報記憶手段と、
前記リカバリー情報に基づいて、データの復元を実行するリカバリー手段と、
を有し、
前記リカバリー情報は前記データの記憶されている先頭位置に関連する情報を含み、前記リカバリー手段は、前記先頭位置に関連する情報と、前記ブロックの連鎖に関する情報に基づいて、前記データを読み出すことを特徴とする請求項１３に記載の情報記憶装置。
【請求項１５】
前記リカバリー手段は、前記終了情報を前記第２の記憶エリアに記憶するにあたって、前記連鎖の後ろの位置から順次、前記終了情報を書き込むことを特徴とする請求項１４に記載の情報記憶装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報記憶装置、データ記憶方法、およびプログラムに関し、詳しくは、記憶媒体にＷＡＶＥファイル等をＦＡＴ形式でフォーマットされた記憶媒体に記憶する情報記憶装置、データ記憶方法、およびプログラムに関する。
【背景技術】
【０００２】
近年、音声データをＷＡＶＥ形式等のファイルフォーマットで録音することが一般的に行われている。しかし、ＷＡＶＥ形式の１ファイルは２ＧＢの制限があるために、ビットレートによっては実質的に１ファイルで約１時間程度しか録音することができない。そこで、この制限の下で、より長時間の録音を行うための提案がなされている。
【０００３】
例えば、２ＧＢを超えたら、ファイルを一旦閉じ、擬似的に再度、録音釦が操作されたと同じ状況を作り、録音を繰り返す方法が提案されている。この方法では、ファイルを閉じ、再び開くまでの間、音声データが失われるため、ギャップが発生してしまうという不具合がある。また、別の方法として、ファイルを閉じてから開くまでの間、音声データをバッファリングしておき、ファイルを開いた際に、バッファリングした音声データを書き込むようにした方法も提案されている。この方法では、ギャップの不具合を解消することができるが、しかし、バッファリングするためのメモリ（ＲＡＭ）が必要となり、メモリ増設の必要がある。また、バッファリングデータから音声データを書き込むための制御が必要となり、実装が増え、全体として複雑化してしまう。
【０００４】
また、別の方法として、２ＧＢを超えても録音を続行し、停止されるまで音声データを書き込み続け、録音の停止時に、音声データを分割し、ファイルとして仕上げる方法がある（特許文献１参照）。この方法では、追加のメモリが必要とならず、また、ギャップも発生することがない。
【特許文献１】特開２００１−２２８８９５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
上述の特許文献１に記載の方法では、前述したような不具合を解消することができる。しかし、連続録音中や録音終了中に電源瞬断等により、正常に終了処理ができなった場合には、データを回復することができないという不具合がある。
【０００６】
本発明は、このような事情を鑑みてなされたものであり、連続録音中や録音終了中に電源の瞬断等により正常に終了処理ができなかった場合でも、ファイル修復が可能な情報記憶装置、データ記憶方法、およびプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
前記目的を達成するため第１の発明に係わる情報記憶装置は、任意のサイズのデータを所定の記憶サイズの１以上のブロックに記憶する第１の記憶エリアと、前記データを記憶するブロックの連鎖を記憶する第２の記憶エリアと、前記データをファイルとして記憶するための情報を記憶する第３の記憶エリアを有する記憶媒体にデータを記憶する情報記憶装置であって、前記データを入力するデータ入力手段と、使用者の操作により、前記データ入力手段で入力したデータを前記記憶媒体に記憶することを開始するデータ記憶開始手段と、前記データ記憶開始手段により、前記入力したデータの記憶が開始されると、少なくとも新しい第１のファイル名及びその第１のファイル名で特定されるデータを記憶する最初のブロックを指定する第１の開始ブロック情報を第３の記憶エリアに記憶するファイルエントリー手段と、前記データ入力手段により前記データの入力が進むに従って、順次前記第１の記憶エリア中の未使用のブロックにデータを書き込むと共に、そのデータが書き込まれたブロックの連鎖を表す連鎖情報を前記第２の記憶エリアに記憶するデータ記憶手段と、使用者の操作により前記データの記録を終了した場合、最後にデータが書き込まれたブロックから連鎖するブロックが無いことを示す終了情報を、前記第２の記憶エリアに記憶するデータ記憶終了手段と、前記第１のファイル名で特定されるデータのサイズが、１つのファイルに許された第２の所定サイズに収まるか否かを判定するデータサイズ判定手段と、前記データサイズ判定手段で、前記第１のファイル名で特定されるデータのサイズが、前記第２の所定サイズを超えると判断された場合、新たな第２のファイル名を生成して第３の記憶エリアに記憶すると共に、その第２のファイル名で特定されるデータを記憶した最初のブロックを、前記第１のファイル名で特定されるデータのブロック連鎖中のブロックから指定し、その指定された第２の開始ブロック情報を前記第３の記憶エリアに記憶して前記第２の所定サイズに収まる第１のファイルを生成するファイル生成手段と、前記データサイズ判定手段によって、前記データサイズが前記第２の所定サイズに収まらないと判定された場合、前記ファイル生成手段によって、前記第２の所定サイズに収まる前記第１のファイルが全て生成された後に、前記ファイル生成手段によって生成された前記第１のファイルの全てについて、前記連鎖情報より、前記第２の開始ブロックへ連鎖するブロックを特定し、その特定されたブロックから連鎖するブロックが無いことを示す終了情報を前記第２の記憶エリアに記憶する記憶データ縮小手段と、を有する。
【０００８】
第２の発明に係わる情報記憶装置は、前記第１の発明において、前記記憶データ縮小手段は、前記第１のファイル名で特定されるデータのブロック連鎖の最後のブロックから最初のブロックに向かって、前記特定されたブロックに対応する前記終了情報を前記第２の記憶エリアに記憶する。
第３の発明に係わる情報記憶装置は、前記第２の発明において、前記入力手段は、マイクロフォンであって、前記データは音声データであり、前記情報記憶装置は音声レコーダである。
第４の発明に係わる情報記憶装置は、前記第３の発明において、前記記憶媒体のフォーマットはＦＡＴフォーマットであり、前記第１の記憶エリアはデータ領域に対応し、前記第２の記憶エリアはＦＡＴ領域に対応し、前記第３の記憶エリアはルートディレクトリエントリー領域に対応する。
【０００９】
第５の発明に係わるデータ記憶方法は、情報装置において、任意のサイズのデータを所定の記憶サイズの１以上のブロックに記憶する第１の記憶エリアと、前記データを記憶するブロックの連鎖を記憶する第２の記憶エリアと、前記データをファイルとして記憶するための情報を記憶する第３の記憶エリアを有する記憶媒体にデータを記憶するデータ記憶方法であって、使用者の操作により、当該情報記憶装置に入力されたデータを前記記憶媒体に記憶することを開始するデータ記憶開始工程と、前記入力したデータの記憶が開始されると、少なくとも第１のファイル名を生成し、前記第１のファイル名及びデータを記憶する最初のブロックを特定する第１の開始ブロック情報を前記第３の記憶エリアに記憶するファイルエントリー記憶工程と、前記データの入力が進むに従って、順次前記第１の記憶エリア中の未使用のブロックにデータを書き込むと共に、そのデータが書き込まれたブロックの連鎖を表す連鎖情報を前記第２の記憶エリアに記憶するデータ記憶工程と、使用者の操作により前記データの記録を終了した場合、最後にデータが書き込まれたブロックから連鎖するブロックが無いことを示す終了情報を、前記第２の記憶エリアに記憶するデータ記憶終了工程と、前記第１のファイル名で特定されるデータのサイズが、１つのファイルに許された第２の所定サイズに収まるか否かを判定するデータサイズ判定工程と、前記データサイズ判定工程で、前記第１のファイル名で特定されるデータのサイズが、前記第２の所定サイズを超えると判断された場合には、新たな第２のファイル名を生成して第３の記憶エリアに記憶すると共に、その第２のファイル名で特定されるデータを記憶した最初ブロックを、前記第１のファイル名で特定されるデータのブロック連鎖中のブロックから指定し、その指定された第２の開始ブロック情報を前記第３の記憶エリアに記憶して前記第２の所定サイズに収まる第１のファイルを生成するファイル生成工程と、前記データサイズ判定工程によって、前記データサイズが前記第２の所定サイズに収まらないと判定された場合、前記ファイル生成工程によって、前記第２の所定サイズに収まる前記第１のファイルが全て生成された後に、前記ファイル生成工程において生成された前記第１のファイルの全てについて、前記連鎖情報より、前記第２の開始ブロックへ連鎖するブロックを特定し、その特定されたブロックから連鎖するブロックが無いことを示す終了情報を前記第２の記憶エリアに記憶する記憶データ縮小工程と、を有する。
【００１０】
第６の発明に係わるデータ記憶方法は、前記第５の発明において、前記データ縮小工程は、前記第１のファイル名で特定されるデータのブロック連鎖の最後のブロックから最初のブロックに向かって、前記特定されたブロックに対応する前記終了情報を前記第２のエリアに記憶する。
第７の発明に係わるデータ記憶方法は、前記第６の発明において、前記データは音声データであり、前記情報記憶装置は音声レコーダである。
第８の発明に係わるデータ記憶方法は、前記第７の発明において、前記記憶媒体のフォーマットはＦＡＴフォーマットであり、前記第１の記憶エリアはデータ記憶領域に対応し、前記第２の記憶エリアはＦＡＴ領域に対応し、前記第３の記憶エリアはルートディレクトリエントリー領域に対応する。
【００１１】
第９の発明に係わるプログラムは、情報装置において、任意のサイズのデータを所定の記憶サイズの１以上のブロックに記憶する第１の記憶エリアと、前記データを記憶するブロックの連鎖を記憶する第２の記憶エリアと、前記データをファイルとして記憶するための情報を記憶する第３の記憶エリアを有する記憶媒体にデータの記憶を実行させるプログラムであって、使用者の操作により、当該情報記憶装置に入力されたデータを前記記憶媒体に記憶することを開始するデータ記憶開始工程と、前記入力したデータの記憶が開始されると、少なくとも第１のファイル名を生成し、前記第１のファイル名及びデータを記憶する最初のブロックを特定する第１の開始ブロック情報を前記第３の記憶エリアに記憶するファイルエントリー記憶工程と、前記データの入力が進むに従って、順次前記第１の記憶エリア中の未使用のブロックにデータを書き込むと共に、そのデータが書き込まれたブロックの連鎖を表す連鎖情報を前記第２の記憶エリアに記憶するデータ記憶工程と、使用者の操作により前記データの記録を終了した場合、最後にデータが書き込まれたブロックから連鎖するブロックが無いことを示す終了情報を、前記第２の記憶エリアに記憶するデータ記憶終了工程と、前記第１のファイル名で特定されるデータのサイズが、１つのファイルに許された第２の所定サイズに収まるか否かを判定するデータサイズ判定工程と、前記データサイズ判定工程で、前記第１のファイル名で特定されるデータのサイズが、前記第２の所定サイズを超えると判断された場合には、新たな第２のファイル名を生成して第３の記憶エリアに記憶すると共に、その第２のファイル名で特定されるデータを記憶した最初ブロックを、前記第１のファイル名で特定されるデータのブロック連鎖中のブロックから指定し、その指定された第２の開始ブロック情報を前記第３の記憶エリアに記憶して前記第２の所定サイズに収まる第１のファイルを生成するファイル生成工程と、前記データサイズ判定工程によって、前記データサイズが前記第２の所定サイズに収まらないと判定された場合、前記ファイル生成工程によって、前記第２の所定サイズに収まる前記第１のファイルが全て生成された後に、前記ファイル生成工程において生成された前記第１のファイルの全てについて、前記連鎖情報より、前記第２の開始ブロックへ連鎖するブロックを特定し、その特定されたブロックから連鎖するブロックが無いことを示す終了情報を前記第２の記憶エリアに記憶する記憶データ縮小工程と、を有する。
【００１２】
第１０の発明に係わるプログラムは、前記第９の発明において、前記記憶データ縮小工程は、前記第１のファイル名で特定されるデータのブロック連鎖の最後のブロックから最初のブロックに向かって、前記特定されたブロックに対応する前記終了情報を前記第２の記憶エリアに記憶する。
第１１の発明に係わるプログラムは、前記第１０の発明において、前記データは音声データであり、前記情報記憶装置は音声レコーダである。
第１２の発明に係わるプログラムは、前記第１１の発明において、前記記憶媒体のフォーマットはＦＡＴフォーマットであり、前記第１の記憶エリアはデータ記憶領域に対応し、前記第２の記憶エリアはＦＡＴ領域に対応し、前記第３の記憶エリアはルートディレクトリエントリー領域に対応する。
【００１３】
第１３の発明に係わる情報記憶装置は、データを入力するデータ入力手段と、前記データを記憶可能な第１の記憶エリアと、前記データを記憶するブロックの連鎖を記憶する第２の記憶エリアを有する記憶媒体と、前記データを前記入力手段によって連続的に記録する際には、制限サイズを超えても、前記記憶媒体中の前記第１の記憶エリアに前記データを記録するデータ記録手段と、前記データ記録手段による前記データの終了後に、前記データが制限サイズを超えているか否かを判定するサイズ判定手段と、前記サイズ判定手段によって前記制限サイズを超えていることが判定された場合には、前記第１の記憶エリアに記録された前記データを、前記制限サイズを超えない範囲内に前記データを分割してファイルを生成するファイル生成手段と、前記ファイル生成手段によって全てのファイルの生成を完了後に、終了情報を前記第２の記憶エリアに記憶するデータ終了情報記録手段と、を有する。
【００１４】
第１４の発明に係わる情報記憶装置は、前記第１３の発明において、前記データの記録の開始にあたって、リカバリー情報を記憶するリカバリー情報記憶手段と、前記リカバリー情報に基づいて、データの復元を実行するリカバリー手段と、を有し、前記リカバリー情報は前記データの記憶されている先頭位置に関連する情報を含み、前記リカバリー手段は、前記先頭位置に関連する情報と、前記ブロックの連鎖に関する情報に基づいて、前記データを読み出す。
第１５の発明に係わる情報記憶装置は、前記第１４の発明において、前記リカバリー手段は、前記終了情報を前記第２の記憶エリアに記憶するにあたって、前記連鎖の後ろの位置から順次、前記終了情報を書き込む。
【発明の効果】
【００１５】
本発明によれば、連続録音中や録音終了中に電源の瞬断等により正常に終了処理ができなかった場合でも、ファイル修復が可能な情報記憶装置、データ記憶方法、およびプログラムを提供することができる。
【発明を実施するための最良の形態】
【００１６】
以下、図面に従って本発明を適用したＩＣレコーダを用いて好ましい一実施形態について説明する。図１は、本発明の一実施形態に係わるＩＣレコーダの電気回路の要部を示すブロック図である。ＣＰＵ１は中央制御装置であり、プログラムメモリ１９に記憶されているプログラムに従って、ＩＣレコーダ全体の制御を行う。操作部１７は、録音開始釦、録音停止釦、再生釦等の種々の操作部材から構成され、操作状態はＣＰＵ１に送信される。
【００１７】
マイクロフォン１１は、音声をアナログ信号に変換する。増幅器１３は、マイクロフォン１１に接続され、音声アナログ信号の増幅を行う。ＡＤ変換器１５は、増幅器１３に接続され、増幅された音声アナログ信号をデジタルデータに変換する。ＡＤ変換器１５は前述のＣＰＵ１に接続されており、ＣＰＵ１は記録用の音声データに変換する。メモリ９はフラッシュメモリ等の電気的に書き換え可能な不揮発性メモリであり、ＣＰＵ１に接続されており、ＣＰＵ１によって変換された音声データを記録する。
【００１８】
ＤＡ変換器７は、ＣＰＵ１に接続され、メモリ９に記憶された音声データを再生する際に、音声デジタルデータをアナログ音声信号に変換する。増幅器５は、ＤＡ変換器７に接続され、ＤＡ変換器７によってアナログ信号に変換されたアナログ音声信号を増幅する。スピーカ３は、増幅器５に接続され、増幅されたアナログ音声信号に基づいて音声に変換する。表示部２１は、ＣＰＵ１に接続され、ＩＣレコーダの状態や、記録されている音声情報の表示を行う。
【００１９】
次に、本実施形態における録音について、図２乃至図８を用いて説明する。図３に音声データを含むメモリ９のメモリマップ（記憶領域）を示す。メモリ９のメモリ領域には、図３（ａ）に示すように、大きく分けてシステム領域とデータ領域がある。システム領域はメモリ９の制御を行うために必要なデータを記憶する領域であり、データ領域は音声データおよびこれに付随する制御用のデータを記憶する領域である。
【００２０】
システム領域は、ブートセクタ１０１、ＦＡＴ１  １０２、ＦＡＴ２  １０３、およびフォルダＡのエントリー１０４ａ、フォルダＢのエントリー１０４ｂ、・・・を含むディレクトリエントリーから構成される。ブートセクタ１０１には、ブートに必要な情報が記憶されている。ＦＡＴ１  １０２は、ＦＡＴ（ファイル・アロケーション・テーブル  File Allocation Table）の格納領域であり、メモリ９内のファイルの位置情報を連鎖的に記憶する。ＦＡＴ２  １０３は、ＦＡＴ１のコピーである。ディレクトリエントリーに、フォルダＡのエントリー１０４ａ、フォルダＢのエントリー１０４ｂ、・・・が記憶されている。これらは、ルートディレクトリー内の格納領域である。
【００２１】
データ領域内には、フォルダＡ内のエントリー格納領域１０５、フォルダＢ内のエントリー格納領域１０６、・・・が設けてあり、フォルダＡ内のエントリー格納領域内には、リカバリー情報のエントリーの記憶領域１０５ａが設けられている。また、データ領域内には、リカバリー情報の実データを記憶する領域１０７が設けられている。さらに、データ領域内には、ヘッダ１０９および音声データ１１０から構成される音声ファイル１０８を記憶する領域が設けられている。この音声ファイルを記憶する領域は多数、設けられている。
【００２２】
次に、録音動作を図２に示すフローチャートを用いて説明する。操作部１７の内の録音開始釦が操作されると、このフローの実行を開始する。録音を開始すると、まず、リカバリー情報の書き込みを行う（＃１）。リカバリー情報は、録音中の電源遮断等により、録音動作等を中断された後、電源が回復した際に、ファイルを回復するために使用する情報であり、図３に示したエリア１０５ａ、１０７に書き込まれる。このリカバリー情報については、図８等を用いて後述する。
【００２３】
リカバリー情報の書き込みを行うと、次に、エントリー登録およびヘッダの書き込みを行う（＃３）。エントリーは、図３（ａ）に示したように、例えば、フォルダＡ内のエントリー格納領域１０５内の１０５ｂに書き込まれる。このエントリーは、エントリー格納領域ディレクトリ内のファイルの情報を示し、基本的には３２バイトで表わされ、図４に示すような情報が記録される。すなわち、図４中のＡには、ファイル名が８バイトで記録され、Ｂには、拡張子が３バイトで記録され、例えば、ＷＡＶＥ形式であれば、拡張子ＷＡＶが記録される。Ｃには、例えば、ディレクトリや隠しファイル等のファイル属性が１バイトで記録される。
【００２４】
また、図４中のＤには、１バイトで予約情報が記録され、Ｅには、１０ｍｓｅｃ単位の作成時刻が１バイトで記録され、Ｆには時分秒単位の作成時刻が２バイトで記録される。Ｇには、作成日付が２バイトで記録され、Ｈにはアクセス日付が２バイトで記録される。Ｉには、音声データの記録されているアドレスの先頭を表す開始クラスタ番号の上位が２バイトで記録され、Ｌには開始クラスタ番号の下位が２バイトで記録される。Ｊには、更新時刻が２バイトで記録され、Ｋには更新日付が２バイトで記録される。また、Ｍには音声データのファイルサイズが４バイトで記録される。
【００２５】
ファイルのエントリーとして、ＩとＬの位置に、前述したように、「開始クラスタ番号」が記録されている。この開始クラスタ番号は、音声データが実際に格納されているメモリの位置を示しており、この開始クラスタ番号を参照することにより、音声データの読み出しを行うことができる。すなわち、エントリーを指定すれば、この指定されたエントリーに記録されている開始クラスタ番号に基づいて音声データの読み出しを行うことができる。
【００２６】
本実施形態においては、録音開始時にステップ＃１において、リカバリー情報を書き込んでおり、その中に、フォルダ番号やエントリー番号が含まれている。このため、リカバリー時には、このリカバリー情報に含まれているエントリー番号に基づいてエントリーを読み出し、その中に記憶されている開始クラスタ番号により、実際の音声データを読み出し、データを回復することが可能となる。
【００２７】
ステップ＃３において、エントリー登録を行うと共に、２セクタ分のヘッダの書き込みを行う。本実施形態においては、ＷＡＶＥファイルの形式はリニアＰＣＭである。サンプルデータが単純に無圧縮で並んでいるだけであるが、ヘッダにサンプルデータがどのようなものかを記録する。ヘッダ１０９は、図３（ｂ）に示すように、音声データ１１０を含むファイルの冒頭部分に２セクタ分の領域を用いて記録される。また、ＷＡＶＥ形式におけるヘッダ１０９の最小の単位を図５に示す。ヘッダ１０９があれば、最低限ＷＡＶＥファイルとして成り立つ。ここで、オフセット０〜４３がヘッダの領域であり、オフセット４４以降は、音声データの記録領域である。
【００２８】
また、オフセットの「４」の位置には、ＲＩＦＦチャンクのデータサイズが格納される。これは、４バイト（３２ビット）で表わされるサイズであり、バイト単位でサイズが書き込まれ、３２ビットであることから最大サイズは４ＧＢとなる。ただし、ＷＡＶＥファイルでは最上位のビットは符号ビットとして扱うことから、実質的には最大サイズは２ＧＢに制限される。なお、録音容量がこの制限容量（２ＧＢ）に達すると、録音停止するようにした場合には、ビットレートによっては、約１時間程度しか録音できない。
【００２９】
ステップ＃３において、エントリー登録と、ヘッダの書き込みを行うと、次に、音声データの書き込み処理を行う（＃５）。このステップでは、マイクロフォン１１から入力し、増幅器１３、ＡＤ変換器１５によって処理された音声データが、逐次、メモリ９に記録される。続いて、書き込まれた音声データのサイズが分割サイズ（２ＧＢ）を超えたか否かの判定を行う（＃７）。ここでは、既に記録された音声データのセクタ数をカウントすることにより判定する。
【００３０】
ステップ＃７における判定の結果、分割サイズを超えていた場合には、表示の更新を行う（＃９）。分割サイズを超えた場合には、後述するように録音停止時、またはメモリ９がフルになった時にファイルを分割サイズである２ＧＢ以下で分割する。しかし、このステップ＃９では、ファイルの分割処理を行うことなく、音声データの書き込み処理を続行状態とし、表示部２１に表示する情報、例えば、ファイル名、ファイルの数、経過時間等について更新を行う。
【００３１】
ステップ＃９における表示の更新を行うと、またはステップ＃７における判定の結果、分割サイズを超えていなかった場合には、次に、録音停止、またはメモリ９がフルか否かの判定を行う（＃１１）。すなわち、このステップでは、操作部１７内の録音停止釦が操作されたか、またはメモリ９の記憶容量が一杯になったか否かの判定を行う。この判定の結果、録音停止でも、メモリフルでもなかった場合には、ステップ＃５に戻り、音声データの書き込み等を続行する。なお、音声データの記憶にあたっては、順次未使用のエリアにデータを書き込むと共に、ＦＡＴ１  １０２、ＦＡＴ２  １０３に連鎖を表す連鎖情報を書き込む。
【００３２】
ステップ＃１１における判定の結果、録音停止またはメモリフルであった場合には、次に、現サイズで何ファイル作成されるかを計算する（＃１３）。録音停止時、またはメモリフル時において、今回の録音で作成された音声データのバイト数、セクタ数、またはクラスタ数に基づいて、分割サイズ以内とするためのファイル数を、このステップで計算する。
【００３３】
次に、ファイル数の計算結果に基づいて、ファイル数が２ファイル以上か否かの判定を行う（＃１５）。この判定の結果、ファイル数が１であった場合には、１ファイル目のヘッダとエントリーを更新してファイルを閉じる（＃１７）。すなわち、録音中に作成されたデータの容量が制限容量である２ＧＢを超えていないことから、ファイルを分割する必要がなく、ヘッダとエントリーを更新してファイルを閉じる。
【００３４】
続いて、リカバリー情報の消去を行う（＃３３）。ステップ＃１において、リカバリー情報の書き込みを行ったが、ファイルを閉じるまでの間に電源遮断等により処理が中断することなく、正常に終了したことから、異常終了時のためのリカバリー情報を消去している。リカバリー情報を消去すると、録音のための処理を終了する。
【００３５】
一方、ステップ＃１５における判定の結果、計算されたファイルの数が２ファイル以上であった場合には、分割するクラスタ番号とその連鎖先クラスタ番号を取得する（＃１９）。前述したように、本実施形態においては、音声データの録音中に、記憶容量が制限サイズ（２ＧＢ）を超えた場合であっても、そのまま音声データの録音を続け、ファイルを分割していない。録音が終了した後、このステップにおいて、ファイル分割を行うが、記録単位が１６ビットと２４ビットの特性を考慮した位置で分割しないと、記録したサンプルが壊れてしまうおそれがある。そこで、２ＧＢより小さい都合のよいところで分割する。
【００３６】
図３（ｃ）に示すように分割位置１２１を、クラスタ内の２セクタの位置とする。この場合には、次ファイルのヘッダを新クラスタに書き込んだ際に、残りの音声データをそのままコピーして、クラスタの連鎖をつなげば、音声データのギャップなくファイルを作成することができる。もし、これ以外の位置で分割する場合には、以降のデータ全てについてコピー操作が必要なり、処理が煩雑となる。
【００３７】
次に、分割できるクラスタについて調べる。１６ビットの場合、サンプルデータがセクタをまたがることがないため、どのクラスタであっても問題がない。しかし、２４ビットの場合、セクタやクラスタをまたがることがあり得る。１セクタ／クラスタという場合を考慮しなければ、３クラスタ毎でもよいが、一般的には６クラスタ毎に分割可能なクラスタがある。このことを踏まえると、２ＧＢ以下のクラスタ数を図６に示す。図６によると、例えば、１クラスタが３２セクタで構成され、１セクタが５１２バイトで構成される場合には、１３１０７０クラスタ毎に分割位置を決める。分割するクラスタ番号が決まると、その連鎖先のクラスタ番号も取得する。
【００３８】
続いて、１ファイル目のヘッダとエントリーを更新してファイルを閉じる（＃２１）。すなわち、図５に示したヘッダのデータと、図４に示したデータサイズ等のエントリーのデータを１ファイル目の内容に合わせて更新する。このとき、連鎖先を示すＦＡＴについては、書き換えを行わない。
【００３９】
ファイルを閉じると、次に、新ファイルを開いてヘッダを作成する（＃２３）。このステップにおいては、１ファイル目が終了している場合には、２ファイル目を開き、２ファイル目が終了している場合には、３ファイル目と順次、ファイル番号を繰り上げて、ヘッダを作成する。続いて、ヘッダを書いたクラスタに、分割したクラスタの残りデータをコピーする（＃２５）。ここでは、図３（ｃ）に示すように、ヘッダ１０９ａを書いたクラスタに、残りのデータをコピーする。コピーを行うと、次に、新ファイルのヘッダとエントリーを更新して、ファイルを閉じる（＃２７）。なお、ステップ＃２１においても説明したが、連鎖先を示すＦＡＴについては、書き換えを行わない。
【００４０】
次に、作成予定数のファイルを作ったか否かを判定する（＃２９）。ここでは、ステップ＃２１〜＃２７において、生成したファイル数が、ステップ＃１３において計算したファイル数に達したかを判定する。この判定の結果、作成予定数に達していなかった場合には、ステップ＃２３に戻り、前述の処理を行う。
【００４１】
一方、ステップ＃２９における判定の結果、作成予定数のファイルを生成した場合には、ＦＡＴのクラスタ連鎖を分割クラスタ位置で終わらせる（＃３１）。このステップでは、ＦＡＴにおいて、分割した各ファイルの終了位置に終了を示す印（本実施形態の例では、ＦＡＴ１６なので、０ｘＦＦＦＦ）を書き込む。このとき、終了位置を示す印は、後ろから順次作成していく。これは、ステップ＃１５〜ステップ＃２９において、ファイルの分割処理を行うが、この分割処理を行っている際に、電源遮断等により処理を異常終了した場合であっても、リカバリー処理によって、分割処理を回復することができるようにするためである。リカバリー処理については、図７等を用いて後述する。
【００４２】
ステップ＃３１におけるＦＡＴのクラスタ連鎖を分割クラスタ位置で終わらせると、リカバリー情報を消去し（＃３３）、録音動作を終了する。
【００４３】
次に、リカバリー処理について、図７及び図８を用いて説明する。前述したように、通常の録音開始時にはリカバリー情報を固定位置（図３の例では、エリア１０５ａ、１０７）に書き込んであり（ステップ＃１参照）、正常に処理が終了した場合には、リカバリー情報は消去される（ステップ＃３３参照）。ここで、リカバリー情報の消去とは、ファイルそのものを消すのではなく、書き込まれた内容のみを消去する。録音中の電源遮断等により、正常に終了処理が行われなかった場合には、リカバリー情報が残されているので、このリカバリー情報を用いて、次回の起動時にリカバリー処理を行う。このリカバリー処理により、ＦＡＴの連鎖が続くまでのファイルの復活が可能となる。
【００４４】
本実施形態におけるリカバリー情報を図８に示す。リカバリー情報としては、リカバリーフラグを示すｆｌａｇ、フォルダ番号を示すｆｏｌｄｅｒ＿ｎｏ、リカバリー対象ファイルのエントリー番号を示すｅｎｔｒｙ＿ｎｏがある。また、今回、リカバリー情報として、次の３つを追加している。すなわち、機種名を示すｉｄ、作成ファイル番号を示すｎｕｍｂｅｒ、および拡張子情報を示すｅｘｔである。
【００４５】
このように新たにリカバリー情報として３つのメンバーを追加したのは、エントリーを検索するためである。処理が遮断されたタイミングによっては、エントリーは登録されたが、ＦＡＴの連鎖はまだ切られておらず、ファイルとして完成していない状態が起こり得る。そこで、リカバリー処理の際に、エントリーを消去して、再度、エントリーを作成し直す。エントリーを消去するにあたって、処理が遮断されたときのファイル名が不明であると、このファイル（エントリー）を検索することができない。そこで、録音開始時に作成予定のファイル名を取得しておけばよい。本実施形態においては、ファイル名をそのままリカバリー情報として保持する代わりに、リカバリー処理内でヘッダを生成する際に、ｉｄとｎｕｍｂｅｒが必要となることから、これらの情報をリカバリー情報として書き込むことにした。リカバリー処理内において、これらの情報からファイル名を作成して検索することにした。
【００４６】
次に、図７に示すフローチャートを用いてリカバリー処理のフローについて説明する。このフローに入ると、まず、リカバリー情報があるか否かの判定を行う（＃４１）。前述したように、電源瞬断等による異常終了の場合には、リカバリー情報が消去されずに残されていることから、このステップでは、リカバリー情報の在否を判定する。この判定の結果、リカバリー情報がなかった場合には、リカバリー処理を実行する必要がないことから、そのままリカバリー処理を終了する。
【００４７】
一方、ステップ＃４１における判定の結果、リカバリー情報が有った場合には、次に、リカバリー情報を読み出し、エントリーＮｏよりエントリーを読み出す（＃４３）。読み出されたリカバリー情報の中には、リカバリー対象ファイルのエントリー番号を表すｅｎｔｒｙ＿ｎｏが格納されており、これからエントリーを読み出すことができる。
【００４８】
続いて、開始クラスタ番号を取得し、ＦＡＴ連鎖を追えるだけ追う（＃４５）。ステップ＃４３において読み出したエントリーには、図４を用いて説明したように、ＩとＬの位置に開始クラスタ番号が格納されていることから、この開始クラスタ番号を読み出し、この開始クラスタ番号からデータの読み出しを行う。ＦＡＴには、ファイルの位置情報が連鎖的に格納されていることから、このファイルの位置情報を用いて、最終位置（本実施形態においては０ｘＦＦＦＦ）までファイルを追跡する。
【００４９】
ファイルを最終位置まで追跡すると、次に、ファイルサイズを取得し、何ファイル作成されるかを計算する（＃４７）。前のステップで、ファイルを最終位置まで追跡したので、この間にあるクラスタ数からファイルサイズを取得する。ファイルサイズが求めると、分割サイズ（２ＧＢ）を基に、作成されるファイル数を計算する。
【００５０】
ファイル数を求めると、次に、そのファイル数が２ファイル以上か否かの判定を行う（＃４９）。この判定の結果、２ファイル以上ない場合、すなわち、１ファイルしかない場合には、１ファイル用リカバリー処理を行う（＃５１）。ここでは、ファイルの分割が必要ないことから、通常のリカバリー処理を行う。
【００５１】
一方、ステップ＃４９における判定の結果が、２ファイル以上であった場合には、次に、リカバリー情報よりファイル名を作成し、同名ファイルがエントリーにあるかを検索する（＃５３）。前述したように、リカバリー情報には、ｉｄ、ｎｕｍｂｅｒ、およびｅｘｔが格納されていることより、これらからファイル名を作成することができる。すなわち、ファイル名は、ｉｄの頭４文字と、ｎｕｍｂｅｒの下４桁を合わせて８文字とし、これに拡張子情報３文字を合わせて作成する。ファイル名を作成すると、エントリーに同名のファイルが記憶されているか否か検索する。
【００５２】
続いて、検索結果、同名ファイルをエントリーの中に発見したか否かの判定を行う（＃５５）。この判定の結果、同名ファイルを発見した場合には（１ファイル目を除く）、エントリーを消去し、ＦＡＴを未使用にする（＃５７）。このステップでは、録音動作中に、電源瞬断等により異常終了したことから、ファイルを復元するために、復元対象のファイルのエントリーを消去し、また、ＦＡＴにおいて、未使用のクラスタを示す印（本実施形態の例はＦＡＴ１６なので、０ｘ００００）を書き込む。
【００５３】
ステップ＃５７においてエントリー消去とＦＡＴ未使用を行うと、またはステップ＃５５における判定の結果、同名ファイルをエントリー中に発見できなかった場合には、次に、作成数分の検索が終わったか否かの判定を行う（＃５９）。すなわち、ステップ＃４７において、ファイル数を計算しているので、このファイル数分、検索を行ったかを判定する。この判定の結果、検索が終わっていなかった場合には、ステップ＃５３に戻り、前述の動作を行い、ファイル数分、処理を繰り返す。
【００５４】
一方、ステップ＃５９における判定の結果、作成数分の検索が終わった場合には、次に、エントリーやヘッダを作成する（＃６５）。ここでは、図２のフローのステップ＃１７、もしくは＃１９〜＃３１と基本的に同様な処理を行い、エントリーやヘッダを作成する。すなわち、前述したように、分割サイズを超えない範囲で、ファイルを分割し、ファイルを分割するたびにヘッダとエントリーを作成しファイルを作成する。ただし、連鎖先を格納するＦＡＴは予定のファイル作成が終わった後に、最後にまとめて作成する。このとき、分割位置を示すクラスタ位置は、後ろから順次作成していく。
【００５５】
エントリーやヘッダの作成が終わると、リカバリー情報を消去する（＃６７）。すなわち、リカバリー処理がすべて終了し、リカバリー情報が必要なくなったことから、リカバリー情報を消去する。リカバリー情報が残っていると、次回、電源が入った際に、再び、同じリカバリー処理を行ってしまうので、このステップで消去しておく。リカバリー情報を消去すると、リカバリーを終了する。
【００５６】
次に、ＦＡＴファイルシステムについて図９および図１０を用いて説明する。図９は従来のＦＡＴシステムを示す。ＦＡＴファイルのそれぞれの各列Ｔ１〜Ｔ３の左側の数字は、クラスタ番号を表し、そのクラスタ番号の右側の箱の中の数字は、続きのデータが格納されているクラスタ番号が格納されている。なお、図９および図１０において記載されている数字は、説明のための仮の値であり、実際には表記通りではない。図９の例では、０ｘ００１０には、０ｘ００１１が格納されている。すなわち、０ｘ００１０番のクラスタ内のデータは０ｘ００１１番のクラスタ内のデータに続くことを示している。
【００５７】
このように、箱の中に格納されているクラスタ番号を追いかけていくことにより、データの格納されている位置を追跡することができる。この追跡を続けていくと、最終的に０ｘＦＦＦＦという値が格納されている（一番下の箱であり、０ｘ０Ｃ１２の位置）。０ｘＦＦＦＦは、このクラスタが最終であることを示している。このように、クラスタの連鎖を追いかけていくことにより、全データを読み出すことができる。本実施形態においては、制限容量以上のファイルの場合には、録音終了時に１つのファイルを分割し、例えば、２つのファイルにしている。したがって、ファイル中のクラスタの連鎖を途中で切るために、０ｘＦＦＦＦを書き込めば良い。
【００５８】
従来例におけるＦＡＴシステムのファイル分割は、図９に示すように、例えば、０ｘ００１０番に１ファイル目のヘッダが格納されているとすると、タイミングＴ２において、０ｘ０４１１番に連鎖終わりを示す０ｘＦＦＦＦが書き込まれる。その後、０ｘ０Ｃ１３番に新たにヘッダを書き込み、この連鎖先を０ｘ０４１２番とすることで、２ファイル目を作成している。
【００５９】
さらに、タイミングＴ３において、３ファイル目を作成している。ここで問題となるのは、タイミングＴ２において、電源が瞬断等により、処理が異常終了してしまった場合である。つまり、このＴ２の段階で停止してしまうと、録音開始時に記録したリカバリー情報では、０ｘ００１０番からデータの読み出しを開始すると、０ｘ０４１１番まで追うと、連鎖終了となってしまい、残りのデータを追うことができなくなる。
【００６０】
そこで、本実施形態においては、このような不具合を解消している。図１０は本実施形態におけるＦＡＴシステムにおけるファイル分割の様子を示す。タイミングＴ１１は、図９におけるタイミングＴ１と同じである。タイミングＴ１２においては、０ｘ０Ｃ１３に連鎖先のクラスタ番号である０ｘ０４１２を格納するが、０ｘ０４１１番に連鎖終わりを示す０ｘＦＦＦＦを書き込んではいない。また、タイミングＴ１３においても、０ｘ０Ｃ１４に連鎖先のクラスタ番号である０ｘ０８１２を格納するが、０ｘ０８１１番に連鎖終わりを示す０ｘＦＦＦＦを書き込んではいない。
【００６１】
タイミングＴ１４になると、０ｘ０８１１番に連鎖終わりを示す０ｘＦＦＦＦを書き込み、クラスタ連鎖を切っている。この段階で、初めて３つ目のファイルが完成する。次に、タイミングＴ１５において、０ｘ０４１１番でクラスタ連鎖を切り、この段階で、すべてのファイルが完成する。もし、仮に、タイミングＴ１３の段階で処理が異常終了により停止してしまっても、タイミングＴ１３の段階では、連鎖終わりを示す０ｘＦＦＦＦは０ｘ０Ｃ１２に書き込まれているだけであるので、リカバリー情報を頼りに、０ｘ００１０〜０ｘ０Ｃ１２までのデータを読み出すことができる。データ読み出しができれば、再度、ファイルの分割処理を行うことにより、ファイルの復活が可能である。
【００６２】
なお、リカバリー処理にあたっては、０ｘ０Ｃ１３番および０ｘ０Ｃ１４番に作成したヘッダ情報は消去しなければならない。このため、リカバリー情報にこのヘッダを登録したエントリーのファイル名を予め登録しておくことで、エントリーを検索し、消去できるようにしている。
【００６３】
以上、説明したように、本実施形態においては、データサイズが制限サイズより大きいと判定された場合には（＃１３、＃１５参照）、制限サイズ内にファイルを分割し（＃１９〜＃２９参照）、制限サイズに収まるファイルが全て生成された後に、終了情報を記憶エリアに記憶している（＃３１参照）。このため、連続録音中や録音終了中に電源の瞬断等により正常に終了処理ができなかった場合でも、ファイル修復が可能となる。すなわち、終了情報は、ファイルの分割処理が終わるまでは書き込みを行っていないために、分割処理中に電源が瞬断等しても、終了情報によってファイルが分断され、ＦＡＴによる追跡が不能となることがない。
【００６４】
なお、本実施形態においては、ＩＣレコーダに本発明を適用した例について説明した。しかし、ＩＣレコーダに限らず、パソコンや携帯電話等の種々の音声記録機能付き装置にも本発明を適用できることはいうまでもない。また、本実施形態においては、１ファイル２ＧＢの制限の例を用いて説明したが、これに限らず、任意のサイズにも適用できる。
【００６５】
また、本実施形態においては、ＷＡＶＥ形式によるデータの記録の例を説明したが、これに限らず、例えばＭＰ３形式によるデータの記録でも良く、また、音声データに限らず、動画データ等の他のデータにも適用できることはいうまでもない。動画データ等のデータを入力する場合には、マイクロフォン１１に代えて、撮像部等を設ければ良い。
【００６６】
本発明は、上記実施形態にそのまま限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素の幾つかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。
【図面の簡単な説明】
【００６７】
【図１】本発明の一実施形態に係わるＩＣレコーダの電気回路の要部を示すブロック図である。
【図２】本発明の一実施形態に係るＩＣレコーダの録音の動作を示すフローチャートである。
【図３】本発明の一実施形態に係わるＩＣレコーダのメモリ中のメモリマップを示す。図である。
【図４】本発明の一実施形態に係わるＩＣレコーダのメモリ中に記憶されるエントリーの格納内容を示す。
【図５】本発明の一実施形態におけるＩＣレコーダのメモリ中に記憶されるヘッダの格納内容を示す。
【図６】本発明の一実施形態におけるＩＣレコーダにおいて２ＧＢ以下となるクラスタ数を示す図である。
【図７】本発明の一実施形態に係るＩＣレコーダのリカバリー処理の動作を示すフローチャートである。
【図８】本発明の一実施形態に係るＩＣレコーダのリカバリー情報の内容を示す図である。
【図９】従来におけるＦＡＴファイルシステムにおける終了情報の書き込みを説明する図である。
【図１０】本発明の一実施形態においてＦＡＴファイルシステムにおける終了情報の書き込みを説明する図である。
【符号の説明】
【００６８】
１・・・ＣＰＵ、３・・・スピーカ、５・・・増幅器、７・・・ＤＡ変換器、９・・・メモリ、１１・・・マイクロフォン、１３・・・増幅器、１５・・・ＡＤ変換器、１７・・・操作部、１９・・・プログラムメモリ、２１・・・表示部、１０１・・・ブートセクタ、１０２・・・ＦＡＴ１、１０３・・・ＦＡＴ２、１０４ａ・・・フォルダＡのエントリー、１０４ｂ・・・フォルダＢのエントリー、１０５・・・エントリー格納領域、１０５ａ・・・リカバリー情報のエントリーの記憶領域、１０５ｂ・・・録音ファイルのエントリーの記憶領域、１０６・・・エントリー格納領域、１０７・・・リカバリー情報の実データを記憶する領域、１０８・・・音声ファイル、１０９・・・ヘッダ、１１０・・・音声データ
【図１】
2010128605.tif 000003
【図２】
2010128605.tif 000004
【図３】
2010128605.tif 000005
【図４】
2010128605.tif 000006
【図５】
2010128605.tif 000007
【図６】
2010128605.tif 000008
【図７】
2010128605.tif 000009
【図８】
2010128605.tif 000010
【図９】
2010128605.tif 000011
【図１０】
2010128605.tif 000012