以下に本発明の実施の形態を説明するが、本発明の構成要件と、明細書又は図面に記載の実施の形態との対応関係を例示すると、次のようになる。この記載は、本発明をサポートする実施の形態が、明細書又は図面に記載されていることを確認するためのものである。従って、明細書又は図面中には記載されているが、本発明の構成要件に対応する実施の形態として、ここには記載されていない実施の形態があったとしても、そのことは、その実施の形態が、その構成要件に対応するものではないことを意味するものではない。逆に、実施の形態が構成要件に対応するものとしてここに記載されていたとしても、そのことは、その実施の形態が、その構成要件以外の構成要件には対応しないものであることを意味するものでもない。
次に、図面を参照して、本発明の実施の形態について説明する。
図1は、本発明が適用される情報処理装置としての記録再生装置1の機能的構成例を示している。
図1の例では、記録再生装置1は、システム制御部11乃至Backupメモリ19を含むように構成されている。
システム制御部11は、記録再生制御部21乃至バックアップメモリ制御部25を含むように構成されている。
記録再生制御部21は、映像音声データの記録または再生に必要な一連の処理の総括制御を行う。なお、記録再生制御部21の記録制御の具体例については、図4を参照して後述する。
アプリケーションフォーマット制御部22は、例えば映像音声データとして静止画データが記録再生装置1に与えられた場合、その圧縮された静止画データを、静止画のアプリケーションフォーマット、例えば、JPEG(Joint Graphics Experts Group)、JFIF(Jpeg File Interchange Format)、EXIF(Exchangeable Image file Format)、TIFF(Tag Image File Format)等に変換するためのファイルヘッダ等の管理情報を生成する。また例えば映像音声データとしてSD(Standard Definition)動画像が記録再生装置1に与えられた場合、アプリケーションフォーマット制御部22は、その圧縮された動画像を、動画像のアプリケーションフォーマット、例えば、MPEG等に構成するためのシステムストリーム管理情報を生成する。また例えば、映像音声データとしてHD(High Definition)動画像が記録再生装置1に与えられた場合、アプリケーションフォーマット制御部22は、その圧縮されたHD動画像を、HD動画像のアプリケーションフォーマット、例えば、H264/AVC等のHDアプリケーションフォーマットに構成するシステムストリーム管理情報を生成する。
FATファイルシステム制御部23は、FATファイル形式での映像音声データの記録再生を制御する。なお、FATファイルシステム制御部23の記録制御の具体例については、図4を参照して後述する。
メモリカード/HDDドライブ制御部24は、例えばハードディスクドライブ16に対する制御として、ATAPIプロトコルに従い、ドライブ内部ファーム情報を取得してドライブメディア状態を監視し、ドライブメディア状態に応じて、ハードディスクドライブ16への記録再生開始を指示する。また、メモリカード/HDDドライブ制御部24は、リムーバブルメディア5等に対しても同様に制御を行い、その記録再生開始を指示する。
なお、実際には、ハードディスクドライブ16内のハードディスク41(図1には図示せず、図3参照)にデータが記録されることになるが、適宜、ハードディスクドライブ16にデータが記録されると略記する。
バックアップメモリ制御部25については、後述するBackupメモリ19の説明と併せて説明する。
映像音声入出力I/F12は、外部機器との間で映像音声データの入出力を行う。外部機器としては、図1の例では、カメラやマイク等で構成される映像音声出力装置4が映像音声入出力I/F12に接続されている。その他、映像音声入出力I/F12から出力される音声データに対応する音声を出力するスピーカや、映像音声入出力I/F12から出力される映像データに対応する映像を表示するモニタ等も、外部機器として映像音声入出力I/F12に接続され得る。
エンコード/デコード部13は、映像音声入出力I/F12から提供された映像音声データを圧縮して、その結果得られる圧縮映像音声データをデータ制御部14に提供する。また、エンコード/デコード部13は、データ制御部14から提供された圧縮映像音声データを伸張して、その結果得られる映像音声データを映像音声入出力I/F12に提供する。
データ制御部14は、記録時には、エンコード/デコード部13から提供された圧縮映像音声データと、アプリケーションフォーマット制御部22により生成された映像音声データの管理情報とを蓄積し、記録開始に備える。
ドライブ制御部15は、記録対象の圧縮映像音声データが、システムストリームとして、エンコード/デコード部13からSCR時刻情報付の2kバイトの空パケット単位で順次提供されてくると、それらから、GOP単位で格納されたビデオオブジェクト単位(VOBU)を生成し、VOBUが1個ないし複数個集合されたセル(CELL)またはRUV(Recording Unit Video Object)をデータ制御部14に蓄積し、CELLまたはRUVをまとめて、ハードディスクドライブ16やリムーバブルメディア5等のメディアに記録する制御を行っている。例えばデータ制御部14に数10MB分のCELLまたはRUVが蓄積されると、ドライブ制御部15は、それらのCELLまたはRUVをまとめてハードディスクドライブ16に記録する制御を繰り返し行っている。本実施の形態ではでは、1記録チャプタにつき1ファイルが生成され、ハードディスクドライブ16やリムーバブルメディア5等のメディアに記録される、としている。
User I/F17は、ユーザにより操作される操作装置2からの入力を受け付けるユーザインタフェースである。操作装置2は、例えばリモートコントローラや、記録再生装置1に内蔵されるパネルを利用したタッチパネル装置等により構成される。
PC入出力I/F18は、パーソナルコンピュータ3との間で情報の入出力を受け付けるユーザインタフェースである。
Backupメモリ19には、例えば図2に示されるように、アプリケーションフォーマットバックアップテーブル31(以下、BUp Table_App31と記述する)、および、ファイルシステムバックアップテーブル32(以下、BUp Table_FS32と記述する)が記録される。かかるBUp Table_App31とBUp Table_FS32とへの情報の記述や更新がバックアップメモリ制御部25(図1)によりなされる。
即ち、バックアップメモリ制御部25は、VOBUの集合であるRUV単位のハードディスクドライブ16への書き込み処理(以下、RUV書き込み処理と称する)SR−K(Kは、整数値であって、図2の例ではK=1乃至3のみ図示されている)毎に、アプリケーションフォーマットの更新差分情報をBUp Table_App31にバックアップする処理(以下、BUp Table_App更新処理と称する)SA−Kと、ファイルシステムの更新差分情報をBUp Table_FS32にバックアップする処理(以下、BUp Table_FS更新処理と称する)SF−Kとを実行する。
なお、ここで、更新処理とは、各テーブル(BUp Table_App31やBUp Table_FS32)の構成によって、各更新差分情報自体を、前に記録されていた各更新差分情報の上に上書きしていく処理をいうこともあるし、前に記録されていた各更新差分情報の削除を行わずに、各更新差分情報を別の領域に記憶していくことで、複数の更新差分情報を蓄積する処理をいう場合もある。かかる両者の処理の差異については、後述する。
また、本実施の形態では、アプリケーションフォーマットの更新差分情報としては、アプリケーションフォーマットの属性管理情報データの更新前後の差分情報が採用されており、一方、ファイルシステムの更新差分情報とは、FATファイルシステムの属性管理情報データの更新前後の差分情報が採用されている。
より具体的には、ファイルのオープン(以下、fopenと記述する)時においては、これから記録する新規記録ファイル用のエントリ(ファイル名、エントリ、アプリ属性のビデオ属性、オーディオ属性、アプリケーションフォーマット形式属性情報など記録開始時に定まる初期属性情報)が作成され、BUp Table_App31に記述される。
また、fopen時においては、これから記録する新規記録ファイル用のエントリ(ファイル名、ディレクトリ、エントリ情報、ファイル生成日時、FATファイル形式属性情報など記録開始時に定まるファイルシステムの初期属性情報)が作成され、BUp Table_FS32に記述される。
換言すると、新規ファイルが生成される毎に、その新規ファイル用のBUp Table_App31とBUp Table_FS32とが生成される、と捉えてもよい。
その後、動画のMPEG圧縮データのアプリケーションフォーマットストリームであるファイルボディデータの1RUVの書き込みが完了する毎に、即ち、RUV書き込み処理SR−K毎に、ファイルボディデータの更新属性情報(エントリID、時刻、サイズなどの更新属性情報)が、BUp Table_App31に順次バックアップされる。即ち、BUp Table_App更新処理SA−Kが順次実行される。
また、RUV書き込み処理SR−K毎に、ファイルシステムデータの更新属性情報(エントリID、時刻、サイズなどの更新属性情報、ファイルサイズ境界超えの場合につづいて新規に生成されるファイルエントリIDやファイル生成日時、FATファイル形式属性情報など記録開始時に定まるファイルシステムの初期属性情報のバックアップエントリ)が、BUp Table_FS32に順次バックアップされる。即ち、BUp Table_FS更新処理SF−Kが順次実行される。
図1のバックアップメモリ制御部25は、アプリケーションフォーマット制御部22がドライブのメディアを認識しない状態では、BUp Table_App31とBUp Table_FS32との内容またはそれ自体をクリアする。
また、バックアップメモリ制御部25は、例えば記録先がメモリカードドライブとして構成されるリムーバブルメディア5であった場合には、取り出し時にこれを検出して、存在しなくなるメモリカードドライブ内部に対応するバックアップ情報が記憶されているBUp Table_App31とBUp Table_FS32との内容またはそれ自体をクリアする。
また、バックアップメモリ制御部25は、PC入出力I/F18でドライブがシステム制御部11のFATファイルシステム制御部23やアプリケーションフォーマット制御部22と論理的に切り離されてドライブとして接続される状態に入る際には、書き換え可能性のあるハードディスクドライブ16あるいはリムーバブルメディア5の内部に対応するバックアップ情報が記憶されているBUp Table_App31とBUp Table_FS32との内容またはそれ自体をクリアする。
このようなBUp Table_App31やBUp Table_FS32にバックアップされた更新差分情報は、記録再生装置1の電源遮断後等の復旧制御に使用される。また、かかる復旧制御には、処理進捗ステップを示すバックアップマーク(以下、BUp Markと記述する)も使用される。そこで、BUp Markも、BUp Table_App31とBUp Table_FS32とのうちの少なくとも一方(本実施の形態では両方)に記述される。ただし、復旧制御やBUp Markの詳細については、図5以降を参照して後述する。
ここで、高画質長時間撮影でのBackupメモリ19のサイズ(以下、適宜バックアップメモリサイズと称する)と、BUp Table_FS更新処理SF−Kの回数K(以下、適宜FS差分バックアップ回数)について説明する。
映像音声ストリーム撮影用の記録メディアとして例えばハードディスクドライブ16を使用する場合、1ファイルで連続長時間記録が実現可能になってしまうことから、FS差分バックアップ回数は、バックアップメモリサイズを考慮して決定する必要がある。
1連続長時間記録では、その記録終了時にはじめて、ハードディスクドライブ16に対してFSの管理情報の更新書き込みが発生する。換言すると、その記録中は、1RUV分の書き込みデータについてのFSの更新差分情報のハードディスクドライブ16への書き込みは行えず、その記録終了時までは、FSの更新差分情報のBackupメモリ19へのバックアップはそのまま続けなければならない。
ここで、次のように単純化した場合を考える。即ち、単純にFATの管理情報についての更新差分情報だけを考慮する。また、後述するBUp Markのセットおよびクリアに必要なバイト数8バイト程度は誤差であると考える。記録開始マーク、記録ストリームファイルのオープン情報、ファイル生成情報なども誤差範囲であると考える。連続記録で1チャプタがファイルシステムの1ファイルサイズ上限に到達することを考慮せず、1ファイルで長時間大量データファイルサイズを作成できるとする。このように単純化した場合を考える。
この場合、FSの更新差分情報のBackupメモリ19へのRUV書き込み処理SR−K毎のバックアップに必要なバックアップメモリサイズとして、例えばHD−XPの1RUV(時間5秒前後)の映像音声圧縮ストリームデータ記録書き込み発生毎のバックアップに必要なバックアップメモリサイズと、SD−LPの1RUV(時間30秒余り)記録書き込み発生毎のバックアップに必要なバックアップメモリサイズを考える。
具体的には例えば、前者については、ヘッダ6バイト、データ10バイト、合わせて16バイトを想定し、さらに、HD−XPの1RUVを5秒として、60Gバイトで8時間撮影できるとすると、バックアップメモリサイズは、16バイト*5760(28800秒/5秒)=92160バイトとなる。即ち、約90kバイトがバックアップメモリサイズとして必要になる。
また、後者については、SD−LPの1RUVを30秒として、60Gバイトで40時間撮影できるとすると、バックアップメモリサイズは、16バイト*4800(144000秒/30秒)=76800バイトとなる。即ち、約75kバイトがバックアップメモリサイズとして必要になる。
ここで、例えば、Backupメモリ19として64kバイトのフラッシュメモリが採用された場合を考える。また、その連続使用中に使用量がいっぱいに近づいたときには別領域に切り替え使用が必要になってくること、FSだけがそのBackupメモリ19を占有使用できるシステム仕様は稀なことを考慮する。そして例えば、割当て1単位が32kバイトの2領域交互使用とされたときには、1RUVデータ相当の映像音声表示時間が短いHD−XPでは直前約5秒の1RUVは捨ててよいとし、また、2日間の長時間連続撮影で電源遮断があったら直前の30秒分のデータは捨ててよいなどの仕様割り切りの判断をしたとする。このような場合には、FSの更新差分情報のBackupメモリ19へのバックアップ回数は、図2のように1RUV毎とするのではなく、2乃至3RUV毎程度に1回とする、などの工夫処置の必要に迫られる。
以下、より一般的な仕様として、Backupメモリ19のサイズを節約すべく、連続撮影記録中に各RUVの撮影途中での書き込みエラーが発生した時点で記録中断し、その時点までの映像記録を1チャプタとして記録メディア(以下、説明の簡略上、ハードディスクドライブ16とする)に記録して、撮影記録終了してしまう、といった仕様を考える。
さらに、直前の最終RUVと、念のためにその前の2乃至3RUV分のストリームデータの記録によるFSの更新差分情報をBackupメモリ19に保持させ、それ以前のFSの更新差分情報はBackupメモリ19に既に書きこまれていても、それに対する上書きを可能な運用にする、といった仕様とする。
換言すると、RUV書き込み処理SR−K毎に、即ち、1RUV分のデータの書き込み毎に、バックアップメモリ制御部25は、FSの更新差分情報を順次バックアップしていく制御を行うとする。ただし、Backupメモリ19側では、所定の記憶割当て領域サイズのアドレス範囲内で、FSの更新差分情報のアドレス位置を順次送って、新たなFSの更新差分情報を順次記憶していくが、割り当てられた領域をいっぱい最後まで使い切ったら、記憶のアドレス位置を最初に戻して上書きしていくとする。即ち、リングバッファ的記憶制御仕様とする。
ここで、ハードディスクドライブ16側では、撮影1ファイルの書き込みでFSの管理情報の更新(以下、適宜FSの書き込み更新とも称する)を必要とするタイミングは、撮影停止または電源遮断修復の結果として、その1ファイルの書き込みが完成したときの1度だけであるとする。
この場合、目的とするFSの書き込み更新中の電源遮断が発生して、FSの管理情報が壊れたときに、次のようにすることで、FSの管理情報の復活が可能になる。即ち、電源遮断が発生するまでにハードディスクドライブ16にRUV単位で連続記録されていたRUVの集合体であって、その電源遮断が発生する直前に最後にハードディスクドライブ16に記録されたRUVまでの集合体を1ファイルとする。この1ファイルの最終的なトータルデータサイズやアドレス位置を確定でき、かつ、FSの書き込み更新ができるのに十分なFSの更新差分情報が、Backupメモリ19に保持されていれば、電源遮断発生時に最終的にBackupメモリ19にバックアップされたFSの更新差分情報から、FSの管理情報の復活が可能になる。
そこで以下、連続撮影記録中のFSの更新差分情報(FSの管理情報の差分データ)に対するバックアップ制御仕様について説明する。
連続撮影記録中の1ファイルの最終的なトータルデータサイズとトータルなファイルアドレス位置を確定でき、かつ、FSの書き込み更新ができるのに十分なFSの更新差分情報を、Backupメモリ19に保持させるためには、次のようにすればよい。即ち、この1ファイルの最終的なトータルデータサイズデータを、FSの更新差分情報のひとつ(バックアップ情報)としてBackupメモリ19に記憶させる。そして、ハードディスクドライブ16への最終のRUVデータの書き込み成功後のFSの書き込み更新に使用されるFSの更新差分情報については、上書き消去されないように、Backupメモリ19の書き込みアドレス位置管理制御を行うべく、リングバッファ的記憶制御を行うとする。或いは、FSの上位層であり、電源遮断があった場合にFS修復確認より先行して、修復確認するアプリケーションフォーマットの修復処理制御の都合があればその都合に合わせた上で、書き込み成功した最終RUVおよびその数RUV前までのRUVデータ書き込みについて、上書き消去されないように、同様なリングバッファ的記憶制御を行うようにしてもよい。これにより、Backupメモリ19のサイズを例えば32kバイトに収めることができる。
なお、32kバイトといったように、Backupメモリ19がある程度の大きなサイズを必要とする理由は、次の通りである。即ち、FSの更新差分情報のBackupメモリ19へのバックアップ書き込み動作は、1RUV分のデータが記録メディアへ書き込まれる毎に行われるとする。また、Backupメモリ19がフラッシュメモリで構成されているとする。この場合、その書き込み回数の耐久性は、およそ1書き込みブロックに対して30万回程度である。従って、あまりに頻繁な書換えが同一ブロックに対して局所的に発生すると、ブロックの大きな集合体で構成されているフラッシュメモリ全体のチップ寿命が早く尽きてしまう。そこで、リングバッファ的アドレス制御により平均的に使用していき、局所的書き込みによるブロック劣化が招くBackupメモリ19全体の使用不可状態に陥るのを回避する必要がある。これを実現するためには、ある程度の数のブロックが必要になるから、即ち、ある程度の大きさのメモリサイズが必要になるからである。
次に、連続長時間撮影記録中の場合に複数ファイルを1チャプタとして記録する仕様に本実施の形態を適用する例について説明する。
例えば、FSの1ファイルデータの最大データサイズを超えた連続長時間撮影記録中に限る仕様であって、所定の大容量データを超えて記録が進んだ場合には、1ファイルを1チャプタとして取り扱うのではなく、所定のデータサイズごとに、例えばアプリケーションフォーマット制御部22に実装制御として予め実装されたサイズごとに、即ち、定められた数100メガバイトや数G(ギガ)バイトごとに1ファイルとして、それらの各ファイルの集合体を1チャプタとして記録する仕様、即ち、1チャプタ内で複数ファイルを分割して記録する仕様が考えられる。
例えば以下、MPEG−PSの再生技術を用いて、即ち、時間連続する複数MPEGストリーム間のシームレス接続再生技術を用いて、アプリケーションフォーマット制御部22等が、長時間記録の場合に限って、時間連続する複数ファイルを、1チャプタ内部の分割ファイル記録されたファイルであるとみなして、その1チャプタを再生する制御仕様が採用された場合について考える。
この場合、HD−XPでハードディスクドライブ16が60GB容量で、8時間撮影の場合に1Gバイトごとに1ファイル記録されるとすれば、60分割されたファイルが連続的にハードディスクドライブ16に記録されることになる。
その際、順次生成される各ファイルのそれぞれについて、FSの更新差分情報が存在することになる。また、連続撮影時間中(1チャプタ記録中)、順次ファイルオープンされハードディスクドライブ16への書き込みがなされてファイルが完成されていく度に、完成されたファイルについてのFSの管理情報は確定することになる。
そこで、記録再生装置1は、撮影中のチャプタに属する1ファイルの書き込み処理が確定した時点で、そのファイルのFSの更新差分情報を利用してFSの書き込み更新を行い、それに引き続き、次のファイルをオープンして、同一チャプタの次の1ファイル書き込み処理にうつる、といった一連の処理を繰り返し実行すればよい。
また、別仕様として、長時間撮影中にファイル単位毎のFSの書き込み更新を行わずに、長時間撮影が終了したときにだけ、それら各ファイル全てについてのFSの管理情報をまとめてFSの書き込み更新を行う、といった仕様を記録再生装置1に適用する例について説明する。
この場合、時間連続した撮影1チャプタ内で、時間連続したストリームの入った各ファイル全てについてのFSの更新差分情報を利用して、FSの書き込み更新の処理を実行する必要になる。従って、この処理中に電源遮断が発生したら、次の電源投入時にFSの修復を実行する際に、Backupメモリ19内のFSの更新差分情報の読出し処理が必要となる。
この場合、長時間撮影中には各1ファイルが完成する度に、完成された1ファイルデータは確定されて、以後更新されない。そこで、記録再生装置1は、完成された1ファイルのFSの更新差分情報については、Backupメモリ19内で上書き禁止扱いに設定して、以後のリングバッファでのBackupメモリ19へのFSの更新差分情報の書き込み対象アドレス指定位置範囲から外す。
即ち、連続する長時間撮影中の1チャプタ書き込み期間中においては、順次完成された書き込み済みファイルについてのFSの更新差分情報は、これ以上更新不要な完成されたFSのバックアップ情報として取扱い、Backupメモリ19側では、現在の連続長時間撮影続行中は上書き禁止属性として取り扱う、といった制御を記録再生装置1が行えばよい。
このような制御を記録再生装置1が行うことによって、長時間撮影のため記録データのサイズがFSの1ファイルの最大データサイズよりも結果的に大きく超えてしまうために、長時間撮影による1チャプタが複数ファイルで構成される撮影状況となってしまうような場合であっても、FSの管理情報を復活させるために必要な複数ファイルの各FSの更新差分情報は問題なくBackupメモリ19に保存される。従って、長時間撮影がかなり進行した後のFSの書き込み更新中に電源遮断が発生しても、FSの修復が可能になる。
次に、図3を参照して、図1の記録再生装置1が、動画データを1つのファイル(1チャプタ)としてハードディスクドライブ16に記録するまでの一連の処理例について説明する。
ステップS1において、操作装置2等から動画記録開始命令が発行されると、記録再生装置1は、ステップS2において、ハードディスクドライブ16のハードディスク41に対して、fopen(ファイルのオープン)を行う。
このステップS2のとき、上述したように、これから記録する新規記録ファイル用のエントリ(ファイル名、エントリ、アプリ属性のビデオ属性、オーディオ属性、アプリケーションフォーマット形式属性情報など記録開始時に定まる初期属性情報)が作成され、図2のBUp Table_App31に記述される。また、これから記録する新規記録ファイル用のエントリ(ファイル名、ディレクトリ、エントリ情報、ファイル生成日時、FATファイル形式属性情報など記録開始時に定まるファイルシステムの初期属性情報)が作成され、図2のBUp Table_FS32に記述される。
記録再生装置1は、ステップS3において、ハードディスク41に対して、ファイルの書き込み開始(以下、fwriteと記述する)を行い、ステップS4において、ファイルボディデータを例えば1RUV単位でハードディスク41の領域41−1に順次書き込む処理(以下、ファイルボディ書き込み処理と称する)を実行する。
即ち、ステップS4のファイルボディ書き込む処理とは、図2のRUV書き込み処理SR−Kの繰り返し処理の集合体をいう。従って、このステップS4の処理では、RUV書き込み処理SR−K毎に、上述したBUp Table_App更新処理SA−KとBUp Table_FS更新処理SF−Kとがそれぞれ順次実行される。
ステップS5において、操作装置2等から動画記録終了命令が発行されると、記録再生装置1は、最終RUVデータのハードディスク41への書き込みを完了させ、システム制御部11の後述する図4のMovie Rec制御部61により取得された各種情報から、ファイルエントリ情報、生成時刻、サイズなどの情報を生成して、これらの情報から、ステップS6において、ハードディスク41の領域41−2に対するFAT1の更新書き込み処理(以下、FAT1更新処理と称する)を実行し、ステップS7において、ハードディスク41の領域41−3に対するFAT2の更新書き込み処理(以下、FAT2更新処理と称する)を実行し、ステップS8において、ハードディスク41の領域41−4に対するDirectory Entryの更新書き込み処理(以下、Directory Entry更新処理と称する)を実行する。
そして、ステップS9において、記録再生装置1は、ハードディスク41に対して、ファイルのクローズ(以下、fcloseと記述する)を行う。
このように、図3の例では、最終RUVの書き込み終了後に、ステップS6乃至S8の処理が実行されたが、即ち、ファイルボディの全ての書き込み終了後にFAT1,FAT2,Directory Entryの更新が行われたが、FAT1,FAT2,Directory Entryの更新タイミングは図3の例に限定されず、ファイルボディの所定単位の書き込みが行われる毎に、FAT1,FAT2,Directory Entryの更新がその都度行われてもいい。
ただし、ファイルボディの所定単位の書き込みが行われる毎にFAT1,FAT2,Directory Entryの更新がその都度行われることについては後述することにする。即ち、ここでは、図3の例と同様に、ファイルボディの全ての書き込み終了後にFAT1,FAT2,Directory Entryの更新が行われるとして、以下話を進めていく。
図4は、図3のステップS5の動画記録終了命令が発行された以降の処理の詳細例を説明するフローチャートである。
図4の例では、記録再生制御部21には、Movie Rec制御部61乃至Encoder Driver制御部64のそれぞれが設けられており、それらの下方の点線矢印に示される処理がそれぞれ実行される。また、FATファイルシステム制御部23には、File System制御部65が設けられており、その下方の点線矢印に示される処理が実行される。
ステップS5の動画記録終了命令が発行されると、MovieRec 制御部61は、RUV Data Buffer制御部63に、その動画記録終了命令を通知する。
すると、RUV Data Buffer制御部63は、ステップS31において、Encoder Driver制御部64に対して、終了最終RUVの作成を開始させる。ステップS32において、Encoder Driver制御部64は、図1のエンコード/デコード部13乃至ドライブ制御部15を制御して、終了最終RUVの一連のVOBUとVOBU_Table情報の作成を行う。即ち、VOBU毎にRUVデータとして、RUV Data Buffer制御部63により制御されるデータ制御部14のバッファに蓄積されていくことで、終了最終RUVの一連のVOBUが順次生されてゆき、また、そのVOBU_Table情報もデータ制御部14のバッファに蓄積される。
このようにして、終了最終RUVの一連のVOBUとVOBU_Table情報がデータ制御部14のバッファに蓄積されると、RUV Data Buffer制御部63は、ステップS33において、終了最終RUV作成完了の応答を、Movie Rec制御部61に通知する。
この通知を受けたMovie Rec制御部61は、ステップS34において、MovieInfo部62を制御して、アプリケーションフォーマットに基づく情報データ(以下、Info情報と称する)を、終了最終RUVに付加させる制御を行い、ステップS35において、終了最終RUV書き込みをFileSystem制御部65に対して指示する。
即ち、ステップS34において、MovieInfo部62は、アプリケーションフォーマット制御部22やFATファイルシステム制御部23を制御して、データ制御部14のバッファに蓄積されているデータにアプリケーション情報をInfo情報として付加することで、記録システムストリームとしての書き込み用終了最終RUVデータを完成させる。そして、ステップS35において、終了最終RUV書き込みの命令がFileSystem制御部65に対して発行される。
すると、ステップS36において、FileSystem制御部65は、メモリカード/HDDドライブ制御部24とドライブ制御部15とを制御して、終了最終RUVを、ファイルボディとしてハードディスクドライブ16のハードディスク41の領域41−1(図3)に引き続き書き込む。
以上のステップS5による動画記録終了命令発行後のステップS31乃至S36の処理制御が、アプリケーションフォーマットとしての書き込み制御である。
かかるアプリケーションフォーマットとしての書き込み制御が終了すると、ステップS37において、FileSystem制御部65は、終了最終RUVのハードディスクドライブ16への書き込みが完了したことを、RUV Data Buffer制御部63を介してMovie Rec制御部61に通知する。
すると、Movie Rec制御部61は、ファイルクローズ処理を、FileSystem制御部65に通知する。この通知を受けて、FileSystem制御部65は、上述したステップS6乃至S8の処理、即ち、FAT1,FAT2,Directory Entryの各更新処理を実行する。
ここで、図3と図4とを用いて説明した動画データの記録処理中に、記録再生装置1の電源遮断が発生した場合を考える。
図3の例では、ステップS6のFAT1更新処理の期間T2、ステップS7のFAT2更新処理の期間T3、および、ステップS8のDirectory Entry更新処理の期間T4のそれぞれは、ステップS4のファイルボディ書き込み処理の期間T1とほぼ同等の長さで描画されている。しかしながら、実際には、期間T2、期間T3、および、期間T4のそれぞれは、期間T1と比較すると遥かに短い。従って、期間T2、期間T3、および、期間T4における電源遮断の発生確率は、期間T1におけるその確率に比較して遥かに低い。
具体的には例えば、図3のFAT1の領域41−2のサイズはマイクロソフトの WhitePaper で規定される。通常、例えば FAT 1つあたり約3MByte程度が標準的なサイズとなる。ただし、ステップS6のFAT1更新処理で1RUV分の差分情報データの更新だけを行うとすれば、1個のFAT1につき、4セクタ(2kByte)の更新書き込みとなる。即ち、FAT2についても1個につき、4セクタの更新書き込みとなる。また、Directory Entryの更新も、標準的には4セクタの更新になり、メディアへの書き込み時間もFATと同程度となる。
小型のハードディスク41をメディアとした場合、1コマンド書き込み時間のうちの、FS の更新タイミングの経過時間を見積もると、メディアの書き込みレートは 180Mbps 乃至80Mbps なので、4セクタ(2kByte)単位更新でのFSの差分情報のメディアの実際の書き込み時間はコマンドレスポンス分の50 乃至150μ秒程度に収まる。他方、1コマンド書き込み時間中の、シーク動作(図3中ハードディスク41内の実線または点線で示される動作)の占める経過時間が最も長い。コマンドを受けてからシークして、4セクタの更新がなされて書き込みが完了するので、1シークで10乃至20 msec 程度かかることになる。
従って、期間T2乃至T4のFS更新期間中を狙った任意の電源遮断が発生した場合、FSの更新情報書き込み時間、即ち、期間T2乃至T4のうち、メディアにFSの更新情報を書き込みしているタイミングの時間が占める割合は、1/100 乃至1/200 程度となる。そして例えば1チャプタ撮影時間、即ち期間T1乃至T4全体の時間を200秒とすると、撮影時間中のFSの更新期間T2乃至T4が占める時間割合は 1/10000 となる。従って、メディアにFSの更新情報を書き込みしているタイミングに電源遮断が発生する確率は、 1/1000000 程度の確率になる。このように、たとえ記録中を狙った電源遮断が発生したとしても、その電源遮断がFSの更新期間中に発生することは稀である。
そこで、従来は、電源遮断が発生するタイミングとして、発生確率の低いFS更新期間T2乃至T4は考慮せずに、ステップS4のファイルボディ書き込み処理の期間T1に発生する第1のタイミングと、ステップS8のDirectory Entry更新処理の期間T4経過後以降に発生する第2のタイミングとを考慮して、図5に示されるように、ステップS3のfwrite前のステップS51の処理でBUp Mark1を付与し、ステップS8のDirectory Entry更新処理の期間T4終了後のステップS52の処理で、そのBUp Markをクリアする、という手法が採用されていた。なお、BUp Mark1の符号「1」は、後述するBUp Mark2等の符号「2」と区別するために付されている。
このような従来の手法では、電源遮断が発生した場合に、BUp Mark1が存在するときには、その電源遮断の発生タイミングは、期間T1内の第1のタイミングであるとみなしていた。かかる第1のタイミングでは、[FATは更新前の正常状態]なので、アプリケーション層からデータ差分情報を元に再度FAT差分更新を行うことで修復が可能である。一方、BUp Mark1が存在しないときは、期間T4終了後以降の第2のタイミングとみなしていた。かかる第2のタイミングならば、[FATとファイルは更新後の正常状態]なので FS に問題ない。第1のタイミングと第2のタイミングの両者とも、FS は正常動作状態なので、記録再生装置1は FS を使ってデータを修正して fclose しなおすことができる。
しかしながら、電源遮断が発生した場合にBUp Mark1が存在するときとは、実際には、期間T1内の第1のタイミングで電源遮断が発生したときのみならず、FSの更新期間T2乃至T4内の第3のタイミングで電源遮断が発生したときも可能性として存在する。かかる第3のタイミングとなる可能性は、第2のタイミングとなる可能性と比較して、上述したように遥かに低いとはいえ、0ではない。従って、第3のタイミングに電源遮断が発生した場合には[FAT は更新途中の不正状態]なので、FATの修復ができない可能性がある。FATが修復できなければ、アプリケーション層からは不可視な未使用領域がメディア上に残り、その未使用領域が再フォーマットまで使えないことになってしまう。
このように、BUp Mark1だけでは、電源遮断が発生したタイミングは、ファイルボディ書き込み中の期間T1内の第1のタイミングと、FSの更新期間T2乃至T4中の第3のタイミングとの何れであるのか、といった切り分けができない。即ち、電源遮断は、FSの更新期間T2乃至T4となる第3のタイミングで発生する確率が低いとはいえ存在するにも係らず、そのFSの更新期間T2乃至T4での電源遮断に対する対処は従来の技術では考慮されていなかった。
そこで、本発明人は、第3のタイミングで電源遮断が発生しても、即ち期間T2乃至T4内の何れのタイミングで電源遮断が発生しても、ファイルシステムを修復し、かつ、アプリケーションフォーマットで記録データを修復すべく、図6に示されるように、BUp Markとして、BUp Mark1以外にBUp Mark2-0乃至2-2を追加する手法を発明した。
より具体的には、図6に示されるように、fwrite前のステップS51の処理でBUp Mark1を付与し、さらに、ステップS4のファイルボディ書き込み処理の期間T1終了時点のステップS60の処理でBUp Mark2-0を付与し、ステップS6のFAT1更新処理の期間T2終了時点のステップS61の処理でBUp Mark2-1を付与し、ステップS7のFAT2更新処理の期間T3終了時点のステップS62の処理でBUp Mark2-2を付与し、ステップS8のDirectory Entry更新処理の期間T4終了時点のステップS52の処理で、そのBUp Markをクリアする、という手法を本発明人は発明した。
ここに、BUp Mark1,2-0,2-1,2-2のそれぞれの付与とは、上述した図2のBackupメモリ19のBUp Table_App31とBUp Table_FS32とのうちの少なくとも一方(本実施の形態では両方)にBUp Mark1,2-0,2-1,2-2のそれぞれを上書き(更新)することをいう。また、BUp Markのクリアとは、BUp Table_App31とBUp Table_FS32とに記述されているBUp Mark、図6の例では主にBUp Mark2-2を消去することをいう。
これにより、電源遮断タイミングは、BUp Mark1が存在するときには期間T1であり、BUp Mark2-0が存在するときには期間T2であり、BUp Mark2-1が存在するときには期間T3であり、BUp Mark2-2が存在するときには期間T4である、といったように電源遮断タイミングの切り分けが容易にできるようになる。
従って、記録再生装置1は、例えば電源遮断発生後に電源が再投入されたときなどに、かかるBUp Mark1,2-0,2-1,2-2の有無を利用して電源遮断タイミングを認識し、その認識結果に基づいて必要に応じてFS層を修復し、必要に応じてアプリケーション層(以下適宜アプリ層と略記する)を修復する処理を実行できる。なお、以下、かかる処理を、FS層/アプリ層確認修復処理と称する。BUp Mark1,2-0,2-1,2-2の有無を利用したFS層/アプリ層確認修復処理の一例が、図7のフローチャートに示されている。
ステップS81において、記録再生装置1は、図2のBackupメモリ19のBUp Table_App31とBUp Table_FS32とのそれぞれにBUp Markが存在するか否かを判定する。
BUp Markが存在しない場合とは、図6のステップS52のBUp Markクリアが行われたこと、即ち、動画データのファイルボディデータの書き込みが完了し(ステップS4)、ファイルシステムの更新情報の書き込みも完了し(ステップS6乃至S8)、その結果正常完了した場合を意味している。このような場合、FS層やアプリ層の確認修復は不要である。従って、BUp Markが存在しない場合、ステップS81の処理でNOであると判定されて、FS層/アプリ層確認修復処理は終了となる。
これに対して、BUp Mark1,2-0,2-1,2-2のうちの何れかがBUp Table_App31とBUp Table_FS32とに記述されている場合、ステップS81の処理でYESであると判定されて、処理はステップS82に進む。
ステップS82において、記録再生装置1は、BUp Mark1であるか否かを判定する。
BUp Mark1である場合とは、動画データのファイルボディデータの書き込み中、即ち、図6の期間T1中に電源遮断が発生したことを意味する。この場合、ファイルボディデータは、図1のアプリケーションフォーマット制御部22よって修復されなければならない状態である一方、FS層は更新前であってかつそのFS層が正常動作可能状態であることが保証されていて、FS層の更新差分情報は最終のRUVデータが書き込み開始する一つ前の状態までしかバックアップされていないので、FS層の更新差分情報からFS層を修復処理することは不要である。従って、BUp Mark1である場合には、ステップS82の処理でYESであると判定されて、アプリ層の確認や修復を行うべく、ステップS94以降の処理が実行される。ただし、ステップS94以降の処理については後述する。
これに対して、BUp Mark1ではない場合には、FS層が壊れている可能性がある。そこで、このような場合には、記録再生装置1は、ステップS82の処理でNOであると判定して、ステップS83において、FS層は正常であるか否かを判定する。
FS層が正常である場合には、アプリ層の確認や修復を行うべく、ステップS83の処理でYESであると判定されて、ステップS94以降の処理が実行される。ただし、ステップS94以降の処理については後述する。
これに対して、FS層が不正状態の場合には、ステップS83の処理でNOであると判定されて、処理はステップS84に進む。
ステップS84において、記録再生装置1は、BUp Mark2-0であるか否かを判定する。
BUp Mark2-0である場合とは、動画データのファイルボディデータの更新書き込みはすでに完了済みで、FAT FSのFAT1の更新情報書き込み中に電源遮断が発生したこと、即ち、期間T2中に電源遮断が発生したことを意味している。この場合、FS層は壊れている可能性があるため、上述したステップS83の処理でFS層の状態が確認され、FS層が不正状態であるときには、ステップS83においてNOであると判定され、さらにステップS84の処理でYESであると判定されて、処理はステップS85に進む。
ステップS85において、記録再生装置1は、図3のハードディスク41の領域41−2,41−3のFAT1とFAT2とをBUpで修復する。さらに、ステップS86において、記録再生装置1は、ハードディスク41の領域41−4のDirectory EntryをBUpで修復する。
ここにBUpとは、図2のBackupメモリ19のBUp Table_FS32に記述されているFAT1,FAT2, Directory Entryのそれぞれについての更新差分情報である。
なお、ステップS85とS86の処理の理由は次の通りである。即ち、FAT1が壊れたまま放置されると、読み取り対象のFSが、読み取られてみてファイルがみあたらないことによってFAT1が壊れていると判断され、その後でFAT2が代替使用として読み取り使用され、これによりそのFSが正常状態で動作する仕組みになっているが、読み取り代替判断処理に時間がかかり処理も冗長でFAT自体もその後の正常FS前提でのFS差分修正に不都合が発生するので、FAT1を直すことにしているのである。
その後、処理はステップS92に進む。ステップS92において、記録再生装置1は、FS層の修復に成功したか否かを判定する。
FSのFAT1の修復が成功したならばFSは正常状態で動作するので、このような場合には、アプリ層の確認や修復を行うべく、ステップS92の処理でYESであると判定されて、ステップS94以降の処理が実行される。ただし、ステップS94以降の処理については後述する。
これに対して、修復に失敗した場合には、記録再生装置1は、ファイルシステムエラーとして再フォーマットを促すべく、ステップS92の処理でNOであると判定して、ステップS93において、データエラーをユーザに通告する。これにより、FS層/アプリ層確認修復処理は終了となる。
また、BUp Mark2-1である場合とは、動画データのファイルボディデータの更新書き込みはすでに完了済みで、さらに、FAT FSのうちのFAT1の更新書き込みは済んで、FAT2側の情報更新の書き込み中に電源遮断が発生したこと、即ち、期間T3中に電源遮断が発生したことを意味している。この場合、FAT2が更新中であって壊れている可能性があり、Directory EntryはFAT1と不一致な更新前の状態なので、この結果、FS層が壊れた状態になっている可能性がある。そこで、上述したステップS83の処理でFS層の状態が確認され、FS層が不正状態であるときには、ステップS83においてNOであると判定され、さらにステップS84の処理でNOであると判定され、ステップS87の処理でYESであると判定されて、処理はステップS88に進む。
ステップS88において、記録再生装置1は、図3のハードディスク41の領域41−3のFAT2をBUpで修復する。さらに、ステップS89において、記録再生装置1は、ハードディスク41の領域41−4のDirectory EntryをBUpで修復する。
ここにBUpとは、図2のBackupメモリ19のBUp Table_FS32に記述されているFAT2, Directory Entryのそれぞれについての更新差分情報である。
その後、処理はステップS92に進む。ステップS92において、記録再生装置1は、FS層の修復に成功したか否かを判定する。
FS層の修復に成功した場合には、アプリ層の確認や修復を行うべく、ステップS92の処理でYESであると判定されて、ステップS94以降の処理が実行される。ただし、ステップS94以降の処理については後述する。
これに対して、修復に失敗した場合には、記録再生装置1は、ファイルシステムエラーとして再フォーマットを促すべく、ステップS92の処理でNOであると判定して、ステップS93において、データエラーをユーザに通告する。これにより、FS層/アプリ層確認修復処理は終了となる。
また、BUp Mark2-2である場合とは、動画データのファイルボディデータの更新書き込みはすでに完了済みで、さらに、FAT FSのうちのFAT1とFAT2の更新書き込みは済んで、Directory Entry側の情報更新の書き込み中に電源遮断が発生したこと、即ち、期間T4中に電源遮断が発生したことを意味している。この場合、更新中であるDirectory EntryはFAT1,FAT2と不一致な更新前の状態なので、この結果、FS層が壊れた状態になっている可能性がある。そこで、上述したステップS83の処理でFS層の状態が確認され、FS層が不正状態であるときには、ステップS83においてNOであると判定され、さらにステップS84,S87の各処理でそれぞれNOであると判定されて、処理はステップS91に進む。
ステップS91において、記録再生装置1は、図3のハードディスク41の領域41−4のDirectory EntryをBUpで修復する。
ここにBUpとは、図2のBackupメモリ19のBUp Table_FS32に記述されているDirectory Entryの更新差分情報である。
その後、処理はステップS92に進む。ステップS92において、記録再生装置1は、FS層の修復に成功したか否かを判定する。
FS層の修復に成功した場合には、アプリ層の確認や修復を行うべく、ステップS92の処理でYESであると判定されて、ステップS94以降の処理が実行される。ただし、ステップS94以降の処理については後述する。
これに対して、修復に失敗した場合には、記録再生装置1は、ファイルシステムエラーとして再フォーマットを促すべく、ステップS92の処理でNOであると判定して、ステップS93において、データエラーをユーザに通告する。これにより、FS層/アプリ層確認修復処理は終了となる。
以下、アプリ層の確認や修復を行うための処理、即ち、ステップS94以降の処理について説明する。
上述したように、ステップS94の処理に入るときには、FS層は正常動作状態で入ってくる。
そこで、ステップS94において、記録再生装置1は、図3のハードディスク41の領域41−1のアプリ層は正常であるか否かを判定する。
ステップS94において、アプリ層は正常であると判定した場合、記録再生装置1は、ステップS97において、BUp Markをクリアする。これにより、FS層/アプリ層確認修復処理は終了となる。
これに対して、ステップS94において、アプリ層は不正状態であると判定した場合、記録再生装置1は、ステップS95において、アプリ層を修復する。そして、ステップS96において、記録再生装置1は、アプリ層の修復に成功したか否かを判定する。
具体的には、記録再生装置1は、アプリ層においてRUV単位での最終書き込みアドレスの一致を確認し、異なる場合はRUV単位で記録時間を縮小する方向でファイルボディデータを削除して揃える。
そして、記録再生装置1は、アプリケーションフォーマットの長さとFSのデータ長さが一致していれば、ステップS96の処理で、アプリ層の修復に成功したと判定し、ステップS97において、BUp Markをクリアする。これにより、FS層/アプリ層確認修復処理は終了となる。
これに対して、アプリケーションフォーマットの長さとFSのデータ長さが不一致ならば、記録再生装置1は、RUV単位でアプリケーションデータ長さに合わせて再度正常動作のFSを修復処理して、あわせることを試みる。
この試みに成功した場合、ステップS96の処理で、アプリ層の修復に成功したと判定され、ステップS97の処理で、BUp Markがクリアされる。これにより、FS層/アプリ層確認修復処理は終了となる。
これに対して、この試みに失敗した場合、ステップS96の処理でNOであると判定されて、即ち、アプリ層の修復処理はファイルシステムエラーで終了して、処理はステップS93に進む。そして、ステップS93の処理で、再フォーマット(再初期化)をユーザに促すべく、データエラーがユーザに通告される。これにより、FS層/アプリ層確認修復処理は終了となる。
以上説明したように、図6と図7の例では、BUp Mark1,2-0,2-1,2-2を利用しているので、FS層更新期間である時間T2乃至T4に電源遮断が発生しても、FS層を正常動作状態に修復でき、無効容量(上述したアプリ層から不可視の未使用領域)も発生しない、という効果を奏することが可能になる。さらに、FS層の修復の際、そのFS層を構成しているFAT1,FAT2,Directory Entryのうちの修復が必要な箇所のみ修復できるという効果、即ち、修復が不要な箇所についてはFS更新情報の再度書き込み更新処理は不要となるという効果を奏することが可能になる。
ただし、正常記録中であっても、常にBUp Mark1,2-0,2-1,2-2を細かく付与していくという処理が必要であり、その分だけ記録処理の速度にも影響を及ぼす場合がある。従って、例えば記録処理のさらなる高速化が要求されている場合には、図8に示されるように2つのBUp Mark1,2のみを付与するようにすればよい。
即ち、図8は、図6とは別の手法が適用された記録処理を説明するフローチャートである。より具体的には、図8に示されるように、fwrite前のステップS51の処理でBUp Mark1を付与し、その後は、ステップS4のファイルボディ書き込み処理の期間T1終了時点のステップS111の処理でBUp Mark2のみを付与し、ステップS8のDirectory Entry更新処理の期間T4終了時点のステップS52の処理で、そのBUp Markをクリアする、という手法が本発明人により発明された別の手法である。
この場合のFS層/アプリ層確認修復処理は、例えば図9のフローチャートに従って実行される。
即ち、ステップS121において、記録再生装置1は、図2のBackupメモリ19のBUp Table_App31とBUp Table_FS32とのそれぞれにBUp Markが存在するか否かを判定する。
BUp Markが存在しない場合とは、図8のステップS52のBUp Markクリアが行われたこと、即ち、動画データのファイルボディデータの書き込みが完了し(ステップS4)、ファイルシステムの更新情報の書き込みも完了し(ステップS6乃至S8)、その結果正常完了した場合を意味している。このような場合、FS層やアプリ層の確認修復は不要である。従って、BUp Markが存在しない場合、ステップS121の処理でNOであると判定されて、FS層/アプリ層確認修復処理は終了となる。
これに対して、BUp Mark1,2のうちの何れかがBUp Table_App31とBUp Table_FS32とに記述されている場合、ステップS121の処理でYESであると判定されて、処理はステップS122に進む。
ステップS122において、記録再生装置1は、BUp Mark1であるか否かを判定する。
BUp Mark1である場合とは、動画データのファイルボディデータの書き込み中、即ち、図8の期間T1中に電源遮断が発生したことを意味する。この場合、ファイルボディデータは、図1のアプリケーションフォーマット制御部22よって修復されなければならない状態である一方、FS層は更新前であってかつそのFS層が正常動作可能状態であることが保証されていて、FS層の更新差分情報は最終のRUVデータが書き込み開始する一つ前の状態までしかバックアップされていないので、FS層の更新差分情報からFS層を修復処理することは不要である。従って、BUp Mark1である場合には、ステップS122の処理でYESであると判定されて、アプリ層の確認や修復を行うべく、ステップS127以降の処理が実行される。
なお、ステップS127以降の処理は、上述した図7のステップS94以降の処理と基本的に同様であるので、ここではその説明は省略する。
これに対して、BUp Mark1ではない場合、即ち、BUp Mark2である場合とは、図8の期間T2乃至T4内、即ち、FS更新期間内に電源遮断が発生した場合を意味する。このような場合、図7を用いて上述したように、FS層が壊れている可能性がある。そこで、BUp Mark2である場合には、記録再生装置1は、ステップS122の処理でNOであると判定して、ステップS123において、FS層は正常であるか否かを判定する。
FS層が正常である場合には、アプリ層の確認や修復を行うべく、ステップS123の処理でYESであると判定されて、ステップS127以降の処理が実行される。
これに対して、FS層が不正状態の場合には、ステップS123の処理でNOであると判定されて、処理はステップS124に進む。
即ち、BUp Mark2である場合とは、繰り返しになるが、動画データのファイルボディデータの更新書き込みはすでに完了済みで、その後のFAT FSのFAT1,FAT2,Directory Entryのうちの何れかの更新情報書き込み中に電源遮断が発生したこと、即ち、期間T2乃至T4中に電源遮断が発生したことを意味している。この場合、FS層は壊れている可能性があるため、上述したステップS123の処理でFS層の状態が確認され、FS層が不正状態であるときには、ステップS123の処理でNOであると判定され、処理はステップS124に進む。
ステップS124において、記録再生装置1は、図3のハードディスク41の領域41−2,41−3,41−4のFAT1,FAT2,Directory EntryをBUpで修復する。
ここにBUpとは、図2のBackupメモリ19のBUp Table_FS32に記述されているFAT1,FAT2, Directory Entryのそれぞれについての更新差分情報である。
即ち、図9の例では、図7の例と異なり、期間T3やT4中に電源遮断が発生した場合であっても、FAT1,FAT2, Directory Entryの一括修復が行われるのである。
その後、処理はステップS125に進む。ステップS125において、記録再生装置1は、FS層の修復に成功したか否かを判定する。
FSの修復に成功した場合には、アプリ層の確認や修復を行うべく、ステップS125の処理でYESであると判定されて、ステップS127以降の処理が実行される。
これに対して、修復に失敗した場合には、記録再生装置1は、ファイルシステムエラーとして再フォーマットを促すべく、ステップS125の処理でNOであると判定して、ステップS126において、データエラーをユーザに通告する。これにより、FS層/アプリ層確認修復処理は終了となる。
以上説明したように、図8と図9の例では、BUp Mark1,2を利用しているので、FS層更新期間である時間T2乃至T4に電源遮断が発生しても、FS層を正常動作状態に修復でき、無効容量(上述したアプリ層からの不可視の未使用領域)も発生しない、という効果を奏することが可能になる。さらに、図8の例の記録処理では、図6の例と比較して、BUp Markを付与する処理数を削減できるので、その分だけ記録処理全体の処理が高速化されるという効果を奏することが可能になる。
ところで、図7または図9のFS層/アプリ層確認修復処理の実行タイミングとして、動画記録中に電源遮断が発生して、その後電源復旧されたタイミングを例として上述してきたが、その実行タイミングは、上述した例に特に限定されない。
そこで、図7または図9のFS層/アプリ層確認修復処理の実行タイミングの別の例について、図10を参照して説明する。図10は、図1の記録再生装置1が取り得る各動作状態のうちの一部の例を示している。ここで、「一部」と記述したのは、説明の簡略上、記録処理に関する動作状態の一部の例のみが、図10には図示されているからである。即ち、記録再生装置1は、例えば、動画データ等の記録処理のみならず再生処理も実行できるので、当然ながら再生に関する動作状態も存在するが、説明の簡略上、かかる動作状態は省略されているからである。
図10において、各状態は、1つの楕円で示されており、その楕円内に記述された名称、例えば「マウント状態」等により判別される。1つの状態から1つの状態への状態遷移は、所定の条件(以下、状態遷移条件と称する)が満たされると実行される。このような状態遷移条件は、図10おいては、1つの状態から1つの状態への遷移を表す矢印に、“C”を含む符号を付して表されている。
例えば記録再生装置1の電源が投入されると、即ち、電源状態がオン状態になると、記録再生装置1は、状態遷移条件C1が満たされたと判定し、その状態をマウント状態に遷移させる。
マウント状態とは、各ドライブや記録メディアのチェック動作、即ち、いわゆるマウント動作を行い、その後、記録再生装置1の動作を待機させる状態をいう。
かかるマウント動作において、所定の記録メディアのチェック時に異常が発生すると、例えば、図1のハードディスクドライブ16の図3のハードディスク41のFSが読めなかった等の異常が発生すると、記録再生装置1は、状態遷移条件C2が満たされたと判定し、その状態をマウント状態からFS層/アプリ層確認修復状態に遷移させる。
このFS層/アプリ層確認修復状態が、図7または図9のFS層/アプリ層確認修復処理が実行されている状態である。即ち、図10の例では、状態遷移条件C2が満たされると、異常が発生している所定の記録メディアに対して、図7または図9のFS層/アプリ層確認修復処理が開始される。
状態遷移条件C2が満たされたことをトリガとして、図7または図9のFS層/アプリ層確認修復処理が開始され、その処理が終了すると、状態遷移条件C3が満たされたと判定されて、記録再生装置1の状態はFS層/アプリ層確認修復状態からマウント状態に遷移する。
また、図示はしないが、例えば図1の操作装置2により「記録」、「中立」、「再生」等の切替操作が可能であるとして、かかる切替操作により「記録」への切替が指示されると、状態遷移条件C4が満たされたと判定されて、記録再生装置1の状態はマウント状態から記録開始準備状態に遷移する。
なお、記録開始準備状態において、上述した切替操作により「中立」や「再生」等への切替が指示されると、状態遷移条件C5が満たされたと判定されて、記録再生装置1の状態は記録開始準備状態からマウント状態に遷移する。
記録開始準備状態とは、上述した図6または図8の記録処理を何時でも開始できる状態、即ちいわゆる待機状態をいう。従って、図1の操作装置2により動画記録開始命令が発行されると、状態遷移条件C6が満たされたと判定されて、記録再生装置1の状態は記録開始準備状態から記録状態に遷移する。この記録状態が、図6または図8の記録処理が実行されている状態である。即ち、図10の例では、状態遷移条件C6が満たされると、図6または図8の記録処理が開始される。
その後、図6または図8の記録処理が最後まで終了すると、即ち、ステップS9のfcloseが行われると、状態遷移条件C7が満たされたと判定されて、記録再生装置1の状態は記録状態からFS層/アプリ層確認修復状態に遷移する。即ち、図10の例では、記録処理が最後まで終了した場合にも、図7または図9のFS層/アプリ層確認修復処理が開始される。即ち、記録処理が最後まで終了した場合であっても、FS層やアプリ層が100%正常であるとは断言できず、その正常性をチェックするため、図7または図9のFS層/アプリ層確認修復処理が実行されるのである。
状態遷移条件C7が満たされたことをトリガとして、図7または図9のFS層/アプリ層確認修復処理が開始され、その処理が終了すると、状態遷移条件C8が満たされたと判定されて、記録再生装置1の状態はFS層/アプリ層確認修復状態から記録開始準備状態に遷移する。
なお、記録状態中に電源遮断が発生し、その後、電源が再投入されると、状態遷移条件C1が満たされてマウント状態に遷移し、さらに、状態遷移条件C2が満たされてFS層/アプリ層確認修復状態に遷移する。そして、電源遮断が発生したときに記録対象であった記録メディアに対して、図7または図9のFS層/アプリ層確認修復処理が開始される。
ところで、以上の説明では、アプリケーションが管理可能なファイルボディデータの単位、即ち、アプリケーションフォーマットの動画データ書き込み最小記録単位は、1RUV 単位であるとしてきたが、1RUV単位に特に限定されず、例えばVOBU等を単位としてもよい。ただし、上述した例の1RUV単位が好適である。なぜならば、サーチ情報含まれた RUV 単位での修復が、サーチ情報を作り直す必要がなくて、アプリケーションフォーマットとして、図7や図9を用いて説明した修復処理が容易となるからである。
より具体的には例えば、1RUVが 1GOP ならばサーチデータの再生成は不要だが、複数GOP、VOBU単位で長さ修正しようとする場合には、サーチデータの入っている VOBU_TABLE から再生成が必要になることからエンコード/デコード部13の処理が重く複雑となり、その結果、処理時間がかかってしまうからである。例えば、いわゆるHQ(High Quality)モード撮影の場合、映像音声の1GOP(0.5秒)でストリームデータレート上限が10.08Mbpsになり、1RUVはVOBU 10個構成で、5秒単位となる。エンコードはVBRでどのような撮影対象の場合でも、1RUVの上限は、320パック、740kByte、1480セクタまでとなる。なお、FATの1クラスタが32Kバイトの場合、24クラスタ(正確には23.125クラスタ)使用までとする。この場合、これより小さな区間で、ちょうどFSの書き込み更新タイミングでの電源遮断が繰り返されると、アプリケーションフォーマットにとって不可視な未使用領域が増大することになる。しかしながら、本実施の形態では、上述した図6または図8の記録処理を実行できるので、即ち、BUp Mark2-0乃至2-2やBUp Mark2が付加されるので、上述したようにFSの修復が可能になる、その結果、未使用領域は発生せず、ファイルがFAT的に壊れることもなくなるのである。
また、上述した例では、図2に示されるように、1ファイルの記録処理のときに、1RUVのファイルボディの記録メディア(例えば図3のハードディスク41)への記録ごと(例えば5秒ごと)に、FSの更新差分情報をBackupメモリ19(図1)にバックアップしてゆき、撮影完了したときに、即ち図3等のように動画記録終了命令がなされたときに、記録メディアへのFSの更新を行うとした。
このような場合には、バックアップするFSの更新差分情報は、その名の通り差分情報であるため、そのデータ量は高々2kByte の2倍、4kByte と、比較的少なくて済む。そこで、例えば仮に、FSの更新差分情報を格納するBUp Table_FS32(図2)の容量を2kByteとして、1RUVの記録ごとに、FS の更新差分情報を上書きしていく、即ち、バックアップ更新していく案も考えられる。ただし、このような案を採用する場合であって、Backupメモリ19がフラッシュメモリで構成されている場合には、そのフラッシュメモリの書き込み更新回数が頻繁になり、書き込み回数上限(通常は数10万回とされている)の書き換え更新寿命に早期に到達してしまう恐れがある。
一方で、上述した例では、記録処理途中の全RUVについての更新差分情報、即ちアプリケーションフォーマットの更新差分情報がBackupメモリ19にバックアップされているので、ファイル記録が電源遮断で終わった場合に、アプリケーションフォーマットで記録完成したRUV単位での任意の長さまでの動画撮影記録ファイルに調整可能に構成することができる。この場合には、FSの更新差分情報も RUV 単位で全て持っているのが好都合である。ただし、この場合、 FAT の記録1ファイル最長 2GByte 長であるとすると、全RUVについてのFSの更新差分情報を格納するBUp Table_FS32(図2)のサイズは例えば次のようになる。即ち、例えば 1RUV 5秒で24クラスタ未満、740kByte 以下であることから、2GByte 長のファイルが含む RUV 個数は約2639個以上になり、各々の RUV ごとに4kByte分の FS の更新差分情報をBUp Table_FS32に削除せずに順次蓄積していくと、動画1ファイルの記録長さが2GByte ファイルに達する場合には、BUp Table_FS32の容量は最大で 10.3MByteにもなる。
そこで、Backupメモリ19の書き換え更新寿命と容量とのバランスを考慮して、即ち、より一段と効率のよいバックアップを考慮して、例えば次のようなFS更新手法を採用することもできる。
即ち、大容量フラッシュの1セクタは 64kByte なので、Backupメモリ19のうちのBUp Table_FS32に割り当てるサイズは1セクタの整数倍のデータサイズとし、RUV単位毎のFSの更新差分情報の全てを消去せずに(上書きせずに)BUp Table_FS32に蓄積していき、1セクタの整数倍のデータサイズ以下に収まる所定のRUV個数のFSの更新差分情報が蓄積された段階で、記録メディアに対するFSの更新処理を行い、即ち、図3等のステップS6乃至S8の処理を実行し、BUp Table_FS32をクリアした後、そのままファイル録画を継続する、というFS更新手法を採用してもよい。即ち、図3のステップS4の処理とは、上述した図3等の説明では、ファイルボディデータとして動画記録終了命令がなされるまでの全てのRUVを記録メディア(図3の例ではハードディスク41)に記録するまでの一連の処理であるとした。これに対して、本FS更新手法が適用されたステップS4の処理とは、1セクタの整数倍のデータサイズ以下に収まる所定のRUV個数のみを記録メディアに記録するまでの一連の処理となる。換言すると、本FS更新手法では、1セクタの整数倍のデータサイズ以下に収まる所定のRUVを単位として、その単位毎に、ステップS4乃至S8の処理が繰り返し実行されることになる。
さらにまた、FSの差分を取るための単位は、上述した例ではRUVとされたが、より一般的にいえば、記録メディアの種類やFSの種類といった各種類に対するアプリケーションフォーマットの取り扱う最小単位(適宜、FSに基づくアプリケーションフォーマットの最小単位、或いは単にFSの最小単位とも称する)と、アプリケーションフォーマット規格のひとつとしての映像音声圧縮ストリーム規格の記録最小単位(以下、アプリケーションフォーマットの動画データ書き込み最小記録単位と適宜称する)との最小公倍数のL倍(Lは、1以上の整数値)とすればよい。
詳細には、FSに基づくアプリケーションフォーマットの最小単位と、映像音声圧縮ストリーム規格の記録最小単位とは、必ずしも一致することはなく、相互の最小単位の最小公倍数で単位が揃えられて、その揃えられた単位がファイルの記録単位として、ファイルの生成と記録が行われる。
例えば、アプリケーションフォーマット規格の記録メディアでの最小記録単位、即ち、FSに基づくアプリケーションフォーマットの最小単位は、記録メディアがハードディスクスクドライブ(以下、適宜HDDと略記する)16やメモリのFSの場合には、512バイト1セクタとして取り扱われる。ただし、上述した例のように、生成後のファイルの記録メディア上での汎用性を考慮して、512バイトの整数倍集合である32kバイト1ECCの整数倍を、FSに基づくアプリケーションフォーマットの最小単位として採用してもよい。
他方、映像音声圧縮ストリーム規格の記録最小単位は次のようになる。即ち、例えば、映像音声圧縮ストリーム規格のうちのSD方式の映像音声圧縮ストリーム規格では、MPEG−PSストリームが規定されており、その最小記録単位は2kバイトパックの整数倍であり、映像音声連続ストリームデータとしての記録最小単位は、この最小データ単位の整数倍となるMPEGの1GOPを含む1VOBU(ビデオオブジェクトユニット)の0.5秒時間分の可変長圧縮データサイズとなる。
また例えば、映像音声圧縮ストリーム規格のうちのHD方式の映像音声圧縮ストリーム規格では、H264/AVC方式のMPEG−TSストリームが規定されており、188バイト+同期データ数バイトを最小データ単位とし、上述した実施例の場合は、192バイトを1パックとして、映像音声連続ストリームデータとしての記録最小単位は、この最小データ単位の整数倍となるMPEGの1GOPを含む1VOBU(ビデオオブジェクトユニット)の0.5秒時間分の可変長圧縮データサイズとなる。
従って、ファイルの記録単位は、SD映像MPEG−PSストリームの場合には、32kバイトの整数倍であってかつ最小公倍数である32kバイト単位の整数倍となり、HD映像H264/AVCのMPEG−TSストリームの場合は192バイトと512バイトの最小公倍数である6kバイトの整数倍で、かつ32kバイトの整数倍の最小公倍数である192kバイト単位の整数倍となる。これらの各記録単位が、例えば1RUVとなる。
即ち、SD映像MPEG−PSストリームの場合には、映像圧縮MPEG−PSであって内部にSCR連続時刻情報をもつ2kバイト1パックが単位となり、その1パック単位の整数倍である32kバイトがECC単位を構成し、かかるECC単位が、映像音声圧縮ストリーム規格の記録最小単位となる。一方、上述したようにFSのメディア1セクタ512バイトが、FSに基づくアプリケーションフォーマットの最小単位である。従って、この512バイトとECC32kバイトとの最小公倍数の整数倍のサイズが、記録ファイルの記録単位となり、この記録単位で揃えられて(すなわちアライン処理されて)記録メディアに記録されることで、1RUVサイズになる。
また、HD映像H264/AVCのMPEG−TSストリームの場合には、映像圧縮MPEG−TSであって例えばAVCHDやBlu−Rayで定められるごとくH264/AVCの188kByteと同期データ4バイトを合わせた1パケットが基本パケットとなり、かかる基本パケットのサイズ、即ち、192バイトが映像音声圧縮ストリーム規格の記録最小単位となる。従って、192バイトと、FSのメディア1セクタ512バイトとの公倍数は6kバイトとなり、この6kバイトと、アプリケーションフォーマットのメディア汎用的なECC32kバイト指定サイズとの最小公倍数の整数倍が、記録ファイルの記録単位となり、この記録単位で揃えられて(すなわちアライン処理されて)記録メディアに記録されることで、1RUVサイズになる。
即ち、アプリケーションフォーマット規格によるSD方式映像音声圧縮ストリームとHD方式の映像音声圧縮ストリームとのそれぞれは、無限の長さの圧縮ストリームがバッファメモリに蓄積されてから記録メディアに書き込まれるのではなく、バッファメモリにおいて、RUV単位の圧縮ストリームが生成されて記録メディアに書き込まれる。即ち、所定サイズの圧縮ストリームがバッファメモリに蓄積された場合、例えば数Mバイト乃至数10Mバイトを超えたサイズの圧縮ストリームがバッファメモリに蓄積された場合、それがRUV(ビデオ記録1単位)として記録メディアに記録されつつ、撮影中の圧縮ストリームが並列処理により次の別RUVとしてバッファメモリに蓄積される、という処理が繰り返し行われる。このように、RUVは時間長さではなくデータサイズで決められる。
従って、本実施の形態では、上述したように、FSの差分を取るための単位として、RUVを採用するようにしたのである。
次に、FSのバックアップとその書き込み制御との全体処理について説明する。
ただし、以下の説明では、図1の記録再生装置1は、図11に示されるようなビデオ一体型カメラとして構成されているとする。
即ち、以下の例では、記録再生装置1は、SD動画記録、HD動画記録、および、静止画記録のそれぞれを実行できるとする。
この場合、SD動画記録、HD動画記録、および、静止画記録は、例えば、次のような動画または静止画のストリームデータのアプリケーションフォーマットに基づいて行われる。
即ち、HD動画記録についてのアプリケーションフォーマットとしては、例えば、AVCHDやBlu−Rayで定められるごとくH264/AVCの1パケット188kByteと同期データ4バイトを合わせたパケットを基本パケットとして持つトランスポートストリームを使用する規格の映像記録アプリケーションフォーマットが採用される。
また、SD動画記録についてのアプリケーションフォーマットとしては、例えば、MPEG2−PSのごとくSCR時刻連続データ情報を内在してもつ2kバイトの基本パックデータとしてもつプログラムストリームを使用する規格の映像記録アプリケーションフォーマットが採用される。かかるアプリケーションフォーマットでは、XP、HQ+、HQ、SP、LPという映像圧縮率、即ち記録映像品質をあらわす画質モードと、また映像の縦横比サイズである映像アスペクト比の選択設定が可能であり、かかる選択設定の結果として、圧縮映像音声データのそれぞれ相違する記録目標の平均あるいは最大平均の記録データ転送レートが実現される。
ここに、平均的または最大平均的な記録時間量とは、圧縮映像記録再生装置(ここでは記録再生装置1)側の設計仕様に存在する量である。かかる設計仕様としては、被写体内容によって変わるもので、通常の家庭内や自然風景の細かさと動きの映像を平均的な操作で映像記録する使い方での平均的な記録残量時間を用いる設計仕様でもよく、或いは、通常のスポーツや特殊作業環境で使用するユーザの使用状況下で予測されるかなり細かい映像で動きの激しい被写体映像を短く何度も記録停止を繰り返す使われ方での最大平均的な記録時間量を用いる設計仕様でもよい。
また、静止画記録では、DCF静止画が記録対象となる。DCF(Design rule for Camera File system)は、デジタルカメラの標準的な画像ファイルとして、JEITA:電子情報技術産業協会によって決められたものである。Exif(Exchangeable Image File Format)の仕様はこのDCFによって決められているので、Exif対応JPEGがDCFとなる。
即ち、本例で取り扱うDCF静止画は、デジタルカメラとして機能する記録再生装置1によって撮影された画像のことであって、JPEG圧縮で記録され、Exifによってさらに日付や撮影場所などの撮影情報が付加情報として加えられ、DCF画像ファイルとして記録メディア(ハードディスクドライブ16やリムーバブルメディア5等)に保存される。なお、記録再生装置1のみならず、現在のデジタル静止画撮影カメラはほとんどがDCF対応となっている。
従って、静止画記録についてのアプリケーションフォーマットとしては、例えば、静止画DCFのアプリケーションフォーマットが採用される。かかる静止画DCFのアプリケーションフォーマットにおいては、機器側(ここでは記録再生装置1側)で、自分の撮影仕様に基づいて撮影画像ピクセルサイズが設定される。撮影画像ピクセルサイズとは、撮影画像の縦横に並ぶ画像ピクセルサイズであって、例えば搭載カメラ静止画撮影解像度の選択機能によって、4M(メガ、以下同じ)、3Mワイドアスペクト、1.9M、VGA(0.3M)などが選択される。さらには、記録再生装置1がCMOS撮像素子を有する場合には、動画像と同時撮影可能な静止画サイズとして、例えば2.3Mワイドアスペクト静止画があり、4:3動画映像と同時撮影可能な静止画サイズとして1.7M静止画(4:3標準アスペクト)があり、かかる静止画を取り扱える仕様とすることも可能である。
ここで、図12の一番上のタイミングチャートに示されるようなユーザ操作について考える。即ち、ユーザは、ステップSU1において、SD動画記録を開始させ、ステップSU2において、SD動画記録(例えばMPEG2 プログラムストリームでの記録)を進行させ、ステップSU3において、そのSD動画記録を停止させる。そして、ステップSU4の撮影休止中を経て、即ち、所定の撮影休止時間をおいて、ユーザは、ステップSU5において、HD動画記録を開始させ、ステップSU6において、HD動画記録(例えばMPEG4 トランスポートストリーム AVCHDフォーマットでの記録)を進行させ、ステップSU7において、そのHD動画記録を停止させる。さらに、ステップSU8の撮影休止中を経て、即ち、所定の撮影休止時間をおいて、ユーザは、ステップSU9において、DCF静止画の撮影開始と記録完了を行わせる。即ち、ステップSU9においては、記録再生装置1は、静止画モードとなっており、図示せぬシャッタボタンがユーザにより押下されたとき、DCF静止画の撮影処理を開始して、それをファイルとして記録メディア(ハードディスクドライブ16やリムーバブルメディア5等)に書き込み、その書き込み完了時間を待って、静止画記録処理を完了とする。
このようなステップSU1乃至SU9のユーザの操作によりSD動画、HD動画、およびDCF静止画のデータが書き込まれる場所、即ち、記録メディア(ハードディスクドライブ16やリムーバブルメディア5等)上のデータ位置が、図12の下部に示されている。なお、図12の例では、矢印の右方に向かって、LBAアドレス値が大きくなるとされている。
この場合、例えば、記録メディア上のデータ位置としてLBAアドレス値の小さいメディア位置に存在する領域71に対して、FSの管理情報のFAT部分が書き込まれる。また、このFSの管理情報のFAT部分の登録更新の差分情報が、上述したFSの更新差分情報として図1のBackupメモリ19にバックアップされる。
このBackupメモリ19へのFSの更新差分情報のバックアップタイミングは、次の通りとなる。即ち、映像音声圧縮ストリーム規格の記録最小単位と、FSに基づくアプリケーションフォーマットの最小単位(FSの最小単位)との最小公倍数を整数倍したデータサイズが1RUVデータサイズであり、このRUV単位でデータが記録メディアに記録されていく。そこで、上述したように、1RUVの1倍を含む整数倍のデーが記録メディアに記録される毎に、FSの更新差分情報がBackupメモリ19にバックアップされていく。
即ち、図12の例では、記録メディアの領域72に対して、SD動画ストリームファイルが1RUV単位で記録されていくので、かかる1RUVの整数倍の記録がなされる毎に、FSの更新差分情報がBackupメモリ19にバックアップされていく。なお、領域72を区分している複数の四角のそれぞれに、1RUV分のデータが順次記録されていく。
また、図12の例では、記録メディアの領域73に対して、HD動画ストリームファイルが1RUV単位で記録されていくので、かかる1RUVの整数倍の記録がなされる毎に、FSの更新差分情報がBackupメモリ19にバックアップされていく。なお、領域73を区分している複数の四角のそれぞれに、1RUV分のデータが順次記録されていく。
ここで、SD動画ストリームファイルとHD動画ストリームファイルとの各1RUVの内部構成について説明する。
SD動画ストリームファイルの1RUVの内部構造は、次のようになる。即ち、上述したように、映像圧縮MPEG−PSであって内部にSCR連続時刻情報をもつ2kバイト1パックが単位となり、その1パック単位の整数倍の32kバイトがECC単位を構成し、かかるECC単位が、映像音声圧縮ストリーム規格の記録最小単位でとなる。一方、上述したようにFSのメディア1セクタ512バイトが、FSに基づくアプリケーションフォーマットの最小単位である。従って、この512バイトとECC32kバイトとの最小公倍数の整数倍が、記録ファイルの記録単位となり、この記録単位に揃えられて(即ちアライン処理されて)記録メディアに記録されることで、1RUVサイズになる。なお、図12の例では、領域72の先頭のRUVが記録される領域72−1において、複数に区分されている小領域のサイズが、512バイトとECC32kバイトとの最小公倍数とされている。
また、HD動画ストリームファイルの1RUVの内部構造は、次のようになる。即ち、映像圧縮MPEG−TSであって例えばAVCHDやBlu−Rayで定められるごとくH264/AVCの188kByteと同期データ4バイトを合わせた1パケットが基本パケットとなり、かかる基本パケットのサイズ、即ち、192バイトが映像音声圧縮ストリーム規格の記録最小単位となる。従って、192バイトと、FSのメディア1セクタ512バイトとの最小公倍数は6kバイトとなり、この6kバイトとアプリケーションフォーマットのメディア汎用的なECC32kバイト指定サイズとの最小公倍数の整数倍が、記録ファイルの記録単位となり、この記録単位に揃えられて(すなわちアライン処理されて)記録メディアに記録されることで、1RUVサイズになる。なお、図12の例では、領域73の先頭のRUVが記録される領域73−1において、複数に区分されている小領域のサイズが、6kバイトとECC32kバイトとの最小公倍数とされている。
ここで、SD、HDの動画記録が進行する際におけるFSの更新差分情報のBackupメモリ19へのバックアップの頻度を考える。
即ち、SD、HDの動画記録が進行する際には、Backupメモリ19においては、先ずBUp Markが設定され、その後、所定の1RUVまたは複数RUVの記録メディアに対する記録処理毎に生成されたFSの更新差分情報が、順次バックアップされていく。
このバックアップの頻度の程度は、例えばHD動画のXP画質では1RUVの記録時間が5秒程度であることから、1RUV記録毎のバックアップでは頻繁に過ぎるので、10秒乃至20秒間隔毎、即ち、2乃至4RUV記録毎に1度のバックアップが適当であると思われる。
また、HD動画のLP画質では1RUVの記録時間が30秒を越えるので、1RUV記録毎のバックアップで問題なく、逆に、複数RUV記録毎のバックアップにすると、それまでの記録を失う危険性がありうる(ただし、FSの更新タイミングに合致したFS書き込み中のデータ破壊はかなり稀である)。従って、1RUV記録毎に1度のバックアップが適当であると思われる。
HD動画のその他の画質や、SD動画についても全く同様に、1RUVの記録時間に応じて、バックアップの頻度を設定するとよい。
なお、静止画には圧縮サイズ単位の指定は特にないが、記録メディアの汎用性から1ECC32kバイトの整数倍が、記録ファイルの記録単位となり、この記録単位に揃えられて(すなわちアライン処理されて)記録メディアに記録される。即ち、この記録単位のデータの集合体が、DCF静止画ファイルとなる。即ち、図12の例では、記録メディアの領域74に対して、DCF静止画ファイルが、上述した記録単位で記録されていくので、かかる記録単位分のデータの整数倍の記録がなされる毎に、即ち、領域74を区分している複数の四角のそれぞれにかかる記録単位分のデータが順次記録されていく毎に、FSの更新差分情報がBackupメモリ19にバックアップされていく。
この場合、静止画についてのFSの更新差分情報のバックアップは、記録開始と記録完了の操作はシャッタの押下タイミングといった1タイミングだけなので、上述した記録単位分のデータが記録される毎のバックアップ、即ち毎回バックアップが適当である。
このようにして、SD記録、HD記録、静止画記録のそれぞれの最中においては、FSの更新差分情報はBackupメモリ19に順次バックアップされていく。そして、それぞれの記録完了のときに、最終にバックアップされたFSの更新差分情報を用いて、FSの管理情報のストリームファイル登録情報の記録メディアへの更新書き込み処理(図12の例でいうFS差分情報書き込み更新処理)が実行される。即ち、図12の例では、ステップSU3の記録停止操作がなされて、SD動画の記録が完了するとき、ステップS201Sにおいて、FS差分情報書き込み更新処理が実行される。また、ステップSU7の記録停止操作がなされて、HD動画の記録が完了するとき、ステップS201Hにおいて、FS差分情報書き込み更新処理が実行される。そして、ステップSU9の静止画の撮影開始と記録完了操作がなされて、即ち、シャッタボタンが押下された後静止画の記録が完了するとき、ステップS201Dにおいて、FS差分情報書き込み更新処理が実行される。
次に、編集(削除)におけるFSのバックアップについて説明する。
記録再生装置1が図11のカメラ一体型ビデオで構成される場合には、1チャプタを1ファイルとして記録されたファイル群から、1つのチャプタを選択して削除したり、複数チャプタを選択してまとめて削除したり、選択されたアプリケーションフォーマット方式で記録されたチャプタを全て削除したり、或いはプレイリスト上の編集処理としての移動、消去、全消去をしたり、という編集処理を実現する機能が備えられている場合がある。以下、かかる場合について説明する。
先ず、前提事項として、本実施の形態の編集仕様としては、例えばオリジナル編集とプレイリスト編集があるとする。
本実施の形態のオリジナル編集では、動画チャプタのストリームファイルと、そのファイルを管理するアプリケーション管理情報ファイルとが更新修正される。また、本実施の形態のプレイリスト編集では、動画チャプタのストリームファイルそのものには変更を加えずに、アプリケーション管理情報ファイルの登録リスト情報が更新修正される。
1動画記録ストリームファイルはアプリケーションフォーマットに登録されて動画1チャプタとなる。このチャプタを、編集機能仕様上、オリジナル(以下、ORGと略記する)チャプタと称することにする。
これに対して、アプリケーションフォーマット方式の情報管理ファイルは、各動画チャプタを再生リストに登録削除して再生順序を編集制御するための機能を有しており、その再生リストに登録された指定順番で再生させる機能を有している。このようなファイルを、編集機能仕様上、プレイリストと称し、また、プレイリストをPLと略記することにする。
このPL編集機能情報を記憶するファイル内部領域も予約され、そのPL編集機能情報の予約領域とともにPLは、記録メディア上に記録される。例えば後述する図13乃至図17の例では、PLは領域81に記録される。即ち、編集処理の登録処理は、撮影の際にアプリケーションフォーマットが各チャプタに1つずつ自動的に付属生成したチャプタ情報ファイルを、PLへ追加(PLへの登録)、消去(PLから登録を消去する、という意味)、移動(PLの登録順序を書き替える、という意味)、全消去(PLの登録リストを初期化状態に書き換える)することにより行われる。
以下、図13乃至図17を参照して、オリジナル編集のひとつとして、ORGチャプタを選択削除する編集(削除)が行われる場合のFSのバックアップについて説明する。
図13は、ORGチャプタの選択削除前の状態を示している。この図13の状態で、図1のアプリケーションフォーマット制御部22は、削除指定されたORGチャプタである動画ストリームファイルについて、記録メディア上からのデータ削除指定を行う。図13の例では、ステップS211の処理として、チャプタ2であるファイルNo.2とチャプタ3であるファイルNo.3とがデータ削除対象として指定される。
図14は、アプリケーションフォーマット登録削除更新の状態を示している。即ち、ステップS212において、アプリケーションフォーマット制御部22は、チャプタ2であるファイルNo.2とチャプタ3であるファイルNo.3との各アプリケーションフォーマット登録管理情報の領域81上の登録(エントリ)を削除する。即ち、チャプタ2であるファイルNo.2とチャプタ3であるファイルNo.3についての登録(エントリ)がPLから削除される。また、そのステップS212の処理中に、アプリケーションフォーマット制御部22は、管理情報部分の書換え更新も行う。
図15は、FSの登録の削除前の状態を示している。即ち、図14のアプリケーションフォーマットの登録管理情報部分(PL部分)の削除更新が済んだら、図15に示されるように、FSのファイル登録の削除のステップに進む。即ち、ステップS213の処理で、Backupメモリ19のFSバックアップ記憶割当て領域(例えば図2のBUp Table_FS32等)にFS BUp Markがセットされる。これにより、FSの管理情報の登録の削除処理が開始される。次に、ステップS214の処理で、ファイルNo.2とファイルNo.3のそれぞれについて、FSの管理情報の登録(エントリ)を削除するための更新情報が、FSの更新差分情報として生成され、Backupメモリ19のFSバックアップ記憶割当て領域のFS差分情報領域(例えば図2のBUp Table_FS32等)にバックアップされる。
図16は、FSの登録の削除中の状態を示している。即ち、FSの更新差分情報のBackupメモリ19へのバックアップが完了すると、記録メディア上の領域71に対するFSの管理情報の更新書き込みが実行される。図16の例では、ステップS215の処理で、Backupメモリ19にバックアップされたFSの更新差分情報を用いて、FSの管理情報の登録が削除更新される。即ち、この例では、削除更新されるFSの管理情報の登録とは、削除対象のファイルNo.2とファイルNo.3の各FSの管理情報の登録(エントリ)を指す。また、この削除更新とは、具体的には、FSの更新差分情報が、FSの管理情報のFAT部分とDirectory Entry部分とのそれぞれに更新書き込みされることをいう。
この図16の状態で記録再生装置1に電源遮断が発生した場合を考える。この場合、記録再生装置1は、Backupメモリ19にFS BUp Markがセットされたままであることを判別して、Backupメモリ19からFSの更新差分情報を読み取って、これを代わりに使用して、FSの管理情報のFAT部分とDirectory Entry部分とのそれぞれに更新書き込みを行えばよい。これによって、FSの管理情報の書き込み更新の最中に電源遮断が発生して、FSが管理情報不整合となり壊れてしまったような場合であって、Backupメモリ19にバックアップされたFSの更新差分情報から安全にFSの管理情報を復旧して、このタイミングの電源遮断が原因で壊れたFSを復旧させることができる。
図17は、FSの管理情報登録から削除完了までの状態が示されている。即ち、図17に示される状態になると、ファイルNo.2とファイルNo.3とのFSの管理情報の登録(エントリ)の削除は完了しているので、ステップS216の処理で、ファイルNo.2とファイルNo.3の削除が行われ、ステップS217の処理で、Backupメモリ19のFS BUp Markがクリアされる。これにより、FSの管理情報からファイルのエントリの削除処理が終了することになる。
以上の図13乃至図17におけるステップS211乃至S217の処理によって、FSの管理情報の登録(エントリ)を削除するためのFSの更新差分情報を用いて、記録メディア上のFSの管理情報の更新書き込みが可能となる。さらに、かかる更新書き込み中に電源遮断が発生した場合であっても、Backupメモリ19のFSのバックアップ記憶割当て領域への書き込みと読出し制御が上述したように行われ、かかる制御の活用によって、電源遮断が原因で壊れたFSの復旧が可能となる。
なお、プレイリスト編集の削除更新においては、実ファイルの削除やサイズ変更は発生しないので、PLチャプタ登録、PLチャプタの選択消去、PLチャプタの選択移動、PLチャプタの全消去といった編集は、記録メディア上の領域81における情報管理ファイル(PL)の内部にすでに予約確保されている領域への登録とリストの登録順が修正編集されて、その情報更新が行われる。このため、FSが更新書き込みで壊れることはない。
次に、上述したFS BUp Markを、記録メディアのフォーマット初期化でのFSバックアップ制御との共用使用する手法について説明する。具体的にはここではFS BUp Markの設定とクリアは、記録メディアのアプリケーションフォーマット初期化の際のFS初期化フォーマットと共用できることについて説明する。
この場合の処理(以下、フォーマット処理と称する)は、例えば図18のフローチャートに示されるようになる。
即ち、ステップS311において、記録再生装置1は、アプリケーションフォーマットのアンロード処理を実行する。ここに、アンロード処理とは、アプリケーションフォーマット管理情報の制御をシステムの制御管理負荷から降ろし、アプリケーションフォーマット管理を終了させる処理を意味する。
ステップS312において、記録再生装置1は、ファイルシステムをアンマウントする。ここに、アンマウントとは、ドライブボリュームのFSの管理情報をドライブハードウエア認識情報の上に載せて読書き制御の情報処理インタフェースを管理する状態をいう。即ち、アンマウントするとは、ドライブハードウエア認識情報の上に載せたFSの管理情報の管理状態を終了させる、という意味である。
ステップS313において、記録再生装置1は、Backupメモリ19にFS BUp Markをセットする。
ステップS314において、記録再生装置1は、FSのフォーマット初期化論理イメージ書き込み処理を行う。
即ち、FS BUp Markがセットされてから、FSのフォーマット初期化処理(フォーマット初期化論理イメージ書き込み処理)が開始される。このFSのフォーマット初期化処理としては、最初にメディアの物理フォーマットが実行され、その後、FSの論理フォーマットが実行される。ここで、FSの管理部分のみ初期化データを書きこむクイックフォーマットあるいはディスク全面をユーザデータで書き込み直すフルフォーマットが実行される。
なお、クイックフォーマットとフルフォーマットとのそれぞれについての、FSのアクセスアドレスとメディアセクタのアクセス順番との関係が、図19に示されている。
図18に戻り、ステップS315において、記録再生装置1は、Backupメモリ19からFS BUp Markをクリアする。
その後、記録再生装置1は、ステップS316において、アプリケーションフォーマットの初期化イメージを生成して、ステップS317において、そのアプリケーションフォーマットの初期化イメージを記録メディアに書き込む。これにより、記録メディアのフォーマット初期化処理が完了する。
ステップS318において、記録再生装置1は、記録メディアに対するFSのマウント処理を実行する。
ステップS319において、記録再生装置1は、FSのマウント処理が成功したか否かを判定する。
FSのマウント処理に失敗した場合、ステップS319の処理でNOであると判定されて、処理はステップS313に戻され、それ以降の処理が繰り返される。
これに対して、FSのマウント処理に成功した場合、ステップS319の処理でYESであると判定されて、処理はステップS320に進む。
ステップS320において、記録再生装置1は、アプリケーションフォーマットのロード確認処理を実行する。
ステップS321において、記録再生装置1は、ロード確認処理が成功したか否かを判定する。
ロード確認処理に失敗した場合、ステップS321の処理でNOであると判定されて、処理はステップS313に戻され、それ以降の処理が繰り返される。
これに対して、ロード確認処理に成功した場合、ステップS321の処理でYESであると判定されて、フォーマット処理全体が終了となる。
以上の図18のフローチャートに従った処理が、正常状態でのフォーマット処理である。これに対して、このフォーマット処理中に記録再生装置1の電源遮断が発生し、その後に電源が再投入された後に実行されるフォーマット処理(以下、電源遮断後の再フォーマット処理と称する)の一例が、図20のフローチャートに示されている。
ステップS411において、記録再生装置1は、Backupメモリ19からFS BUp Markがクリアされているか否かを判定する。
ステップS411において、FS BUp Markがクリアされていないと判定された場合、処理はステップS412に進む。記録再生装置1は、ステップS412において、FS BUp Markをセットし、ステップS413において、FSのフォーマット初期化論理イメージ書き込み処理を行い、ステップS414において、FS BUp Markをクリアする。その後、記録再生装置1は、ステップS415乃至S420の処理として、図18のステップS316乃至S321と同様の処理を実行する。
これに対して、ステップS411において、FS BUp Markがクリアされていると判定された場合、処理はステップS415に進み、ステップS415乃至S420の処理として、図18のステップS316乃至S321と同様の処理が実行される。
即ち、図18のステップS314のFSのフォーマット初期化論理イメージ書き込み処理の実行中に電源遮断が発生した場合には、Backupメモリ19にFS BUp Markがセットされたままとなる。従って、このような場合、ステップS411の処理でNOであると判定され、FSのフォーマット初期化論理イメージ書き込み処理から再開されるのである。
これに対して、Backupメモリ19からFS BUp Markがクリアされている場合とは、FSのフォーマット初期化処理(FSのフォーマット初期化論理イメージ書き込み処理)の完了後に電源遮断が発生したこと、即ち、図18のステップS315の処理後に電源遮断が発生したことを意味する。従って、このような場合、ステップS411の処理でYESであると判定され、アプリケーションフォーマット初期化処理以降から再開されるのである。
以上説明したように、通常の記録、オリジナル編集でのFSのバックアップ制御に対して、Backupメモリ19にセットされるFS BUp Markを、システム(ここでは記録再生装置1)として統合的に使用することができる。
なお、フォーマット処理では、FSの更新差分情報のBackupメモリ19へのバックアップは不要である。初期化が一旦開始されれば、後戻りはできないからである。
以上説明したように、本実施の形態の記録再生装置1は、アプリケーションフォーマットの動画データ書き込み最小記録単位とファイルシステムの最小単位の最小公倍数の整数倍を単位としてFSの更新差分情報を生成し、それをバックアップ情報としてBackupメモリ19(図1)に記憶する。また、記録再生装置1は、記録処理の進捗を示す情報として、ファイルボディ書き込み中を示すBUp Mark1を付与し、FS更新書き込み中を示すBUp Mark2を付与する。従って、記録再生装置1の電源遮断が発生した際に、記録再生装置1は、ファイルシステムとディレクトリの更新情報とファイルシステム更新書き込み開始タイミングをアプリケーションフォーマットと整合とったバックアップ情報を、電源供給再開時等に実施する修復処理に効率よく用いることができる。
また、アプリケーションフォーマットレベルでは、記録再生装置1は、従来と同様に、バックアップ情報を使い、内蔵されている他パッケージ情報を読み出し活用し、修復をおこなうことができる。ただし、従来、アプリケーションフォーマットがベースにしているFS自体が壊れた場合には、どうすることもできなかった。これに対して、記録再生装置1は、図7や図9等を用いて説明したFS層/アプリ層確認修復処理を実行することができるので、電源遮断がFS更新書き込み中に発生した場合に破壊されるFSの修復を容易かつ的確に行うことができる。
ところで、上述した一連の処理は、ハードウエアにより実行させることもできるし、ソフトウエアにより実行させることもできる。一連の処理をソフトウエアにより実行させる場合には、そのソフトウエアを構成するプログラムが、専用のハードウエアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどに、プログラム記録媒体からインストールされる。
図21は、上述した一連の処理をプログラムにより実行するパーソナルコンピュータの構成の例を示すブロック図である。
図21において、CPU(Central Processing Unit)201は、ROM(Read Only Memory)202、または記憶部208に記憶されているプログラムに従って各種の処理を実行する。RAM(Random Access Memory)203には、CPU201が実行するプログラムやデータなどが適宜記憶される。これらのCPU201、ROM202、およびRAM203は、バス204により相互に接続されている。
CPU201にはまた、バス204を介して入出力インタフェース205が接続されている。入出力インタフェース205には、キーボード、マウス、マイクロホンなどよりなる入力部206、ディスプレイ、スピーカなどよりなる出力部207が接続されている。CPU201は、入力部206から入力される指令に対応して各種の処理を実行する。そして、CPU201は、処理の結果を出力部207に出力する。
入出力インタフェース205に接続されている記憶部208は、例えばハードディスクからなり、CPU201が実行するプログラムや各種のデータを記憶する。通信部209は、インターネットやローカルエリアネットワークなどのネットワークを介して外部の装置と通信する。
また、通信部209を介してプログラムを取得し、記憶部208に記憶してもよい。
入出力インタフェース205に接続されているドライブ210は、磁気ディスク、光ディスク、光磁気ディスク、或いは半導体メモリなどのリムーバブルメディア211が装着されたとき、それらを駆動し、そこに記録されているプログラムやデータなどを取得する。取得されたプログラムやデータは、必要に応じて記憶部208に転送され、記憶される。
コンピュータにインストールされ、コンピュータによって実行可能な状態とされるプログラムを格納するプログラム記録媒体は、図21に示されるように、磁気ディスク(フレキシブルディスクを含む)、光ディスク(CD-ROM(Compact Disc-Read Only Memory),DVD(Digital Versatile Disc)を含む)、光磁気ディスク、もしくは半導体メモリなどよりなるパッケージメディアであるリムーバブルメディア211、または、プログラムが一時的もしくは永続的に格納されるROM202や、記憶部208を構成するハードディスクなどにより構成される。プログラム記録媒体へのプログラムの格納は、必要に応じてルータ、モデムなどのインタフェースである通信部209を介して、ローカルエリアネットワーク、インターネット、デジタル衛星放送といった、有線または無線の通信媒体を利用して行われる。
即ち、図21の例では、リムーバブルメディア211や記憶部208に含まれるハードディスクが、動画データ等の記録対象となる記録メディアとして利用される。従って、本発明を図11のパーソナルコンピュータに適用することで、リムーバブルメディア211や記憶部208に含まれるハードディスクにおけるファイルシステムの修復が可能になる。
なお、本明細書において、プログラム記録媒体に格納されるプログラムを記述するステップは、記載された順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
また、本明細書において、システムとは、複数の装置または回路により構成される装置または回路全体を表すものである。
また、上述した例では、FSとして、FAT(File Allocation Table)形式のFSが採用されていたが、本発明はFAT形式以外の別のFSに適用することもできる。
1 記録再生装置, 2 操作装置, 3 パーソナルコンピュータ, 4 映像音声出力装置, 5 リムーバブルメディア, 11 システム制御部, 12 映像音声入出力I/F, 13 エンコード/デコード部, 14 データ制御部, 15 ドライブ制御部, 16 ハードディスクドライブ, 21 記録再生制御部, 22 アプリケーションフォーマット制御部, 23 FATファイルシステム制御部, 24 メモリカード/HDDドライブ制御部, 31 BUp Table_App, 32 BUp Table_FS, 41 ハードディスク, 41−1乃至41−4 ハードディスクの領域, 201 CPU, 202 ROM, 208 記憶部, 211 リムーバブルメディア