記録装置、記録方法およびプログラム
【課題】データ記録が中断した場合でも、中断前までに記録されたデータを再生可能とする、複数種類のデータファイルの記録に対応した記録装置、記録方法およびプログラムを提供する。
【解決手段】データ列をファイルとして記録可能なデータ領域と、ファイルの管理情報を記録可能な特定領域とを含む記録媒体150へのデータの記録および再生を制御する記録媒体制御部170と、記録媒体制御部170を介して、第1のデータ列を第1のファイルとし、第2のデータ列を第2のファイルとして、時分割に記録する記録制御部110とを備え、記録制御部110が、データ領域上に予約領域を確保して、第1のデータ列を予約領域に順次記録し、記録するデータ列を第1のデータ列から第2のデータ列に切り替えるときに、直前に予約領域に記録した第1のファイルの終端に対応する管理情報を第1のファイルが終端で終了するように書き換え、かつ、予約領域の第1のファイルの終端に続く位置から第2のデータ列を記録する。
【解決手段】データ列をファイルとして記録可能なデータ領域と、ファイルの管理情報を記録可能な特定領域とを含む記録媒体150へのデータの記録および再生を制御する記録媒体制御部170と、記録媒体制御部170を介して、第1のデータ列を第1のファイルとし、第2のデータ列を第2のファイルとして、時分割に記録する記録制御部110とを備え、記録制御部110が、データ領域上に予約領域を確保して、第1のデータ列を予約領域に順次記録し、記録するデータ列を第1のデータ列から第2のデータ列に切り替えるときに、直前に予約領域に記録した第1のファイルの終端に対応する管理情報を第1のファイルが終端で終了するように書き換え、かつ、予約領域の第1のファイルの終端に続く位置から第2のデータ列を記録する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、記録媒体にデータファイルを記録する記録装置、データファイルの記録方法とプログラムに関する。
【背景技術】
【0002】
近年、デジタルビデオカメラ等で得られた映像データや音声データをフラッシュメモリ等の記録媒体に記録し、パーソナルコンピュータでデータを編集するといったことが行われている。このような場合、データを、パーソナルコンピュータで認識することができるデータフォーマットに準拠した形式で記録する必要があり、FAT(File Allocation Table)形式やUDF(Universal Disk Format)形式などのファイルシステムを利用することが一般的である。これらのファイルシステムでは、映像や音声などの実データのほかに、実データの配置情報などの管理情報も記録媒体に記録される。
【0003】
例えば、FAT形式では、クラスタと呼ばれるブロック単位でデータを管理し、ファイルおよびディレクトリは、ディレクトリ・エントリと呼ばれる情報から、ファイル名、作成日時、ファイル属性、ファイルサイズ、開始クラスタ等が取得できる。また、FATテーブルと呼ばれるデータの配置を管理するテーブルには、ファイルが使用するクラスタの位置や順番等の情報が記録されている。
【0004】
ここで、FAT形式でデータ列をファイルとして記録する場合には、実データをクラスタに記録する毎に、FATテーブルの配置情報を更新する必要がある。しかし、頻繁に情報更新を行うと、フラッシュメモリのように書き換え回数に制限のある記録媒体では、記録媒体の使用寿命を縮めることになる。そこで、FATテーブルなどの管理情報は、メモリにある程度蓄積し、一定間隔で記録媒体に書き込むことが一般的である。
【0005】
しかし、管理情報を記録媒体に記録する前に記録装置の電源が遮断されたり、記録媒体が抜かれたりしてデータの記録が突然中断された場合には、管理情報がないためにデータの配置がわからなくなり、前回管理情報を記録したときまでのデータしかファイルとして参照することができない。
【0006】
この課題を防ぐデータ記録方法として、記録媒体を初期化する時に、記録媒体のデジタルデータ記録領域を、連続したクラスタチェーンを有する単一の未記録領域ファイルとして設定し、データ記録時には記録開始時から記録終了時まで管理情報を記録することなく連続したクラスタチェーンに記録して、記録したデータ量を記録領域に記録することで、データ記録中に電力供給が中断した場合等でも、直前に記録したクラスタまでのデータを参照できる方法が提案されている (特許文献1参照)。
【先行技術文献】
【特許文献】
【0007】
【特許文献1】特開2006−285327号公報
【発明の概要】
【発明が解決しようとする課題】
【0008】
上記従来のデータ記録方法によれば、電力供給の中断などによって突然データ記録が行われなくなった場合でも、直前に記録したデータにアクセスすることができるため、データを読み出すことが可能になる。しかし、上記従来の方法は、記録媒体のデジタルデータ記録領域を単一の未記録領域ファイルと設定することから、記録するファイルが一種類の場合には有効であるが、映像データと音声データとをそれぞれ異なるファイルとして記録する場合など、複数ファイルを時分割で記録する場合には適用できない。すなわち、複数ファイルを時分割で記録する場合には、データ記録領域のファイルの配置がわからないため、ファイルの配置情報を事前に記録することができない。
【0009】
本発明はこのような従来技術の課題を解決するものであり、データ記録が中断した場合であっても、中断前までに記録されたデータを再生可能とする、複数種類のデータファイルの記録に対応した記録装置、記録方法およびプログラムを提供することを目的とする。
【課題を解決するための手段】
【0010】
上記目的を達成するために、本発明の記録装置は、データ列をファイルとして記録可能なデータ領域と、前記ファイルの管理情報を記録可能な特定領域とを含む記録媒体へのデータの記録および再生を制御する記録媒体制御部と、前記記録媒体制御部を介して、第1のデータ列を第1のファイルとして、また、前記第1のデータ列と異なる第2のデータ列を第2のファイルとして、時分割に記録する記録制御部を備え、前記記録制御部が、前記データ領域上に予約領域を確保して、前記第1のデータ列を前記予約領域に順次記録し、記録するデータ列を前記第1のデータ列から前記第2のデータ列に切り替えるときに、直前に前記予約領域に記録した前記第1のファイルの終端に対応する前記管理情報を前記第1のファイルが前記終端で終了するように書き換え、かつ、前記予約領域の前記第1のファイルの終端に続く位置から前記第2のデータ列を記録することを特徴とする。
【0011】
また、本発明の記録方法は、データ列をファイルとして記録可能なデータ領域と、前記ファイルの管理情報を記録可能な特定領域とを含む記録媒体に、第1のデータ列を第1のファイルとして、また、前記第1のデータ列と異なる第2のデータ列を第2のファイルとして、時分割に記録する記録方法であって、前記データ領域上に予約領域を確保して、前記第1のデータ列を前記予約領域に順次記録し、記録するデータ列を前記第1のデータ列から前記第2のデータ列に切り替えるときに、直前に前記予約領域に記録した前記第1のファイルの終端に対応する前記管理情報を前記第1のファイルが前記終端で終了するように書き換え、かつ、前記予約領域の前記第1のファイルの終端に続く位置から前記第2のデータ列を記録することを特徴とする。
【0012】
さらに、本発明のプログラムは、データ列をファイルとして記録可能なデータ領域と、前記ファイルの管理情報を記録可能な特定領域とを含む記録媒体に、第1のデータ列を第1のファイルとして、また、第1のデータ列と異なる第2のデータ列を第2のファイルとして、時分割に記録する記録制御部を制御する処理をコンピュータに実行させるプログラムであって、前記データ領域上に予約領域を確保して、前記第1のデータ列を前記予約領域に順次記録し、記録するデータ列を前記第1のデータ列から前記第2のデータ列に切り替えるときに、直前に前記予約領域に記録した前記第1のファイルの終端に対応する前記管理情報を前記第1のファイルが前記終端で終了するように書き換え、かつ、前記予約領域の前記第1のファイルの終端に続く位置から前記第2のデータ列を記録する処理を前記記録制御部に実行させることを特徴とする。
【発明の効果】
【0013】
本発明の記録装置、記録方法、プログラムは、異なるデータ列である第1のデータ列と第2のデータ列とを、それぞれ第1のファイルと第2のファイルとして時分割に記録するにあたって、データの記録中に突然データ記録が中断した場合でも、中断前に記録されたデータを参照することができ、記録データの損失を最小限に押さえることができる。
【図面の簡単な説明】
【0014】
【図1】本実施の形態にかかる記録装置の構成を表す図である。
【図2】本実施の形態にかかる記録方法の全体の処理内容を示すフローチャートである。
【図3】本実施の形態にかかる記録方法における、記録開始処理を含む一連の処理内容を示すフローチャートである。
【図4】本実施の形態にかかる記録方法において、ファイルオープン時のファイル管理情報の状態を説明するための図である。
【図5】本実施の形態にかかる記録方法において、クリップ管理ファイル記録開始時のファイル管理情報の状態を説明するための図である。
【図6】本実施の形態にかかる記録方法において、映像ファイル記録開始時のファイル管理情報の状態を説明するための図である。
【図7】本実施の形態にかかる記録方法において、音声ファイル記録開始時のファイル管理情報の状態を説明するための図である。
【図8】本実施の形態にかかる記録方法において、記録処理の内容を示すフローチャートである。
【図9】本実施の形態にかかる記録方法において、FATテーブルの事前確保の処理について説明するための図である。
【図10】本実施の形態にかかる記録方法において、FATチェーンの切り替え処理について説明するための図である。
【図11】本実施の形態にかかる記録方法において、記録停止処理の内容を示すフローチャートである。
【図12】本実施の形態にかかる記録方法において、クリップ記録停止処理について説明するための図である。
【発明を実施するための形態】
【0015】
以下、本発明の記録装置、記録方法およびプログラムの実施形態について、図面を参照しながら説明する。
【0016】
最初に、記録装置について説明する。
【0017】
図1は、本実施形態にかかる記録装置として、デジタルビデオカメラに用いられる記録装置100の構成を示すブロック図である。
【0018】
図1に示すように、本実施形態の記録装置100は、記録制御部であるシステム制御部110と、このシステム制御部110とバス160を介して接続された、映像信号や音声信号の符号化を行うエンコーダ120、映像信号や音声信号を入力する映像・音声入力手段130、データクリップの記録開始と終了とを使用者が入力する入力手段140、記録媒体150と機械的および電気的に接続可能で記録媒体150へのデータの記録および記録媒体150からのデータの再生を制御する記録媒体制御部170を含んでいる。
【0019】
システム制御部110は、例えば、図示しないCPUとメモリとを含むマイクロコンピュータによって実現される。このシステム制御部110は、クリップ記録処理手段111、空き領域サーチ処理手段112、ファイルシステム113を備えている。これらのシステム制御部110に含まれる各手段は、例えば、CPUで各種のプログラムを実行することによって実現される。
【0020】
システム制御部110のクリップ記録処理手段111は、映像データや音声データなどのデータ列のフレームレートやフレーム数、データのサイズをフレーム数で表したデュレーション等の各種情報を管理したり関連付けを行ったりするためのクリップ管理情報を作成し、XML(eXtensible Markup Language)形式にファイル化する。作成されたクリップ管理情報は、ファイルシステム113によって記録媒体150に記録される。
【0021】
空き領域サーチ処理手段112は、データを記録する記録媒体150に、必要な大きさの空き領域があるか否かを検出し、その空き領域の位置情報などを把握する。
【0022】
ファイルシステム113は、データ列が記録されたファイルをブロック単位で管理し、このファイルのブロックの配置情報を有しているものである。本実施形態では、FATファイルシステムを用いた例について説明する。
【0023】
映像・音声入力手段130から入力される映像信号は、エンコーダ120により順次圧縮されて符号化データとされる。符号化データは、図示しない記録バッファメモリに蓄積される。記録バッファメモリに蓄積された符号化データは、データ列としてシステム制御部110のクリップ記録処理手段111により読み込まれ、MXF(Material Exchange Format)形式にファイル化され、記録媒体150に記録される。
【0024】
また、映像・音声入力手段130から入力される音声信号は、エンコーダ120によって圧縮されてオーディオデータとされる。オーディオデータのデータ列は、クリップ記録処理手段111によりWave形式にファイル化され、記録媒体150に記録される。
【0025】
なお、映像データと音声データとを別ファイルとするのは、放送局などの業務用途の編集作業では、映像と音声とを独立して編集作業を行うことが多く、業務用途のノンリニア編集機では映像と音声とを別ファイルとするのが一般的なためである。記録開始から終了までの、映像ファイルと音声ファイルとの組み合わせをクリップと呼ぶ。なお、クリップには、クリップ記録処理手段111で作成されたクリップ管理ファイルも含まれる。また、以下本実施形態の説明では、映像データを第1のデータ列として、音声データを第2のデータ列として説明する。したがって、映像データファイルが第1のファイルであり、音声データファイルが第2のファイルとなる。
【0026】
記録媒体150は、映像や音声を記録するための記録媒体であり、本実施形態のビデオカメラの記録装置として用いられる上で、何らの限定が加えられるものではない。記録媒体150は、映像データ列や音声データ列をファイルとして記録可能なデータ領域と、ファイルの管理情報としてのクリップ管理ファイルを記録可能な特定領域とを含んでいる。
【0027】
本実施形態のビデオカメラの記録装置の記録媒体150としては、小型で耐久性のあるSDメモリカードをはじめとして、他の各種メモリ媒体、ハードディスク(HDD)やDVDなどが使用される。
【0028】
なお、本実施形態では、記録媒体150が記録装置100に着脱可能な構成について説明するが、記録媒体150が記録装置100に内蔵される形態であってもよい。
【0029】
また、記録媒体150は、本実施形態では一例としてFAT形式でフォーマットされており、記録媒体150へのファイルの書き出しは、ファイルシステム113によりFATテーブルの更新と、データの書き出し動作により行われる。
【0030】
クリップの記録開始および記録停止は、使用者である撮影者が、入力手段140を使用することで行う。通常のビデオカメラにおいて入力手段140は、録画開始と停止を操作するための操作ボタン(スイッチ)である。
【0031】
次に、図1に示した本実施形態の記録装置100における記録方法について、いずれもデジタルデータである映像データと音声データの記録を行う場合を例に、図を用いて説明する。
【0032】
なお、上記したように本実施形態の記録装置における記録制御装置としてのシステム制御部110は、マイクロコンピュータ等のコンピュータまたは、コンピュータを内蔵する専用装置などにより構成することができる。また、クリップ記録処理手段111、空き領域サーチ処理手段112、ファイルシステム113の各機能部の機能は、コンピュータが備えるCPUが所定のプログラムを実行することにより実現される。従って、コンピュータを前記各機能部として機能させるためのプログラムおよびそれを記録した記録媒体も本実施形態に含まれる。
【0033】
最初に、図2のフローチャートを用いて、システム制御部110におけるクリップの記録開始から記録停止までの処理の概要について説明する。
【0034】
図2に示すように、システム制御部110は、最初のステップS200で記録開始処理を行う。記録開始処理は、クリップ管理ファイル、映像ファイルおよび音声ファイルを記録するための記録媒体150の空き領域を検出し、クリップ管理ファイルの作成を行う処理である。
【0035】
記録媒体150に、データを記録するための空き領域がない場合や、記録媒体150の空き情報が把握できないなどのエラーが発生した場合は、ステップS204に進み、システム制御部110は、図示しないLCDなどの表示素子にエラーメッセージを表示して処理を終了する。
【0036】
記録開始処理が正常に行われた場合は、ステップS201へ進む。
【0037】
ステップS201では、システム制御部110は、記録処理を行う。記録処理は、図示しない記録バッファに蓄積された映像データや音声データを、クリップ記録処理手段111によって所定のフォーマット形式に変換し、記録媒体150に記録する処理である。記録媒体150の異常などのエラーが発生した場合には、システム制御部110は、エラーの内容を示すエラーコードを図示しないメモリに保持しておき、ステップS203へ進み記録停止処理を行う。
【0038】
一方、記録処理が正常に行われた場合は、ステップS202へ進む。
【0039】
ステップS202において、システム制御部110は、撮影者が入力手段140により記録停止を指示していないか否かを確認し、記録停止の指示がない場合は、ステップS201へ戻ってデータの記録処理を繰り返す。
【0040】
一方、ステップS202において、撮影者が入力手段から記録停止を指示したことが確認できた場合は、システム制御部110は、ステップS203に進み記録停止処理を行う。
【0041】
ステップS203では、システム制御部110は、記録停止処理を行う。ここでは、クリップ管理ファイル、映像ファイルおよび音声ファイルのクローズ処理が行われる。ステップS203でのクローズ処理が正しく行われた場合には、システム制御部110は、処理を終了する。
【0042】
一方、ステップS203のクローズ処理で、エラーが発生した場合、または図示しないメモリに、ステップS201での記録処理におけるエラーの発生を示すエラーコードが保持されている場合には、システム制御部110は、ステップS204に進みエラーメッセージを表示して処理を終了する。
【0043】
このようにして、エンコーダ120で符号化された映像データおよび音声データと、クリップ管理ファイルデータが記録手段150に記録される。
【0044】
次に、図2で概要を説明した本実施形態の記録方法の各ステップの詳細について、図面を用いて説明する。
【0045】
図3は、撮影者がビデオ撮影を開始し、映像データと音声データの記録が必要となった場合の、本実施形態の記録方法での処理の流れを示すフローチャートである。この、図3に示す処理の流れは、図2で示した本実施形態の記録処理の概要を示すフローチャートにおける、ステップS200の記録開始処理と、それに続いて行われるステップS201の記録処理の内容を示すものである。
【0046】
図3に示すように、撮影者がビデオ撮影を開始し、記録媒体150に記録すべきデータ列が発生する段階で、本実施形態の記録方法では、最初にシステム制御部110は、ステップS300として空きアロケーションの検出を行う。
【0047】
ここで空きアロケーションとは、クリップデータを記録するために確保する連続した未使用クラスタのことである。一般に、映像データのようなデータサイズが大きいデータを記録する場合には、記録媒体の特性を考慮して特定のサイズ(アロケーションサイズ)の連続した領域毎に記録することが行われる。このように大きな容量のデータを連続した領域に記録することで、例えば記録媒体150がハードディスクの場合には、ヘッドのシーク回数を減らすことができる。
【0048】
この空きアロケーションの検出は、空き領域サーチ処理手段112により行なわれる。具体的には、システム制御部110は、FATテーブルを先頭から順に読み込み、アロケーションサイズ分の連続している空きクラスタを検出する。空きアロケーションが一つもない場合、すなわち記録媒体150に録画データを記録できない場合には、システム制御部110は、エラーコードを設定し処理を終了する。
【0049】
空きアロケーションが検出できた場合には、ステップS301へ進む。
【0050】
ステップS301では、システム制御部110は、クリップ管理ファイル、映像ファイルおよび音声ファイルの各ファイルを作成する、ファイルオープン処理を行う。ファイルオープン処理では、システム制御部110は、各ファイルのディレクトリ・エントリを作成する。
【0051】
ステップS301において、メモリ不足などのエラーが発生してファイルオープン処理ができなかった場合には、システム制御部110は、エラーコードを設定して処理を終了する。
【0052】
一方、ファイルオープン処理に成功した場合には、ステップS302へ進む。
【0053】
ステップS302では、システム制御部110は、記録するデータが蓄積されているか否かを確認する。すなわち、システム制御部110は、図示しない記録バッファを監視して符号化データが蓄積されているか、もしくは、図示しないメモリを監視してエンコーダ120により圧縮されたオーディオデータが蓄積されているかを確認し、一定量蓄積されるまで待機する。データが蓄積されたら、システム制御部110は、クリップ記録処理手段111によって、符号化データやオーディオデータをそれぞれ所定の映像データ、音声データのフォーマット形式に変換し、ステップS303へ進みそれぞれのデータ列の記録処理を行う。
【0054】
ステップS303では、システム制御部110は、記録処理の最初のステップとして、記録するデータが、アロケーションに対しての初めての書込みであるか否かを確認する。
【0055】
初めての書込みである場合は、ステップS304へ進む。そうでない場合は、ステップS305へ進む。なお、本実施形態における記録方法でのクリップ記録では、システム制御部110は、まずクリップ管理データを記録し、その後、第1のデータ列である映像データと第2のデータ列である音声データを順次記録する。したがって、クリップ管理データを記録する場合は、システム制御部110は、アロケーション内の最初の書き込みであるためステップS304へ進み、映像データおよび音声データを記録する場合は、既にアロケーションにクリップ管理ファイルのデータが記録されているため、ステップS305へ進むこととなる。
【0056】
アロケーション内の最初の書き込みとして、クリップ管理データを記録する場合には、システム制御部110は、ステップS304でアロケーションに対して予約領域の確保を行い、管理情報を記録するFATテーブルの事前確保を行う。本実施形態の記録方法では、システム制御部110は、データの記録に当たってFATテーブルを事前に確保することで、データ記録時に記録装置の電源が切断されたり、記録媒体150が取り外されたりした場合のデータ損失を防ぐことができる。なお、その理由については後述する。
【0057】
このステップS304のFATテーブル確保時において、記録媒体150の異常などのエラーが発生した場合には、システム制御部110は、エラーコードを設定して処理を終了する。
【0058】
一方、FATテーブル確保が成功した場合には、システム制御部110は、データファイルの記録処理を行い、ステップS306へ進む。
【0059】
また、ステップS303でアロケーション内の最初のデータ書き込みでないと判断された場合、すなわち、映像データや音声データを記録する場合には、システム制御部110は、ステップS305でFATテーブルの切り替えを行う。
【0060】
このFATテーブル切り替え時に、記録媒体150の異常などのエラーが発生した場合には、システム制御部110は、エラーコードを設定して処理を終了する。
【0061】
FATテーブルの切り替えに成功した場合には、システム制御部110は、引き続いて映像ファイルと音声ファイルの記録処理を行い、ステップS306へ進む。
【0062】
ステップS306では、システム制御部110は、クリップ管理ファイル、映像ファイル、および、音声ファイルの記録処理がすべて完了したか否かを確認する。記録バッファやメモリに保管されていた全てのデータの記録が完了した場合は、システム制御部110は、処理を終了する。
【0063】
データの記録が完了していない場合には、ステップS303へ戻って、システム制御部110は、同じ手順でのファイル記録処理を継続する。
【0064】
ここで、図4から図7を用いて、図3のフローチャートで示した本実施形態の記録方法の、記録開始処理と記録処理を行う場合の、ディレクトリ・エントリ、FATテーブル、クラスタそれぞれの状態について例示して説明する。
【0065】
まず、図4は、ステップS301のファイルオープン処理が行われた状態の、ディレクトリ・エントリと、FATテーブル、および、クラスタの状態の例を示している。
【0066】
図4に示すように、ステップS301のファイルオープン処理が行われた状態では、クリップ管理ファイルのディレクトリ・エントリ400、映像ファイルのディレクトリ・エントリ401、音声ファイルのディレクトリ・エントリ402は、オープン処理のみが行われた段階であってまだデータは記録されてはいないため、ディリクトリ・エントリの先頭クラスタとファイルサイズがいずれも「0」となっている。なお、これらのディレクトリ・エントリ400,401,402は図示しないメモリに保持されていて、この時点では記録媒体150には記録されない。
【0067】
また、クラスタ番号0x08から0x0Fとして示すアロケーション領域403は、ステップS300で検出した空きアロケーションであり、図4に示すファイルオープン処理の段階では、FATテーブルはすべて未使用となっていて、それぞれのクラスタにもファイルデータは記録されていない。
【0068】
次に、図3のフローチャートにおいて、ステップS304として示した、記録開始時のFATテーブルの事前確保の処理内容について、図5を用いて説明する。
【0069】
図5は、FATテーブル確保時のディレクトリ・エントリと、FATテーブル、および、クラスタの状態を示す。なお、図5においては、クリップ管理ファイルのディレクトリ・エントリ500のように、図4から変化した部分については新たな符号(図4では400)を振り、映像ファイルのディレクトリ・エントリ401のように、図4の状態から変化のないものについては、図4と同じ符号を付している。
【0070】
図5に示すFATテーブル確保時には、クリップ管理データの書き込み要求に対し、まず、アロケーション503として示すように、ステップS300で検出した空きアロケーションである領域403の先頭からFATテーブルのチェーンが、シーケンシャルにつながれる。アロケーション領域503の終端には、ファイルの終端を示す「EOF」が記録される。この段階を以下、[第1の段階]と称する。
【0071】
次に、[第2の段階]として、クリップ管理ファイルのディレクトリ・エントリ500に、ファイルの開始クラスタ番号として、アロケーション領域503の先頭クラスタ番号「0x08」が記録され、ファイルサイズに、記録するデータのサイズ「192」が記録される。
【0072】
次に、[第3の段階]として、アロケーション領域503の先頭クラスタに、クリップ管理データ「X」が記録される。このようにすることで、アロケーション領域503は、すべてクリップ管理ファイルとして扱われる。
【0073】
クリップ管理ファイルのデータ記録が終了すると、今度は図3におけるステップS305として示したFAT切り替え処理が行われ、映像ファイルと音声ファイルの記録が行われる。
【0074】
図6は、映像ファイルの記録時のディレクトリ・エントリと、FATテーブル、および、クラスタ状態を示す。また、図7は、音声データ記録時の、ディレクトリ・エントリと、アロケーションのFATテーブル、および、クラスタ状態を示す。なお、図6および図7の見方は、図5と同じである。
【0075】
映像データの書込み要求に対し、まず、図6にFATテーブル603として示すように、クリップ管理ファイルのデータ「X」が記録された最後のFATテーブル「0x08」に、データの終端を示す“EOF”とマークされる。この段階を以下、[第4の段階]と称する。
【0076】
次に、[第5の段階]として、映像ファイルのディレクトリ・エントリ601に、ファイルの開始クラスタ番号として、クリップ管理ファイルの終端クラスタ「0x08」の次のクラスタ番号「0x09」が記録され、ファイルサイズに記録するデータのサイズ「98304」が記録される。
【0077】
次に、[第6の段階]として、クリップ管理ファイルの終端クラスタの次のクラスタから、映像データ「V」が記録される。このようにすることで、アロケーション領域604は、すべて映像ファイルとして扱われる。
【0078】
同様にして、図7に示すとおり、音声データの書込み要求に対し、まず、FATテーブル703として示したように、映像ファイルのデータ「V」が記録された最後のFATテーブル「0x0B」に、映像ファイルのFATテーブルの終端として、「EOF」がマークされる。これが[第7の段階]である。
【0079】
次に、[第8の段階]として、音声ファイルのディレクトリ・エントリ702に、ファイルの開始クラスタ番号として、映像ファイルの終端クラスタ「0x0B」の次のクラスタ番号「0x0C」が記録され、ファイルサイズに記録するデータのサイズ「32768」が記録される。
【0080】
次に、[第9の段階]として、映像ファイルの終端クラスタ「0x0B」の次のクラスタ「0x0C」から、音声データ「A」が記録される。このようにすることで、アロケーション領域704はすべて、音声ファイルとして扱われる。
【0081】
以上の記録開始処理とそれに続く記録処理によって、クリップ管理ファイル、映像ファイル、音声ファイルが記録媒体150へ記録される。
【0082】
ここで、本実施形態の記録方法によれば、データを記録している際の電源停止などによってデータ記録が中断しても、記録中断までのデータを読み出すことができ、データの紛失を回避することができる。その理由について、上記の[第1の段階]から[第9の段階]のそれぞれについて具体的に説明する。
【0083】
まず、[第1の段階]で電源停止などが発生した場合には、データはまだ記録されていないため、データの損失は生じない。この場合、図5に示す、アロケーション領域503のクラスタ番号を示すディレクトリ・エントリは存在しないため、領域503は、浮遊FATチェーンとして残ることとなる。
【0084】
[第2の段階]で電源停止などが発生した場合には、データはまだ記録されていないので、やはりデータの損失は生じない。なお、この場合に、アロケーション領域503は、クリップ管理ファイルとして扱われるため、記録媒体150に記録されていた不定のデータが、クリップ管理ファイルとして参照されるようになる。
【0085】
[第3の段階]で電源停止などが発生した場合には、クリップ管理ファイルのディレクトリ・エントリ500が記録され、FATテーブル「0x09」にはクリップ管理ファイルのデータ「X」がすでに記録されているため、記録されたデータは、ファイルとして参照可能である。なお、この場合には、終端マーク「EOF」を記録したクラスタまでのアロケーション領域503が全てクリップ管理ファイルとして扱われるため、記録媒体150に記録されていた不定のデータが、クリップ管理ファイルとして参照されるようになる。
【0086】
[第4の段階]で電源停止などが発生した場合には、クリップ管理ファイルは、不定なデータが含まれない正常なファイルとして参照可能である。また、映像データは、まだ記録されていないので、データの損失は生じない。この場合、図6に示す、アロケーション領域604のクラスタ番号を示すディレクトリ・エントリは存在しないため、領域603は、浮遊FATチェーンとして残る。
【0087】
[第5の段階]で電源停止などが発生した場合には、映像データはまだ記録されていないため、データの損失は生じない。なお、この場合には、アロケーション領域604は映像ファイルとして扱われ、不定なデータが映像データファイルとして参照されるようになる。
【0088】
[第6の段階]で電源停止などが発生した場合には、映像ファイルのディレクトリ・エントリ601が記録され、FATテーブル「0x0A」以降には映像ファイルのデータ「V」がすでに記録されているため、記録されたデータは、ファイルとして参照可能である。なお、図6の場合を例に取ると、データが記録されたクラスタ「0x09」から「0x0B」までよりも以降の領域604のクラスタ、すなわち「0x0C」から「0x0F」までのクラスタも映像ファイルとして扱われるため、この領域に記録されていた不定なデータが、映像ファイルとして参照されるようになる。
【0089】
[第7の段階]で電源停止などが発生した場合には、映像ファイルは、不定なデータが含まれない正常なファイルとして参照可能である。また、音声データは、まだ記録されていないため、データの損失は生じない。なお、図7に示す、アロケーション領域704のクラスタ番号を示すディレクトリ・エントリは存在しないため、領域704は、浮遊FATチェーンとして残る。
【0090】
[第8の段階]で電源停止などが発生した場合には、音声データはまだ記録されていないため、データの損失は生じない。この場合には、アロケーション領域704は、音声ファイルとして扱われ、不定なデータが音声ファイルとして参照されるようになる。
【0091】
[第9の段階]で電源停止などが発生した場合には、音声ファイルのディレクトリ・エントリ702が記録され、FATテーブル「0x0D」以降には音声ファイルのデータ「A」がすでに記録されているため、記録されたデータは、ファイルとして参照可能である。なお、図7の場合を例に取ると、データを記録したクラスタ番号「0x0C」より以降の領域のクラスタ、すなわちクラスタ番号「0x0D」からFATテーブルに「EOF」が記録されたクラスタ番号「0x0F」までのクラスタも、音声ファイルとして扱われるため、この領域に記録されていた不定なデータが、音声ファイルとして参照されるようになる。
【0092】
このように、本実施形態の記録方法によれば、[第1の段階]から[第9の段階]のいずれの段階においても、データを記録している際の電源停止などによってデータ記録が中断しても、記録中断までのデータを読み出すことができ、データの紛失を回避することができる。
【0093】
次に、図2で示した本実施形態の記録方法における、ステップS202で示した記録処理の例として、撮影者によってさらにビデオ撮影が行われ、図3で示した記録処理に引き続いて映像ファイルと音声ファイルの記録を継続して行う場合の記録処理の流れについて、図8のフローチャートを用いて説明する。
【0094】
図8は、記録媒体150に、図7に示す状態で管理ファイルデータ「X」、映像ファイルデータ「V」、音声ファイルデータ「A」が記録されている状態で、さらなる映像ファイルデータと音声ファイルデータとを記録する記録処理の流れを示すフローチャートである。
【0095】
まず、図8に示すように、最初のステップS800では、システム制御部110は、図示しない記録バッファに、符号化データが蓄積されているか否かを確認する。
【0096】
符号化データが蓄積されていたら、システム制御部110は、クリップ記録処理手段111により、符号化データを所定のフォーマット形式に変換し、ステップS801へ進み記録処理が開始される。
【0097】
ステップS801では、システム制御部110は、記録先となるアロケーションがすでに確保されているか否かを確認する。
【0098】
確保されていない場合は、ステップS802へ進む。一方、アロケーションが確保されている場合には、ステップS804へ進む。
【0099】
ステップS802では、システム制御部110は、空き領域サーチ処理手段112によって空きアロケーションがあるか否かを検出する。
【0100】
空きアロケーションが一つもない場合には、システム制御部110は、エラーコードを設定して処理を終了する。一方、空きアロケーションが検出できた場合には、ステップS803へ進む。
【0101】
ステップS803では、システム制御部110は、ステップS802で検出された空きアロケーションに対し、FATテーブルの事前確保を行う。
【0102】
FATテーブルの確保に成功した場合には、ステップS805へ進み、システム制御部110は、データ記録を行い、処理を終了する。
【0103】
一方、ステップS803でFATテーブルの事前確保ができなかった場合、または、ステップS805のデータ記録において、記録媒体150の異常などのエラーが発生した場合には、システム制御部110は、エラーコードを設定して処理を終了する。
【0104】
ステップS801で、記録先となるアロケーションが確保されていた場合には、ステッステップS804で、システム制御部110は、記録するデータのファイルが、前回記録したデータのファイルと同じであるか確認する。
【0105】
同じファイルである場合は、すでにFATチェーンは確保済みであるので、ステップS805へ進み、システム制御部110は、データ記録を行い、処理を終了する。データ記録において記録媒体の異常などのエラーが発生した場合には、システム制御部110は、エラーコードを設定し処理を終了する。
【0106】
一方、異なるファイルであった場合には、ステップS806へ進む。
【0107】
ステップS806では、システム制御部110は、FATチェーンの切り替え処理を行う。
【0108】
FATチェーンの切り替えに成功した場合には、ステップS805へ進み、システム制御部110は、データ記録を行い、処理を終了する。
【0109】
ステップS806でFATチェーンの切り替え処理に失敗した場合、または、ステップS805のデータ記録において、記録媒体の異常などのエラーが発生した場合には、システム制御部110は、エラーコードを設定し処理を終了する。
【0110】
以上、図8に示した流れに沿って、映像ファイルと音声ファイルのデータ記録処理が行われる。
【0111】
ここで、図8のフローチャートで示した、映像ファイルと音声ファイルのデータ記録処理において、データが記録されるアロケーションのFATテーブルとクラスタの状態の具体例について、図9および図10を用いて例示して説明する。なお、本実施形態の場合、図8にフローチャートを示したような、記録媒体150に既に映像ファイルデータと音声ファイルデータが記録されている状態で、さらなるビデオ撮影が行われた場合の新たな映像ファイルと音声ファイルを記録媒体に記録するに当たっては、ディレクトリ・エントリの更新は行われないため、その説明は省略する。
【0112】
図9は、映像ファイルデータを記録媒体150に書き込む場合において行われる、FATテーブルの事前確保の処理についての具体例を示すものであり、それぞれの段階のFATテーブル、および、クラスタの状態を示している。
【0113】
図9(a)に示すように、映像データの書込み前では、ステップS802で検出された空きアロケーション領域900aは、空き領域となっている。
【0114】
そして、映像データの書込み要求に対して、図9(b)に示すように、FATテーブルの事前確保の処理として、ステップS802で検出されたアロケーション領域900aの先頭から、FATテーブルのチェーンをシーケンシャルにつなぎ、アロケーション領域900bとする処理が行われる。また、アロケーション領域901bの最後のクラスタ、クラスタ番号「0x37」のFATテーブルには、ファイルの終端を示す「EOF」が記録される。この段階では、一つ前に記録した映像ファイルのアロケーションの最後のクラスタ(クラスタ番号「0x0E」)のFATテーブル901bには、ファイルの終端を示す「EOF」が記録されている。なお、以降この段階を[第10の段階]と称することとする。
【0115】
次に、[第11の段階]として、図9(c)にFATテーブル901cとして示すように、一つ前に記録した映像ファイルのFATチェーンの終端のFATテーブルが、アロケーション900bの先頭のクラスタ番号「0x30」を示すように置き換えられる。このことで、新たな記録用に確保されたアロケーション901bは、前に記録された映像ファイルのFATチェーンに接続されてアロケーション901cとなり、この新たなアロケーション901cは映像ファイルとして参照することができる。
【0116】
次に、[第12の段階]として、図9(d)に示すように、領域902として示すように、アロケーション900cの先頭クラスタ、クラスタ番号「0x30」から順に、クラスタ番号「0x32」のクラスタまで、映像データが記録される。図9(d)の段階では、クラスタ番号「0x33」以降のクラスタは、データが記録されていない領域903となっている。
【0117】
このように、既に映像ファイルデータと音声ファイルデータの記録が行われている状態で、引き続き映像ファイルデータを記録する場合には、新しく検出確保された空きアロケーションを、一つ前に映像ファイルデータを記録していたアロケーションの最後のクラスタにつなげることで、同じ種類である映像ファイルが記録された一つながりのアロケーションが認識できるようになり、データの読み出しが容易となる。
【0118】
次に、図10を用いて、音声ファイルの記録についての具体例として、FATチェーンの切り替え処理について説明する。
【0119】
図10(a)は、音声データを書き込む前の状態を示している。各クラスタの状態は、図9(d)で示した映像データが書き込まれた後の状態と同じとなっている。図10(a)におけるクラスタ番号「0x32」のクラスタが、映像データが記録されたアロケーションの最後のクラスタであり、このクラスタのFATテーブル1000aは、同じアロケーションの次のクラスタ「0x34」を示している。
【0120】
次に、音声データの書込み要求に対して、図10(b)にFATテーブル1000bとして示すように、前回記録した映像ファイルのFATチェーンの終端1000aが、ファイルの終端を示す「EOF」に置き換えられる。このとき、前回音声データを記録したクラスタ番号「0x0F」のクラスタのFATチェーンは、ファイルの終端を示す「EOF」が記録されている。また、映像ファイルが記録されなかったアロケーション領域1002bは、空き領域となっている。なお、この図10(b)の段階を[第13の段階]と称することとする。
【0121】
次に、[第14の段階]として、図10(c)に示すように、前回音声データを記録した最後のクラスタ「0x0E」のFATテーブルが、ファイルの終端を示す「EOF」から新たに音声データを記録するアロケーション領域1002cの先頭を示すように、「0x33」に置き換えられる。このようにFATチェーンを映像ファイルの記録用から音声ファイルの記録用に切り替えることで、以降アロケーション領域1002cは、音声ファイルとして参照することができるようになる。
【0122】
次に、[第15の段階]として、図10(d)に示すように、図10(c)で示した音声ファイル記録用の空きアロケーション1002cの先頭クラスタから順に、音声ファイルデータが記録される。図10(d)では、音声ファイルとして、領域1003として示す、クラスタ番号「0x33」で示される一つのクラスタに音声データが記録されて、残りの空きアロケーション領域1004は、空白のまま残っている状態を示している。
【0123】
このように、映像ファイルの記録後に引き続いて音声ファイルを記録する際に、映像ファイル記録用として用意されたFATチェーンを音声ファイル記録用のFATチェーンとして切り替えることで、一つ前に記録された音声データに引き続いて、同じFATチェーンに記録されたデータとして、音声ファイルを参照することができるようになる。
【0124】
以上、本実施形態の記録方法における、映像ファイルデータと音声ファイルデータの追加記録時の記録処理について説明してきた。このような本実施形態の記録方法によれば、映像データまたは音声データの記録時に電源停止などによってデータ記録が中断しても、記録中断までのデータを読み出すことができ、データの紛失を回避することができる。その理由について、上記の[第10の段階]から[第15の段階]それぞれについて、具体的に説明する。
【0125】
まず、[第10の段階]で電源停止などが発生した場合には、映像データはまだ記録していないので、データの損失が生じるはない。この場合、図9(b)に示す、アロケーション領域900bのクラスタ番号を示すディレクトリ・エントリは存在しないため、領域903bは、浮遊FATチェーンとして残ることとなる。
【0126】
次に、[第11の段階]で電源停止などが発生した場合であっても、映像データはまだ記録していないので、データの損失はない。この状態では、アロケーション900cの領域は映像ファイルとして扱われ、記録媒体150にもともと記録されていた不定なデータが、ファイルとして参照されるようになる。
【0127】
[第12の段階]で電源停止などが発生した場合には、記録した映像データはファイルとして参照可能である。なお、データを記録したクラスタ以外の、アロケーション領域903のクラスタの内容も映像ファイルとして扱われ、不定なデータがファイルとして参照されるようになる。
【0128】
音声ファイルデータを記録する上記の[第13の段階]で電源停止などが発生した場合には、映像ファイルは不定なデータが含まれない正常なファイルとして参照可能である。また、音声データはまだ記録していないので、データの損失は生じない。この場合、領域1002bのクラスタ番号を示すディレクトリ・エントリは存在しないため、この領域1002bの部分は、浮遊FATチェーンとして残る。
【0129】
[第14の段階]で電源停止などが発生した場合には、音声データはまだ記録していないので、データの損失は生じない。なお、アロケーション領域1002cは、音声ファイルとして扱われて、不定なデータがファイルとして参照されるようになる。
【0130】
[第15の段階]で電源停止などが発生した場合には、記録した音声データはファイルとして参照可能である。なお、データを記録したクラスタ領域1003以外の領域1004も映像ファイルとして扱われて、記録されていた不定なデータがファイルとして参照されるようになる。
【0131】
なお、本実施形態の記録方法において、記録処理ではディレクトリ・エントリの更新を行わない。したがって、管理データファイル、映像ファイル、音声ファイルそれぞれのディレクトリ・エントリに記録されたファイルサイズは、記録開始処理で記録されたときの値のままである。この場合に、電源停止などが発生しても、FATチェーンをたどることで、ファイルサイズを想定することができる。その内容については、後述する。
【0132】
次に、図2で示した本実施形態の記録方法において、ステップS203として示した記録停止処理について、図を用いて詳細に説明する。
【0133】
図11は、本実施形態の記録方法の記録停止処理の処理内容を示すフローチャートである。
【0134】
図11に示すように、記録停止処理では、最初のステップS1100で、システム制御部110は、クリップ管理ファイルの更新を行う。具体的には、システム制御部110は、クリップのフレーム数を示すデュレーションを設定し、記録停止日時を設定し、ファイルクローズを行う。このとき、クリップ管理ファイルは上書き記録を行うため、システム制御部110は、FATテーブルの更新は行わない。ディレクトリ・エントリの更新日時は変更するため、システム制御部110は、ディレクトリ・エントリの記録を行う。
【0135】
このクリップ管理ファイル更新時に、記録媒体の異常などのエラーが発生した場合には、システム制御部110は、エラーコードを設定し処理を終了する。
【0136】
クリップ管理ファイルの更新が正しく行われた場合には、ステップS1101へ進む。
【0137】
ステップS1101では、システム制御部110は、これからファイルクローズを行うファイルが予約チェーンに繋がっているか否か、すなわち、FATテーブルの事前確保をしているファイルか否かを確認する。これからファイルクローズを行うファイルが予約チェーンに繋がっている場合は、不定なデータがファイルとして参照されてしまうために、このような不具合が生じることを防ぐためである。
【0138】
これからファイルクローズを行うファイルが予約チェーンに繋がっている場合は、ステップS1102へ進む。そうでない場合はステップS1104へ進む。
【0139】
ステップS1102では、システム制御部110は、これからファイルクローズを行うファイルの他に、オープンされているファイルが存在するか否かを確認する。
【0140】
ファイルクローズを行うファイルの他に、ファイルがオープンされている場合にはステップS1103へ進む。他にファイルがオープンされていない場合は、ステップS1105へ進む。
【0141】
ステップS1103では、システム制御部110は、ファイルクローズを行おうとするファイルのFATチェーンに繋がっている予約チェーンを、オープンされている他のファイルに付け替えるFATファイルの挿げ替え処理を行う。
【0142】
このとき、エラーが発生した場合には、システム制御部110は、エラーコードを設定し処理を終了する。FATチェーンの挿げ替え処理が正しく行えた場合は、ステップS1104へ進む。
【0143】
ステップS1104では、システム制御部110は、ディレクトリ・エントリの更新を行う。ここでは、システム制御部110は、実際に記録したデータのサイズをファイルサイズとして記録し、同時に、変更日時を更新する。
【0144】
このとき、エラーが発生した場合には、システム制御部110は、エラーコードを設定し処理を終了する。ディレクトリ・エントリの更新が行えた場合は、別のファイルのクローズ処理を行うためステップS1101へ進む。
【0145】
ステップS1102で、これからファイルクローズを行うファイルの他に、オープンされているファイルが存在しない場合には、ステップS1105で、システム制御部110は、予約チェーンの削除処理を行う。
【0146】
この予約チェーンの削除処理で、エラーが発生した場合には、システム制御部110は、エラーコードを設定し処理を終了する。予約チェーンの削除が正しく行われた場合には、ステップS1106へ進む。
【0147】
ステップS1106では、システム制御部110は、ディレクトリ・エントリの更新を行う。ここでは、システム制御部110は、実際に記録したデータのサイズをファイルサイズとして記録し、また変更日時を更新する。
【0148】
このとき、エラーが発生した場合には、システム制御部110は、エラーコードを設定し処理を終了する。ディレクトリ・エントリの更新に成功した場合は、システム制御部110は、処理を正常終了する。
【0149】
このようにして、図2のフローチャートで示した、本実施形態の記録方法における記録終了処理が完了する。
【0150】
ここで、上記図11で示した記録終了処理における、ステップS1103のFATチェーンの挿げ替え処理と、ステップS1105の予約チェーンの削除処理について、具体例を示して説明する。
【0151】
図12は、データが記録されるアロケーションのFATテーブルとクラスタの状態の具体例を示す図であり、図8のフローチャートでの記録処理の詳細を示した、図9および図10に相当する図である。
【0152】
図12(a)は、図10(d)で示した音声データの書き込み終了時の状態を示している。この段階では、音声データが記録されたクラスタ番号「0x33」のFATテーブル1200aは、次のクラスタ番号「0x34」につなげられているが、FATチェーンでつなげられたクラスタ番号「0x34」以降のクラスタには、データは記録されていない。
【0153】
次に、図12(b)として示すように、FATチェーンの切り離しが行われる。具体的には、音声データを実際に記録した最終クラスタのFATテーブル1200aが、終端を示す「EOF」を記録したFATテーブル1200bとされる。この処理が行われることで、音声ファイルを記録したFATチェーンが終了する。なお、この段階を[第16の段階]と称する。
【0154】
次に、[第17の段階]として、図12(c)に示すように、図12(b)で切り離されたFATチェーンを、他のオープンされているファイル、ここでは映像ファイルと挿げ替える処理が行われる。すなわち、一つ前に記録した、映像ファイルの終端クラスタのFATテーブル1201bが、終端を意味する「EOF」から、音声ファイルから切り離したFATチェーン1202bの先頭のクラスタ番号「0x34」を記録したFATテーブル1201cとされる。このことで、図12(c)に示すように、領域1202cは映像ファイルとして扱われ、映像データを継続して記録することができるようになる。
【0155】
なお、このステップS1103のFATチェーンの挿げ替え処理時において、他にオープンされているファイルが複数存在することが想定される場合には、FATチェーンの挿げ替え処理について、例えばファイルがオープンされた順番にしたがって優先的に処理を行うなど、挿げ替えを行うファイルの順序をあらかじめ定めておく。
【0156】
次に、ステップS1105の予約チェーンの削除処理について、図12(c)以下を用用いて説明する。
【0157】
図12(c)に示すように、音声ファイルの記録終了の要求に対して、FATチェーンが切り替えられて、映像ファイルが記録できる状態において、記録終了処理として、映像ファイルのクローズ要求がなされる。
【0158】
そして、続く[第18の段階]として、図12(d)に示すように、[第17の段階]で予約チェーンにつなげられ、「0x34」と記録された映像データを実際に記録した最終クラスタのFATテーブル1201cが、終端を意味する「EOF」が記録されたFATテーブル1201dに変更される。この処理によって、未使用のクラスタ領域1202dが、映像ファイル記録領域から切り離される。
【0159】
次に、[第19の段階]として、映像ファイルから切り離された未使用のクラスタ領域1202dが、FATチェーンを順にたどって全てのクラスタを未使用に設定され、未使用のクラスタ領域1202eとされる。このようにされることで、クラスタ領域1202eは、未使用の領域として認識され、浮遊FATチェーンとして残ることを防止することができる。
【0160】
このような記録終了処理を行うことで、記録終了時に電源停止などによって、記録終了処理が中断しても、記録されたデータを読み出すことができ、データの紛失を回避することができる。その理由について、上記の[第16の段階]から[第19の段階]それぞれについて、具体的に説明する。
【0161】
まず、[第16の段階]で電源停止などが発生した場合には、音声ファイルは、不定なデータが含まれない正常なファイルとして参照可能である。また、映像ファイルも、正しく終端を意味する「EOF」が記録されたFATテーブルを有しているので、不定なデータが含まれない正常なファイルとして参照することができる。なお、図12(b)において、領域1202bとして示している、クラスタ番号を示すディレクトリ・エントリは存在しないため、領域1202bは浮遊FATチェーンとして残ることになる。
【0162】
次に、[第17の段階]で電源停止などが発生した場合には、図12(c)において領域1202cとして示す領域は、映像ファイルとして扱われ、不定なデータがファイルとして参照される。しかし、本来の映像データが記録されている、クラスタ番号「0x34」までのクラスタのデータは、正しく映像ファイルとして参照することができるので、データが読めなくなるような事態は生じない。
【0163】
[第18の段階]で電源停止などが発生した場合には、映像ファイルは不定なデータが含まれない正常なファイルとして参照可能である。なお、映像ファイルのFATチェーンから切り離された、図12(d)で領域1202dと示される領域は、この領域のクラスタ番号を示すディレクトリ・エントリが存在しないため、浮遊FATチェーンとして残ることとなる。
【0164】
[第19の段階]で電源停止などが発生した場合には、映像ファイル、音声ファイルともに、不定なデータが含まれない正常なファイルとして参照することができる。
【0165】
以上のように、本発明の実施形態の記録方法によれば、ファイル記録開始処理時、データ記録処理時、データ記録処理終了時のいずれの場合に、電源停止や記録媒体が引き抜かれるなどの不測の事態が生じてデータ記録が中断しても、記録中断時までに記録されたデータが参照可能であり、データを消失してしまうトラブルを回避することができる。
【0166】
なお、上記本実施形態の記録方法において、それぞれの処理を[第1の段階]から[第19の段階]に分けて、それぞれの段階における記録されたデータを参照可能であることを説明したが、いくつかの段階において、記録したデータサイズとディレクトリ・エントリのファイルサイズが一致しない場合、不定なデータがファイルに含まれる場合、浮遊FATチェーンが残る場合といった状況となりうるケースがあることを説明した。しかし、これらの状況については、本発明の処理方法の実施においての課題となるものではなく、下記に示す処理によって容易に解決することができる。
【0167】
すなわち、実際に記録したデータサイズとディレクトリ・エントリのファイルサイズが異なるという点については、データが記録されたFATチェーンをたどることで、実際に記録されたデータサイズを容易に算出することができる。具体的には、FATテーブルのエントリ数をカウントし、エントリ数にクラスタサイズを乗じたものをファイルサイズとすることができる。
【0168】
この場合において、記録したデータサイズが、クラスタサイズの倍数でない場合には、ファイルの終端クラスタには不定のデータが含まれる。しかし、記録するファイル形式に応じた処理を行うことで、これらの不定なデータを取り除くことができる。この不定なデータの除去処理は、そのまま不定なデータがファイルに含まれる場合や、浮遊FATチェーンが残る場合にこれを除去する際に適用できる。
【0169】
例えば、クリップ管理ファイルはXML形式で記録されるため、終端タグを検出し、以降のデータを消去することで、不定なデータを除去することができる。なお、終端タグ以降のデータを消去するには、ディレクトリ・エントリのファイルサイズを終端タグまでのデータサイズに更新し、そのデータサイズ分のクラスタに対するFATチェーンを残しておき、以降のFATチェーンを消去することで行われる。
【0170】
また、映像データや音声データのファイル形式として使用されるDV−DIF(Digital Video Digital Interface Format)では、DIFブロックと呼ばれる80バイト長の固まりから構成されるため、80バイト毎にIDを検出することで、余分な不定なデータを取り除くことができる。
【0171】
このように、ファイル形式をもとに、不定なデータを取り除くことができない場合においても、不定なデータ領域は映像や音声として再生するとノイズとなる可能性が高いため、パーソナルコンピュータのノンリニア編集等により除去することで対応できる。また、不定なデータ領域が、偶然にも以前撮影した映像データや音声データであった場合、すなわち、本来記録されているデータと同じファイル形式のデータであった場合でも、ノンリニア編集時に、映像や音声の内容から判断して容易に検出でき、これを除去することができる。
【0172】
以上説明したように、本実施形態の記録装置、および記録方法によれば、複数のファイルを時分割に記録媒体に記録するにあたり、確保した予約領域に順次異なる種類のファイルを記録でき、また、記録が終了したファイルに直ちに終端を示す管理情報を付与することができる。このため、データ記録が突然中断した場合であっても、直前に記録したデータの内容を参照することが可能となる。
【0173】
また、上記本実施形態の記録装置、および記録方法では、データ領域に、これから記録するデータ列に対応するファイルが既に記録されている場合には、記録制御部が、既に記録されているファイルの終端に対応する管理情報を予約領域に続くように書き換え、予約領域にデータ列を記録することで、複数種類のファイルを繰り返し記録するに当たって、既に記録されているファイルとの関連付けが可能となり、かつ、突然の記録中断が生じても直前に記録されたファイルデータを参照することができる。
【0174】
さらに、記録媒体への記録終了時に、記録制御部が、最後に記録した前記データ列の終端に対応する管理情報をファイルが終端で終了するように書き換え、かつ、データ記録に使用されなかった予約領域の前記管理情報を消去することで、データ記録後に不定のデータが残存することを回避し、かつ、記録媒体の記録領域を最大限有効に活用することができる。
【0175】
また、上記したように本実施形態の記録装置における記録制御装置としてのシステム制御部110は、マイクロコンピュータ等のコンピュータまたは、コンピュータを内蔵する専用装置などにより構成することができ、記録制御部110を構成する、クリップ記録処理手段111、空き領域サーチ処理手段112、ファイルシステム113の各機能部の機能は、コンピュータが備えるCPUが所定のプログラムを実行することにより実現される。このため、上記した本実施形態の記録装置、および記録方法が奏する作用効果は、コンピュータを各機能部として機能させるためのプログラムおよびそれを記録した記録媒体の実施形態の作用効果として把握することができる。
【0176】
以上本実施形態の記録装置、記録方法およびプログラムについて、具体例を用いて説明してきた。しかし、本実施形態の記録装置、記録方法およびプログラムは、上記の具体例に限定されるものではない。
【0177】
例えば、上記実施形態では、記録装置として、映像データと音声データとを記録するデジタルビデオカメラの記録装置として説明したが、他にも運転速度や非常ブレーキの使用履歴などの複数の種類のデータを記録する、運転情報記録装置など各種の記録装置として実現できるものである。
【0178】
記録されるデータ列の数としても、上記実施形態で説明した映像データと音声データのように2つのものに限られることはなく、3つ以上のデータ列を記録する記録装置、記録方法、プログラムとして実現することもできる。その場合には、本実施形態における第1のファイルである第1のデータ列、第2のファイルである第2のデータ列に加えて、第3のデータ列ないしはさらに多くのデータ列を記録するに当たって、第2のデータ列の処理が終了した後に、同様に第3のデータ列の処理を行い、以降同じ手順で複数のデータ列を順次記録していくことができる。
【0179】
なお、複数のデータ列を記録していくに当たり、記録制御部は必ずしもすべのデータ列を同じ順序で記録する必要はない。例えばあるデータ列にデータが存在していないことが明らかな場合には、記録制御部は、そのデータ列の記録処理を省略して別のデータ列のデータを記録していくことができる。
【0180】
また、上記実施形態では、ファイルシステムとしてFAT形式を用いたものを説明したが、他にもext2(second extended filesystem)などのファイルシステムを用いることが可能である。
【0181】
さらに、上記本発明の記録方法の実施形態の説明では、空きアロケーションの検出として、連続空き領域を検出し、これに新たなデータを記録する場合について例示した。しかし、これは、本発明の記録方法を制限するものではなく、連続していない特定数の空きクラスタを検出するようにして、同様の処理を行うことが可能である。
【0182】
また、上記実施形態の説明では、記録処理時にはディレクトリ・エントリを更新しない場合について例示したが、データを記録する記録処理を行うと同時に、そのたび毎にディレクトリ・エントリを更新記録するようにしてもよい。
【産業上の利用可能性】
【0183】
本発明の記録装置、記録方法およびプログラムは、複数ファイルを時分割で記録する記録装置、そのような記録装置の記録方法およびプログラムとして、産業上有用に利用することができる。
【符号の説明】
【0184】
100 記録装置
110 システム制御部(記録制御部)
111 クリップ記録処理手段
112 空き領域サーチ処理手段
113 ファイルシステム
120 エンコーダ
130 映像・音声入力手段
140 入力手段
150 記録媒体
160 バス
170 記録媒体制御部
【技術分野】
【0001】
本発明は、記録媒体にデータファイルを記録する記録装置、データファイルの記録方法とプログラムに関する。
【背景技術】
【0002】
近年、デジタルビデオカメラ等で得られた映像データや音声データをフラッシュメモリ等の記録媒体に記録し、パーソナルコンピュータでデータを編集するといったことが行われている。このような場合、データを、パーソナルコンピュータで認識することができるデータフォーマットに準拠した形式で記録する必要があり、FAT(File Allocation Table)形式やUDF(Universal Disk Format)形式などのファイルシステムを利用することが一般的である。これらのファイルシステムでは、映像や音声などの実データのほかに、実データの配置情報などの管理情報も記録媒体に記録される。
【0003】
例えば、FAT形式では、クラスタと呼ばれるブロック単位でデータを管理し、ファイルおよびディレクトリは、ディレクトリ・エントリと呼ばれる情報から、ファイル名、作成日時、ファイル属性、ファイルサイズ、開始クラスタ等が取得できる。また、FATテーブルと呼ばれるデータの配置を管理するテーブルには、ファイルが使用するクラスタの位置や順番等の情報が記録されている。
【0004】
ここで、FAT形式でデータ列をファイルとして記録する場合には、実データをクラスタに記録する毎に、FATテーブルの配置情報を更新する必要がある。しかし、頻繁に情報更新を行うと、フラッシュメモリのように書き換え回数に制限のある記録媒体では、記録媒体の使用寿命を縮めることになる。そこで、FATテーブルなどの管理情報は、メモリにある程度蓄積し、一定間隔で記録媒体に書き込むことが一般的である。
【0005】
しかし、管理情報を記録媒体に記録する前に記録装置の電源が遮断されたり、記録媒体が抜かれたりしてデータの記録が突然中断された場合には、管理情報がないためにデータの配置がわからなくなり、前回管理情報を記録したときまでのデータしかファイルとして参照することができない。
【0006】
この課題を防ぐデータ記録方法として、記録媒体を初期化する時に、記録媒体のデジタルデータ記録領域を、連続したクラスタチェーンを有する単一の未記録領域ファイルとして設定し、データ記録時には記録開始時から記録終了時まで管理情報を記録することなく連続したクラスタチェーンに記録して、記録したデータ量を記録領域に記録することで、データ記録中に電力供給が中断した場合等でも、直前に記録したクラスタまでのデータを参照できる方法が提案されている (特許文献1参照)。
【先行技術文献】
【特許文献】
【0007】
【特許文献1】特開2006−285327号公報
【発明の概要】
【発明が解決しようとする課題】
【0008】
上記従来のデータ記録方法によれば、電力供給の中断などによって突然データ記録が行われなくなった場合でも、直前に記録したデータにアクセスすることができるため、データを読み出すことが可能になる。しかし、上記従来の方法は、記録媒体のデジタルデータ記録領域を単一の未記録領域ファイルと設定することから、記録するファイルが一種類の場合には有効であるが、映像データと音声データとをそれぞれ異なるファイルとして記録する場合など、複数ファイルを時分割で記録する場合には適用できない。すなわち、複数ファイルを時分割で記録する場合には、データ記録領域のファイルの配置がわからないため、ファイルの配置情報を事前に記録することができない。
【0009】
本発明はこのような従来技術の課題を解決するものであり、データ記録が中断した場合であっても、中断前までに記録されたデータを再生可能とする、複数種類のデータファイルの記録に対応した記録装置、記録方法およびプログラムを提供することを目的とする。
【課題を解決するための手段】
【0010】
上記目的を達成するために、本発明の記録装置は、データ列をファイルとして記録可能なデータ領域と、前記ファイルの管理情報を記録可能な特定領域とを含む記録媒体へのデータの記録および再生を制御する記録媒体制御部と、前記記録媒体制御部を介して、第1のデータ列を第1のファイルとして、また、前記第1のデータ列と異なる第2のデータ列を第2のファイルとして、時分割に記録する記録制御部を備え、前記記録制御部が、前記データ領域上に予約領域を確保して、前記第1のデータ列を前記予約領域に順次記録し、記録するデータ列を前記第1のデータ列から前記第2のデータ列に切り替えるときに、直前に前記予約領域に記録した前記第1のファイルの終端に対応する前記管理情報を前記第1のファイルが前記終端で終了するように書き換え、かつ、前記予約領域の前記第1のファイルの終端に続く位置から前記第2のデータ列を記録することを特徴とする。
【0011】
また、本発明の記録方法は、データ列をファイルとして記録可能なデータ領域と、前記ファイルの管理情報を記録可能な特定領域とを含む記録媒体に、第1のデータ列を第1のファイルとして、また、前記第1のデータ列と異なる第2のデータ列を第2のファイルとして、時分割に記録する記録方法であって、前記データ領域上に予約領域を確保して、前記第1のデータ列を前記予約領域に順次記録し、記録するデータ列を前記第1のデータ列から前記第2のデータ列に切り替えるときに、直前に前記予約領域に記録した前記第1のファイルの終端に対応する前記管理情報を前記第1のファイルが前記終端で終了するように書き換え、かつ、前記予約領域の前記第1のファイルの終端に続く位置から前記第2のデータ列を記録することを特徴とする。
【0012】
さらに、本発明のプログラムは、データ列をファイルとして記録可能なデータ領域と、前記ファイルの管理情報を記録可能な特定領域とを含む記録媒体に、第1のデータ列を第1のファイルとして、また、第1のデータ列と異なる第2のデータ列を第2のファイルとして、時分割に記録する記録制御部を制御する処理をコンピュータに実行させるプログラムであって、前記データ領域上に予約領域を確保して、前記第1のデータ列を前記予約領域に順次記録し、記録するデータ列を前記第1のデータ列から前記第2のデータ列に切り替えるときに、直前に前記予約領域に記録した前記第1のファイルの終端に対応する前記管理情報を前記第1のファイルが前記終端で終了するように書き換え、かつ、前記予約領域の前記第1のファイルの終端に続く位置から前記第2のデータ列を記録する処理を前記記録制御部に実行させることを特徴とする。
【発明の効果】
【0013】
本発明の記録装置、記録方法、プログラムは、異なるデータ列である第1のデータ列と第2のデータ列とを、それぞれ第1のファイルと第2のファイルとして時分割に記録するにあたって、データの記録中に突然データ記録が中断した場合でも、中断前に記録されたデータを参照することができ、記録データの損失を最小限に押さえることができる。
【図面の簡単な説明】
【0014】
【図1】本実施の形態にかかる記録装置の構成を表す図である。
【図2】本実施の形態にかかる記録方法の全体の処理内容を示すフローチャートである。
【図3】本実施の形態にかかる記録方法における、記録開始処理を含む一連の処理内容を示すフローチャートである。
【図4】本実施の形態にかかる記録方法において、ファイルオープン時のファイル管理情報の状態を説明するための図である。
【図5】本実施の形態にかかる記録方法において、クリップ管理ファイル記録開始時のファイル管理情報の状態を説明するための図である。
【図6】本実施の形態にかかる記録方法において、映像ファイル記録開始時のファイル管理情報の状態を説明するための図である。
【図7】本実施の形態にかかる記録方法において、音声ファイル記録開始時のファイル管理情報の状態を説明するための図である。
【図8】本実施の形態にかかる記録方法において、記録処理の内容を示すフローチャートである。
【図9】本実施の形態にかかる記録方法において、FATテーブルの事前確保の処理について説明するための図である。
【図10】本実施の形態にかかる記録方法において、FATチェーンの切り替え処理について説明するための図である。
【図11】本実施の形態にかかる記録方法において、記録停止処理の内容を示すフローチャートである。
【図12】本実施の形態にかかる記録方法において、クリップ記録停止処理について説明するための図である。
【発明を実施するための形態】
【0015】
以下、本発明の記録装置、記録方法およびプログラムの実施形態について、図面を参照しながら説明する。
【0016】
最初に、記録装置について説明する。
【0017】
図1は、本実施形態にかかる記録装置として、デジタルビデオカメラに用いられる記録装置100の構成を示すブロック図である。
【0018】
図1に示すように、本実施形態の記録装置100は、記録制御部であるシステム制御部110と、このシステム制御部110とバス160を介して接続された、映像信号や音声信号の符号化を行うエンコーダ120、映像信号や音声信号を入力する映像・音声入力手段130、データクリップの記録開始と終了とを使用者が入力する入力手段140、記録媒体150と機械的および電気的に接続可能で記録媒体150へのデータの記録および記録媒体150からのデータの再生を制御する記録媒体制御部170を含んでいる。
【0019】
システム制御部110は、例えば、図示しないCPUとメモリとを含むマイクロコンピュータによって実現される。このシステム制御部110は、クリップ記録処理手段111、空き領域サーチ処理手段112、ファイルシステム113を備えている。これらのシステム制御部110に含まれる各手段は、例えば、CPUで各種のプログラムを実行することによって実現される。
【0020】
システム制御部110のクリップ記録処理手段111は、映像データや音声データなどのデータ列のフレームレートやフレーム数、データのサイズをフレーム数で表したデュレーション等の各種情報を管理したり関連付けを行ったりするためのクリップ管理情報を作成し、XML(eXtensible Markup Language)形式にファイル化する。作成されたクリップ管理情報は、ファイルシステム113によって記録媒体150に記録される。
【0021】
空き領域サーチ処理手段112は、データを記録する記録媒体150に、必要な大きさの空き領域があるか否かを検出し、その空き領域の位置情報などを把握する。
【0022】
ファイルシステム113は、データ列が記録されたファイルをブロック単位で管理し、このファイルのブロックの配置情報を有しているものである。本実施形態では、FATファイルシステムを用いた例について説明する。
【0023】
映像・音声入力手段130から入力される映像信号は、エンコーダ120により順次圧縮されて符号化データとされる。符号化データは、図示しない記録バッファメモリに蓄積される。記録バッファメモリに蓄積された符号化データは、データ列としてシステム制御部110のクリップ記録処理手段111により読み込まれ、MXF(Material Exchange Format)形式にファイル化され、記録媒体150に記録される。
【0024】
また、映像・音声入力手段130から入力される音声信号は、エンコーダ120によって圧縮されてオーディオデータとされる。オーディオデータのデータ列は、クリップ記録処理手段111によりWave形式にファイル化され、記録媒体150に記録される。
【0025】
なお、映像データと音声データとを別ファイルとするのは、放送局などの業務用途の編集作業では、映像と音声とを独立して編集作業を行うことが多く、業務用途のノンリニア編集機では映像と音声とを別ファイルとするのが一般的なためである。記録開始から終了までの、映像ファイルと音声ファイルとの組み合わせをクリップと呼ぶ。なお、クリップには、クリップ記録処理手段111で作成されたクリップ管理ファイルも含まれる。また、以下本実施形態の説明では、映像データを第1のデータ列として、音声データを第2のデータ列として説明する。したがって、映像データファイルが第1のファイルであり、音声データファイルが第2のファイルとなる。
【0026】
記録媒体150は、映像や音声を記録するための記録媒体であり、本実施形態のビデオカメラの記録装置として用いられる上で、何らの限定が加えられるものではない。記録媒体150は、映像データ列や音声データ列をファイルとして記録可能なデータ領域と、ファイルの管理情報としてのクリップ管理ファイルを記録可能な特定領域とを含んでいる。
【0027】
本実施形態のビデオカメラの記録装置の記録媒体150としては、小型で耐久性のあるSDメモリカードをはじめとして、他の各種メモリ媒体、ハードディスク(HDD)やDVDなどが使用される。
【0028】
なお、本実施形態では、記録媒体150が記録装置100に着脱可能な構成について説明するが、記録媒体150が記録装置100に内蔵される形態であってもよい。
【0029】
また、記録媒体150は、本実施形態では一例としてFAT形式でフォーマットされており、記録媒体150へのファイルの書き出しは、ファイルシステム113によりFATテーブルの更新と、データの書き出し動作により行われる。
【0030】
クリップの記録開始および記録停止は、使用者である撮影者が、入力手段140を使用することで行う。通常のビデオカメラにおいて入力手段140は、録画開始と停止を操作するための操作ボタン(スイッチ)である。
【0031】
次に、図1に示した本実施形態の記録装置100における記録方法について、いずれもデジタルデータである映像データと音声データの記録を行う場合を例に、図を用いて説明する。
【0032】
なお、上記したように本実施形態の記録装置における記録制御装置としてのシステム制御部110は、マイクロコンピュータ等のコンピュータまたは、コンピュータを内蔵する専用装置などにより構成することができる。また、クリップ記録処理手段111、空き領域サーチ処理手段112、ファイルシステム113の各機能部の機能は、コンピュータが備えるCPUが所定のプログラムを実行することにより実現される。従って、コンピュータを前記各機能部として機能させるためのプログラムおよびそれを記録した記録媒体も本実施形態に含まれる。
【0033】
最初に、図2のフローチャートを用いて、システム制御部110におけるクリップの記録開始から記録停止までの処理の概要について説明する。
【0034】
図2に示すように、システム制御部110は、最初のステップS200で記録開始処理を行う。記録開始処理は、クリップ管理ファイル、映像ファイルおよび音声ファイルを記録するための記録媒体150の空き領域を検出し、クリップ管理ファイルの作成を行う処理である。
【0035】
記録媒体150に、データを記録するための空き領域がない場合や、記録媒体150の空き情報が把握できないなどのエラーが発生した場合は、ステップS204に進み、システム制御部110は、図示しないLCDなどの表示素子にエラーメッセージを表示して処理を終了する。
【0036】
記録開始処理が正常に行われた場合は、ステップS201へ進む。
【0037】
ステップS201では、システム制御部110は、記録処理を行う。記録処理は、図示しない記録バッファに蓄積された映像データや音声データを、クリップ記録処理手段111によって所定のフォーマット形式に変換し、記録媒体150に記録する処理である。記録媒体150の異常などのエラーが発生した場合には、システム制御部110は、エラーの内容を示すエラーコードを図示しないメモリに保持しておき、ステップS203へ進み記録停止処理を行う。
【0038】
一方、記録処理が正常に行われた場合は、ステップS202へ進む。
【0039】
ステップS202において、システム制御部110は、撮影者が入力手段140により記録停止を指示していないか否かを確認し、記録停止の指示がない場合は、ステップS201へ戻ってデータの記録処理を繰り返す。
【0040】
一方、ステップS202において、撮影者が入力手段から記録停止を指示したことが確認できた場合は、システム制御部110は、ステップS203に進み記録停止処理を行う。
【0041】
ステップS203では、システム制御部110は、記録停止処理を行う。ここでは、クリップ管理ファイル、映像ファイルおよび音声ファイルのクローズ処理が行われる。ステップS203でのクローズ処理が正しく行われた場合には、システム制御部110は、処理を終了する。
【0042】
一方、ステップS203のクローズ処理で、エラーが発生した場合、または図示しないメモリに、ステップS201での記録処理におけるエラーの発生を示すエラーコードが保持されている場合には、システム制御部110は、ステップS204に進みエラーメッセージを表示して処理を終了する。
【0043】
このようにして、エンコーダ120で符号化された映像データおよび音声データと、クリップ管理ファイルデータが記録手段150に記録される。
【0044】
次に、図2で概要を説明した本実施形態の記録方法の各ステップの詳細について、図面を用いて説明する。
【0045】
図3は、撮影者がビデオ撮影を開始し、映像データと音声データの記録が必要となった場合の、本実施形態の記録方法での処理の流れを示すフローチャートである。この、図3に示す処理の流れは、図2で示した本実施形態の記録処理の概要を示すフローチャートにおける、ステップS200の記録開始処理と、それに続いて行われるステップS201の記録処理の内容を示すものである。
【0046】
図3に示すように、撮影者がビデオ撮影を開始し、記録媒体150に記録すべきデータ列が発生する段階で、本実施形態の記録方法では、最初にシステム制御部110は、ステップS300として空きアロケーションの検出を行う。
【0047】
ここで空きアロケーションとは、クリップデータを記録するために確保する連続した未使用クラスタのことである。一般に、映像データのようなデータサイズが大きいデータを記録する場合には、記録媒体の特性を考慮して特定のサイズ(アロケーションサイズ)の連続した領域毎に記録することが行われる。このように大きな容量のデータを連続した領域に記録することで、例えば記録媒体150がハードディスクの場合には、ヘッドのシーク回数を減らすことができる。
【0048】
この空きアロケーションの検出は、空き領域サーチ処理手段112により行なわれる。具体的には、システム制御部110は、FATテーブルを先頭から順に読み込み、アロケーションサイズ分の連続している空きクラスタを検出する。空きアロケーションが一つもない場合、すなわち記録媒体150に録画データを記録できない場合には、システム制御部110は、エラーコードを設定し処理を終了する。
【0049】
空きアロケーションが検出できた場合には、ステップS301へ進む。
【0050】
ステップS301では、システム制御部110は、クリップ管理ファイル、映像ファイルおよび音声ファイルの各ファイルを作成する、ファイルオープン処理を行う。ファイルオープン処理では、システム制御部110は、各ファイルのディレクトリ・エントリを作成する。
【0051】
ステップS301において、メモリ不足などのエラーが発生してファイルオープン処理ができなかった場合には、システム制御部110は、エラーコードを設定して処理を終了する。
【0052】
一方、ファイルオープン処理に成功した場合には、ステップS302へ進む。
【0053】
ステップS302では、システム制御部110は、記録するデータが蓄積されているか否かを確認する。すなわち、システム制御部110は、図示しない記録バッファを監視して符号化データが蓄積されているか、もしくは、図示しないメモリを監視してエンコーダ120により圧縮されたオーディオデータが蓄積されているかを確認し、一定量蓄積されるまで待機する。データが蓄積されたら、システム制御部110は、クリップ記録処理手段111によって、符号化データやオーディオデータをそれぞれ所定の映像データ、音声データのフォーマット形式に変換し、ステップS303へ進みそれぞれのデータ列の記録処理を行う。
【0054】
ステップS303では、システム制御部110は、記録処理の最初のステップとして、記録するデータが、アロケーションに対しての初めての書込みであるか否かを確認する。
【0055】
初めての書込みである場合は、ステップS304へ進む。そうでない場合は、ステップS305へ進む。なお、本実施形態における記録方法でのクリップ記録では、システム制御部110は、まずクリップ管理データを記録し、その後、第1のデータ列である映像データと第2のデータ列である音声データを順次記録する。したがって、クリップ管理データを記録する場合は、システム制御部110は、アロケーション内の最初の書き込みであるためステップS304へ進み、映像データおよび音声データを記録する場合は、既にアロケーションにクリップ管理ファイルのデータが記録されているため、ステップS305へ進むこととなる。
【0056】
アロケーション内の最初の書き込みとして、クリップ管理データを記録する場合には、システム制御部110は、ステップS304でアロケーションに対して予約領域の確保を行い、管理情報を記録するFATテーブルの事前確保を行う。本実施形態の記録方法では、システム制御部110は、データの記録に当たってFATテーブルを事前に確保することで、データ記録時に記録装置の電源が切断されたり、記録媒体150が取り外されたりした場合のデータ損失を防ぐことができる。なお、その理由については後述する。
【0057】
このステップS304のFATテーブル確保時において、記録媒体150の異常などのエラーが発生した場合には、システム制御部110は、エラーコードを設定して処理を終了する。
【0058】
一方、FATテーブル確保が成功した場合には、システム制御部110は、データファイルの記録処理を行い、ステップS306へ進む。
【0059】
また、ステップS303でアロケーション内の最初のデータ書き込みでないと判断された場合、すなわち、映像データや音声データを記録する場合には、システム制御部110は、ステップS305でFATテーブルの切り替えを行う。
【0060】
このFATテーブル切り替え時に、記録媒体150の異常などのエラーが発生した場合には、システム制御部110は、エラーコードを設定して処理を終了する。
【0061】
FATテーブルの切り替えに成功した場合には、システム制御部110は、引き続いて映像ファイルと音声ファイルの記録処理を行い、ステップS306へ進む。
【0062】
ステップS306では、システム制御部110は、クリップ管理ファイル、映像ファイル、および、音声ファイルの記録処理がすべて完了したか否かを確認する。記録バッファやメモリに保管されていた全てのデータの記録が完了した場合は、システム制御部110は、処理を終了する。
【0063】
データの記録が完了していない場合には、ステップS303へ戻って、システム制御部110は、同じ手順でのファイル記録処理を継続する。
【0064】
ここで、図4から図7を用いて、図3のフローチャートで示した本実施形態の記録方法の、記録開始処理と記録処理を行う場合の、ディレクトリ・エントリ、FATテーブル、クラスタそれぞれの状態について例示して説明する。
【0065】
まず、図4は、ステップS301のファイルオープン処理が行われた状態の、ディレクトリ・エントリと、FATテーブル、および、クラスタの状態の例を示している。
【0066】
図4に示すように、ステップS301のファイルオープン処理が行われた状態では、クリップ管理ファイルのディレクトリ・エントリ400、映像ファイルのディレクトリ・エントリ401、音声ファイルのディレクトリ・エントリ402は、オープン処理のみが行われた段階であってまだデータは記録されてはいないため、ディリクトリ・エントリの先頭クラスタとファイルサイズがいずれも「0」となっている。なお、これらのディレクトリ・エントリ400,401,402は図示しないメモリに保持されていて、この時点では記録媒体150には記録されない。
【0067】
また、クラスタ番号0x08から0x0Fとして示すアロケーション領域403は、ステップS300で検出した空きアロケーションであり、図4に示すファイルオープン処理の段階では、FATテーブルはすべて未使用となっていて、それぞれのクラスタにもファイルデータは記録されていない。
【0068】
次に、図3のフローチャートにおいて、ステップS304として示した、記録開始時のFATテーブルの事前確保の処理内容について、図5を用いて説明する。
【0069】
図5は、FATテーブル確保時のディレクトリ・エントリと、FATテーブル、および、クラスタの状態を示す。なお、図5においては、クリップ管理ファイルのディレクトリ・エントリ500のように、図4から変化した部分については新たな符号(図4では400)を振り、映像ファイルのディレクトリ・エントリ401のように、図4の状態から変化のないものについては、図4と同じ符号を付している。
【0070】
図5に示すFATテーブル確保時には、クリップ管理データの書き込み要求に対し、まず、アロケーション503として示すように、ステップS300で検出した空きアロケーションである領域403の先頭からFATテーブルのチェーンが、シーケンシャルにつながれる。アロケーション領域503の終端には、ファイルの終端を示す「EOF」が記録される。この段階を以下、[第1の段階]と称する。
【0071】
次に、[第2の段階]として、クリップ管理ファイルのディレクトリ・エントリ500に、ファイルの開始クラスタ番号として、アロケーション領域503の先頭クラスタ番号「0x08」が記録され、ファイルサイズに、記録するデータのサイズ「192」が記録される。
【0072】
次に、[第3の段階]として、アロケーション領域503の先頭クラスタに、クリップ管理データ「X」が記録される。このようにすることで、アロケーション領域503は、すべてクリップ管理ファイルとして扱われる。
【0073】
クリップ管理ファイルのデータ記録が終了すると、今度は図3におけるステップS305として示したFAT切り替え処理が行われ、映像ファイルと音声ファイルの記録が行われる。
【0074】
図6は、映像ファイルの記録時のディレクトリ・エントリと、FATテーブル、および、クラスタ状態を示す。また、図7は、音声データ記録時の、ディレクトリ・エントリと、アロケーションのFATテーブル、および、クラスタ状態を示す。なお、図6および図7の見方は、図5と同じである。
【0075】
映像データの書込み要求に対し、まず、図6にFATテーブル603として示すように、クリップ管理ファイルのデータ「X」が記録された最後のFATテーブル「0x08」に、データの終端を示す“EOF”とマークされる。この段階を以下、[第4の段階]と称する。
【0076】
次に、[第5の段階]として、映像ファイルのディレクトリ・エントリ601に、ファイルの開始クラスタ番号として、クリップ管理ファイルの終端クラスタ「0x08」の次のクラスタ番号「0x09」が記録され、ファイルサイズに記録するデータのサイズ「98304」が記録される。
【0077】
次に、[第6の段階]として、クリップ管理ファイルの終端クラスタの次のクラスタから、映像データ「V」が記録される。このようにすることで、アロケーション領域604は、すべて映像ファイルとして扱われる。
【0078】
同様にして、図7に示すとおり、音声データの書込み要求に対し、まず、FATテーブル703として示したように、映像ファイルのデータ「V」が記録された最後のFATテーブル「0x0B」に、映像ファイルのFATテーブルの終端として、「EOF」がマークされる。これが[第7の段階]である。
【0079】
次に、[第8の段階]として、音声ファイルのディレクトリ・エントリ702に、ファイルの開始クラスタ番号として、映像ファイルの終端クラスタ「0x0B」の次のクラスタ番号「0x0C」が記録され、ファイルサイズに記録するデータのサイズ「32768」が記録される。
【0080】
次に、[第9の段階]として、映像ファイルの終端クラスタ「0x0B」の次のクラスタ「0x0C」から、音声データ「A」が記録される。このようにすることで、アロケーション領域704はすべて、音声ファイルとして扱われる。
【0081】
以上の記録開始処理とそれに続く記録処理によって、クリップ管理ファイル、映像ファイル、音声ファイルが記録媒体150へ記録される。
【0082】
ここで、本実施形態の記録方法によれば、データを記録している際の電源停止などによってデータ記録が中断しても、記録中断までのデータを読み出すことができ、データの紛失を回避することができる。その理由について、上記の[第1の段階]から[第9の段階]のそれぞれについて具体的に説明する。
【0083】
まず、[第1の段階]で電源停止などが発生した場合には、データはまだ記録されていないため、データの損失は生じない。この場合、図5に示す、アロケーション領域503のクラスタ番号を示すディレクトリ・エントリは存在しないため、領域503は、浮遊FATチェーンとして残ることとなる。
【0084】
[第2の段階]で電源停止などが発生した場合には、データはまだ記録されていないので、やはりデータの損失は生じない。なお、この場合に、アロケーション領域503は、クリップ管理ファイルとして扱われるため、記録媒体150に記録されていた不定のデータが、クリップ管理ファイルとして参照されるようになる。
【0085】
[第3の段階]で電源停止などが発生した場合には、クリップ管理ファイルのディレクトリ・エントリ500が記録され、FATテーブル「0x09」にはクリップ管理ファイルのデータ「X」がすでに記録されているため、記録されたデータは、ファイルとして参照可能である。なお、この場合には、終端マーク「EOF」を記録したクラスタまでのアロケーション領域503が全てクリップ管理ファイルとして扱われるため、記録媒体150に記録されていた不定のデータが、クリップ管理ファイルとして参照されるようになる。
【0086】
[第4の段階]で電源停止などが発生した場合には、クリップ管理ファイルは、不定なデータが含まれない正常なファイルとして参照可能である。また、映像データは、まだ記録されていないので、データの損失は生じない。この場合、図6に示す、アロケーション領域604のクラスタ番号を示すディレクトリ・エントリは存在しないため、領域603は、浮遊FATチェーンとして残る。
【0087】
[第5の段階]で電源停止などが発生した場合には、映像データはまだ記録されていないため、データの損失は生じない。なお、この場合には、アロケーション領域604は映像ファイルとして扱われ、不定なデータが映像データファイルとして参照されるようになる。
【0088】
[第6の段階]で電源停止などが発生した場合には、映像ファイルのディレクトリ・エントリ601が記録され、FATテーブル「0x0A」以降には映像ファイルのデータ「V」がすでに記録されているため、記録されたデータは、ファイルとして参照可能である。なお、図6の場合を例に取ると、データが記録されたクラスタ「0x09」から「0x0B」までよりも以降の領域604のクラスタ、すなわち「0x0C」から「0x0F」までのクラスタも映像ファイルとして扱われるため、この領域に記録されていた不定なデータが、映像ファイルとして参照されるようになる。
【0089】
[第7の段階]で電源停止などが発生した場合には、映像ファイルは、不定なデータが含まれない正常なファイルとして参照可能である。また、音声データは、まだ記録されていないため、データの損失は生じない。なお、図7に示す、アロケーション領域704のクラスタ番号を示すディレクトリ・エントリは存在しないため、領域704は、浮遊FATチェーンとして残る。
【0090】
[第8の段階]で電源停止などが発生した場合には、音声データはまだ記録されていないため、データの損失は生じない。この場合には、アロケーション領域704は、音声ファイルとして扱われ、不定なデータが音声ファイルとして参照されるようになる。
【0091】
[第9の段階]で電源停止などが発生した場合には、音声ファイルのディレクトリ・エントリ702が記録され、FATテーブル「0x0D」以降には音声ファイルのデータ「A」がすでに記録されているため、記録されたデータは、ファイルとして参照可能である。なお、図7の場合を例に取ると、データを記録したクラスタ番号「0x0C」より以降の領域のクラスタ、すなわちクラスタ番号「0x0D」からFATテーブルに「EOF」が記録されたクラスタ番号「0x0F」までのクラスタも、音声ファイルとして扱われるため、この領域に記録されていた不定なデータが、音声ファイルとして参照されるようになる。
【0092】
このように、本実施形態の記録方法によれば、[第1の段階]から[第9の段階]のいずれの段階においても、データを記録している際の電源停止などによってデータ記録が中断しても、記録中断までのデータを読み出すことができ、データの紛失を回避することができる。
【0093】
次に、図2で示した本実施形態の記録方法における、ステップS202で示した記録処理の例として、撮影者によってさらにビデオ撮影が行われ、図3で示した記録処理に引き続いて映像ファイルと音声ファイルの記録を継続して行う場合の記録処理の流れについて、図8のフローチャートを用いて説明する。
【0094】
図8は、記録媒体150に、図7に示す状態で管理ファイルデータ「X」、映像ファイルデータ「V」、音声ファイルデータ「A」が記録されている状態で、さらなる映像ファイルデータと音声ファイルデータとを記録する記録処理の流れを示すフローチャートである。
【0095】
まず、図8に示すように、最初のステップS800では、システム制御部110は、図示しない記録バッファに、符号化データが蓄積されているか否かを確認する。
【0096】
符号化データが蓄積されていたら、システム制御部110は、クリップ記録処理手段111により、符号化データを所定のフォーマット形式に変換し、ステップS801へ進み記録処理が開始される。
【0097】
ステップS801では、システム制御部110は、記録先となるアロケーションがすでに確保されているか否かを確認する。
【0098】
確保されていない場合は、ステップS802へ進む。一方、アロケーションが確保されている場合には、ステップS804へ進む。
【0099】
ステップS802では、システム制御部110は、空き領域サーチ処理手段112によって空きアロケーションがあるか否かを検出する。
【0100】
空きアロケーションが一つもない場合には、システム制御部110は、エラーコードを設定して処理を終了する。一方、空きアロケーションが検出できた場合には、ステップS803へ進む。
【0101】
ステップS803では、システム制御部110は、ステップS802で検出された空きアロケーションに対し、FATテーブルの事前確保を行う。
【0102】
FATテーブルの確保に成功した場合には、ステップS805へ進み、システム制御部110は、データ記録を行い、処理を終了する。
【0103】
一方、ステップS803でFATテーブルの事前確保ができなかった場合、または、ステップS805のデータ記録において、記録媒体150の異常などのエラーが発生した場合には、システム制御部110は、エラーコードを設定して処理を終了する。
【0104】
ステップS801で、記録先となるアロケーションが確保されていた場合には、ステッステップS804で、システム制御部110は、記録するデータのファイルが、前回記録したデータのファイルと同じであるか確認する。
【0105】
同じファイルである場合は、すでにFATチェーンは確保済みであるので、ステップS805へ進み、システム制御部110は、データ記録を行い、処理を終了する。データ記録において記録媒体の異常などのエラーが発生した場合には、システム制御部110は、エラーコードを設定し処理を終了する。
【0106】
一方、異なるファイルであった場合には、ステップS806へ進む。
【0107】
ステップS806では、システム制御部110は、FATチェーンの切り替え処理を行う。
【0108】
FATチェーンの切り替えに成功した場合には、ステップS805へ進み、システム制御部110は、データ記録を行い、処理を終了する。
【0109】
ステップS806でFATチェーンの切り替え処理に失敗した場合、または、ステップS805のデータ記録において、記録媒体の異常などのエラーが発生した場合には、システム制御部110は、エラーコードを設定し処理を終了する。
【0110】
以上、図8に示した流れに沿って、映像ファイルと音声ファイルのデータ記録処理が行われる。
【0111】
ここで、図8のフローチャートで示した、映像ファイルと音声ファイルのデータ記録処理において、データが記録されるアロケーションのFATテーブルとクラスタの状態の具体例について、図9および図10を用いて例示して説明する。なお、本実施形態の場合、図8にフローチャートを示したような、記録媒体150に既に映像ファイルデータと音声ファイルデータが記録されている状態で、さらなるビデオ撮影が行われた場合の新たな映像ファイルと音声ファイルを記録媒体に記録するに当たっては、ディレクトリ・エントリの更新は行われないため、その説明は省略する。
【0112】
図9は、映像ファイルデータを記録媒体150に書き込む場合において行われる、FATテーブルの事前確保の処理についての具体例を示すものであり、それぞれの段階のFATテーブル、および、クラスタの状態を示している。
【0113】
図9(a)に示すように、映像データの書込み前では、ステップS802で検出された空きアロケーション領域900aは、空き領域となっている。
【0114】
そして、映像データの書込み要求に対して、図9(b)に示すように、FATテーブルの事前確保の処理として、ステップS802で検出されたアロケーション領域900aの先頭から、FATテーブルのチェーンをシーケンシャルにつなぎ、アロケーション領域900bとする処理が行われる。また、アロケーション領域901bの最後のクラスタ、クラスタ番号「0x37」のFATテーブルには、ファイルの終端を示す「EOF」が記録される。この段階では、一つ前に記録した映像ファイルのアロケーションの最後のクラスタ(クラスタ番号「0x0E」)のFATテーブル901bには、ファイルの終端を示す「EOF」が記録されている。なお、以降この段階を[第10の段階]と称することとする。
【0115】
次に、[第11の段階]として、図9(c)にFATテーブル901cとして示すように、一つ前に記録した映像ファイルのFATチェーンの終端のFATテーブルが、アロケーション900bの先頭のクラスタ番号「0x30」を示すように置き換えられる。このことで、新たな記録用に確保されたアロケーション901bは、前に記録された映像ファイルのFATチェーンに接続されてアロケーション901cとなり、この新たなアロケーション901cは映像ファイルとして参照することができる。
【0116】
次に、[第12の段階]として、図9(d)に示すように、領域902として示すように、アロケーション900cの先頭クラスタ、クラスタ番号「0x30」から順に、クラスタ番号「0x32」のクラスタまで、映像データが記録される。図9(d)の段階では、クラスタ番号「0x33」以降のクラスタは、データが記録されていない領域903となっている。
【0117】
このように、既に映像ファイルデータと音声ファイルデータの記録が行われている状態で、引き続き映像ファイルデータを記録する場合には、新しく検出確保された空きアロケーションを、一つ前に映像ファイルデータを記録していたアロケーションの最後のクラスタにつなげることで、同じ種類である映像ファイルが記録された一つながりのアロケーションが認識できるようになり、データの読み出しが容易となる。
【0118】
次に、図10を用いて、音声ファイルの記録についての具体例として、FATチェーンの切り替え処理について説明する。
【0119】
図10(a)は、音声データを書き込む前の状態を示している。各クラスタの状態は、図9(d)で示した映像データが書き込まれた後の状態と同じとなっている。図10(a)におけるクラスタ番号「0x32」のクラスタが、映像データが記録されたアロケーションの最後のクラスタであり、このクラスタのFATテーブル1000aは、同じアロケーションの次のクラスタ「0x34」を示している。
【0120】
次に、音声データの書込み要求に対して、図10(b)にFATテーブル1000bとして示すように、前回記録した映像ファイルのFATチェーンの終端1000aが、ファイルの終端を示す「EOF」に置き換えられる。このとき、前回音声データを記録したクラスタ番号「0x0F」のクラスタのFATチェーンは、ファイルの終端を示す「EOF」が記録されている。また、映像ファイルが記録されなかったアロケーション領域1002bは、空き領域となっている。なお、この図10(b)の段階を[第13の段階]と称することとする。
【0121】
次に、[第14の段階]として、図10(c)に示すように、前回音声データを記録した最後のクラスタ「0x0E」のFATテーブルが、ファイルの終端を示す「EOF」から新たに音声データを記録するアロケーション領域1002cの先頭を示すように、「0x33」に置き換えられる。このようにFATチェーンを映像ファイルの記録用から音声ファイルの記録用に切り替えることで、以降アロケーション領域1002cは、音声ファイルとして参照することができるようになる。
【0122】
次に、[第15の段階]として、図10(d)に示すように、図10(c)で示した音声ファイル記録用の空きアロケーション1002cの先頭クラスタから順に、音声ファイルデータが記録される。図10(d)では、音声ファイルとして、領域1003として示す、クラスタ番号「0x33」で示される一つのクラスタに音声データが記録されて、残りの空きアロケーション領域1004は、空白のまま残っている状態を示している。
【0123】
このように、映像ファイルの記録後に引き続いて音声ファイルを記録する際に、映像ファイル記録用として用意されたFATチェーンを音声ファイル記録用のFATチェーンとして切り替えることで、一つ前に記録された音声データに引き続いて、同じFATチェーンに記録されたデータとして、音声ファイルを参照することができるようになる。
【0124】
以上、本実施形態の記録方法における、映像ファイルデータと音声ファイルデータの追加記録時の記録処理について説明してきた。このような本実施形態の記録方法によれば、映像データまたは音声データの記録時に電源停止などによってデータ記録が中断しても、記録中断までのデータを読み出すことができ、データの紛失を回避することができる。その理由について、上記の[第10の段階]から[第15の段階]それぞれについて、具体的に説明する。
【0125】
まず、[第10の段階]で電源停止などが発生した場合には、映像データはまだ記録していないので、データの損失が生じるはない。この場合、図9(b)に示す、アロケーション領域900bのクラスタ番号を示すディレクトリ・エントリは存在しないため、領域903bは、浮遊FATチェーンとして残ることとなる。
【0126】
次に、[第11の段階]で電源停止などが発生した場合であっても、映像データはまだ記録していないので、データの損失はない。この状態では、アロケーション900cの領域は映像ファイルとして扱われ、記録媒体150にもともと記録されていた不定なデータが、ファイルとして参照されるようになる。
【0127】
[第12の段階]で電源停止などが発生した場合には、記録した映像データはファイルとして参照可能である。なお、データを記録したクラスタ以外の、アロケーション領域903のクラスタの内容も映像ファイルとして扱われ、不定なデータがファイルとして参照されるようになる。
【0128】
音声ファイルデータを記録する上記の[第13の段階]で電源停止などが発生した場合には、映像ファイルは不定なデータが含まれない正常なファイルとして参照可能である。また、音声データはまだ記録していないので、データの損失は生じない。この場合、領域1002bのクラスタ番号を示すディレクトリ・エントリは存在しないため、この領域1002bの部分は、浮遊FATチェーンとして残る。
【0129】
[第14の段階]で電源停止などが発生した場合には、音声データはまだ記録していないので、データの損失は生じない。なお、アロケーション領域1002cは、音声ファイルとして扱われて、不定なデータがファイルとして参照されるようになる。
【0130】
[第15の段階]で電源停止などが発生した場合には、記録した音声データはファイルとして参照可能である。なお、データを記録したクラスタ領域1003以外の領域1004も映像ファイルとして扱われて、記録されていた不定なデータがファイルとして参照されるようになる。
【0131】
なお、本実施形態の記録方法において、記録処理ではディレクトリ・エントリの更新を行わない。したがって、管理データファイル、映像ファイル、音声ファイルそれぞれのディレクトリ・エントリに記録されたファイルサイズは、記録開始処理で記録されたときの値のままである。この場合に、電源停止などが発生しても、FATチェーンをたどることで、ファイルサイズを想定することができる。その内容については、後述する。
【0132】
次に、図2で示した本実施形態の記録方法において、ステップS203として示した記録停止処理について、図を用いて詳細に説明する。
【0133】
図11は、本実施形態の記録方法の記録停止処理の処理内容を示すフローチャートである。
【0134】
図11に示すように、記録停止処理では、最初のステップS1100で、システム制御部110は、クリップ管理ファイルの更新を行う。具体的には、システム制御部110は、クリップのフレーム数を示すデュレーションを設定し、記録停止日時を設定し、ファイルクローズを行う。このとき、クリップ管理ファイルは上書き記録を行うため、システム制御部110は、FATテーブルの更新は行わない。ディレクトリ・エントリの更新日時は変更するため、システム制御部110は、ディレクトリ・エントリの記録を行う。
【0135】
このクリップ管理ファイル更新時に、記録媒体の異常などのエラーが発生した場合には、システム制御部110は、エラーコードを設定し処理を終了する。
【0136】
クリップ管理ファイルの更新が正しく行われた場合には、ステップS1101へ進む。
【0137】
ステップS1101では、システム制御部110は、これからファイルクローズを行うファイルが予約チェーンに繋がっているか否か、すなわち、FATテーブルの事前確保をしているファイルか否かを確認する。これからファイルクローズを行うファイルが予約チェーンに繋がっている場合は、不定なデータがファイルとして参照されてしまうために、このような不具合が生じることを防ぐためである。
【0138】
これからファイルクローズを行うファイルが予約チェーンに繋がっている場合は、ステップS1102へ進む。そうでない場合はステップS1104へ進む。
【0139】
ステップS1102では、システム制御部110は、これからファイルクローズを行うファイルの他に、オープンされているファイルが存在するか否かを確認する。
【0140】
ファイルクローズを行うファイルの他に、ファイルがオープンされている場合にはステップS1103へ進む。他にファイルがオープンされていない場合は、ステップS1105へ進む。
【0141】
ステップS1103では、システム制御部110は、ファイルクローズを行おうとするファイルのFATチェーンに繋がっている予約チェーンを、オープンされている他のファイルに付け替えるFATファイルの挿げ替え処理を行う。
【0142】
このとき、エラーが発生した場合には、システム制御部110は、エラーコードを設定し処理を終了する。FATチェーンの挿げ替え処理が正しく行えた場合は、ステップS1104へ進む。
【0143】
ステップS1104では、システム制御部110は、ディレクトリ・エントリの更新を行う。ここでは、システム制御部110は、実際に記録したデータのサイズをファイルサイズとして記録し、同時に、変更日時を更新する。
【0144】
このとき、エラーが発生した場合には、システム制御部110は、エラーコードを設定し処理を終了する。ディレクトリ・エントリの更新が行えた場合は、別のファイルのクローズ処理を行うためステップS1101へ進む。
【0145】
ステップS1102で、これからファイルクローズを行うファイルの他に、オープンされているファイルが存在しない場合には、ステップS1105で、システム制御部110は、予約チェーンの削除処理を行う。
【0146】
この予約チェーンの削除処理で、エラーが発生した場合には、システム制御部110は、エラーコードを設定し処理を終了する。予約チェーンの削除が正しく行われた場合には、ステップS1106へ進む。
【0147】
ステップS1106では、システム制御部110は、ディレクトリ・エントリの更新を行う。ここでは、システム制御部110は、実際に記録したデータのサイズをファイルサイズとして記録し、また変更日時を更新する。
【0148】
このとき、エラーが発生した場合には、システム制御部110は、エラーコードを設定し処理を終了する。ディレクトリ・エントリの更新に成功した場合は、システム制御部110は、処理を正常終了する。
【0149】
このようにして、図2のフローチャートで示した、本実施形態の記録方法における記録終了処理が完了する。
【0150】
ここで、上記図11で示した記録終了処理における、ステップS1103のFATチェーンの挿げ替え処理と、ステップS1105の予約チェーンの削除処理について、具体例を示して説明する。
【0151】
図12は、データが記録されるアロケーションのFATテーブルとクラスタの状態の具体例を示す図であり、図8のフローチャートでの記録処理の詳細を示した、図9および図10に相当する図である。
【0152】
図12(a)は、図10(d)で示した音声データの書き込み終了時の状態を示している。この段階では、音声データが記録されたクラスタ番号「0x33」のFATテーブル1200aは、次のクラスタ番号「0x34」につなげられているが、FATチェーンでつなげられたクラスタ番号「0x34」以降のクラスタには、データは記録されていない。
【0153】
次に、図12(b)として示すように、FATチェーンの切り離しが行われる。具体的には、音声データを実際に記録した最終クラスタのFATテーブル1200aが、終端を示す「EOF」を記録したFATテーブル1200bとされる。この処理が行われることで、音声ファイルを記録したFATチェーンが終了する。なお、この段階を[第16の段階]と称する。
【0154】
次に、[第17の段階]として、図12(c)に示すように、図12(b)で切り離されたFATチェーンを、他のオープンされているファイル、ここでは映像ファイルと挿げ替える処理が行われる。すなわち、一つ前に記録した、映像ファイルの終端クラスタのFATテーブル1201bが、終端を意味する「EOF」から、音声ファイルから切り離したFATチェーン1202bの先頭のクラスタ番号「0x34」を記録したFATテーブル1201cとされる。このことで、図12(c)に示すように、領域1202cは映像ファイルとして扱われ、映像データを継続して記録することができるようになる。
【0155】
なお、このステップS1103のFATチェーンの挿げ替え処理時において、他にオープンされているファイルが複数存在することが想定される場合には、FATチェーンの挿げ替え処理について、例えばファイルがオープンされた順番にしたがって優先的に処理を行うなど、挿げ替えを行うファイルの順序をあらかじめ定めておく。
【0156】
次に、ステップS1105の予約チェーンの削除処理について、図12(c)以下を用用いて説明する。
【0157】
図12(c)に示すように、音声ファイルの記録終了の要求に対して、FATチェーンが切り替えられて、映像ファイルが記録できる状態において、記録終了処理として、映像ファイルのクローズ要求がなされる。
【0158】
そして、続く[第18の段階]として、図12(d)に示すように、[第17の段階]で予約チェーンにつなげられ、「0x34」と記録された映像データを実際に記録した最終クラスタのFATテーブル1201cが、終端を意味する「EOF」が記録されたFATテーブル1201dに変更される。この処理によって、未使用のクラスタ領域1202dが、映像ファイル記録領域から切り離される。
【0159】
次に、[第19の段階]として、映像ファイルから切り離された未使用のクラスタ領域1202dが、FATチェーンを順にたどって全てのクラスタを未使用に設定され、未使用のクラスタ領域1202eとされる。このようにされることで、クラスタ領域1202eは、未使用の領域として認識され、浮遊FATチェーンとして残ることを防止することができる。
【0160】
このような記録終了処理を行うことで、記録終了時に電源停止などによって、記録終了処理が中断しても、記録されたデータを読み出すことができ、データの紛失を回避することができる。その理由について、上記の[第16の段階]から[第19の段階]それぞれについて、具体的に説明する。
【0161】
まず、[第16の段階]で電源停止などが発生した場合には、音声ファイルは、不定なデータが含まれない正常なファイルとして参照可能である。また、映像ファイルも、正しく終端を意味する「EOF」が記録されたFATテーブルを有しているので、不定なデータが含まれない正常なファイルとして参照することができる。なお、図12(b)において、領域1202bとして示している、クラスタ番号を示すディレクトリ・エントリは存在しないため、領域1202bは浮遊FATチェーンとして残ることになる。
【0162】
次に、[第17の段階]で電源停止などが発生した場合には、図12(c)において領域1202cとして示す領域は、映像ファイルとして扱われ、不定なデータがファイルとして参照される。しかし、本来の映像データが記録されている、クラスタ番号「0x34」までのクラスタのデータは、正しく映像ファイルとして参照することができるので、データが読めなくなるような事態は生じない。
【0163】
[第18の段階]で電源停止などが発生した場合には、映像ファイルは不定なデータが含まれない正常なファイルとして参照可能である。なお、映像ファイルのFATチェーンから切り離された、図12(d)で領域1202dと示される領域は、この領域のクラスタ番号を示すディレクトリ・エントリが存在しないため、浮遊FATチェーンとして残ることとなる。
【0164】
[第19の段階]で電源停止などが発生した場合には、映像ファイル、音声ファイルともに、不定なデータが含まれない正常なファイルとして参照することができる。
【0165】
以上のように、本発明の実施形態の記録方法によれば、ファイル記録開始処理時、データ記録処理時、データ記録処理終了時のいずれの場合に、電源停止や記録媒体が引き抜かれるなどの不測の事態が生じてデータ記録が中断しても、記録中断時までに記録されたデータが参照可能であり、データを消失してしまうトラブルを回避することができる。
【0166】
なお、上記本実施形態の記録方法において、それぞれの処理を[第1の段階]から[第19の段階]に分けて、それぞれの段階における記録されたデータを参照可能であることを説明したが、いくつかの段階において、記録したデータサイズとディレクトリ・エントリのファイルサイズが一致しない場合、不定なデータがファイルに含まれる場合、浮遊FATチェーンが残る場合といった状況となりうるケースがあることを説明した。しかし、これらの状況については、本発明の処理方法の実施においての課題となるものではなく、下記に示す処理によって容易に解決することができる。
【0167】
すなわち、実際に記録したデータサイズとディレクトリ・エントリのファイルサイズが異なるという点については、データが記録されたFATチェーンをたどることで、実際に記録されたデータサイズを容易に算出することができる。具体的には、FATテーブルのエントリ数をカウントし、エントリ数にクラスタサイズを乗じたものをファイルサイズとすることができる。
【0168】
この場合において、記録したデータサイズが、クラスタサイズの倍数でない場合には、ファイルの終端クラスタには不定のデータが含まれる。しかし、記録するファイル形式に応じた処理を行うことで、これらの不定なデータを取り除くことができる。この不定なデータの除去処理は、そのまま不定なデータがファイルに含まれる場合や、浮遊FATチェーンが残る場合にこれを除去する際に適用できる。
【0169】
例えば、クリップ管理ファイルはXML形式で記録されるため、終端タグを検出し、以降のデータを消去することで、不定なデータを除去することができる。なお、終端タグ以降のデータを消去するには、ディレクトリ・エントリのファイルサイズを終端タグまでのデータサイズに更新し、そのデータサイズ分のクラスタに対するFATチェーンを残しておき、以降のFATチェーンを消去することで行われる。
【0170】
また、映像データや音声データのファイル形式として使用されるDV−DIF(Digital Video Digital Interface Format)では、DIFブロックと呼ばれる80バイト長の固まりから構成されるため、80バイト毎にIDを検出することで、余分な不定なデータを取り除くことができる。
【0171】
このように、ファイル形式をもとに、不定なデータを取り除くことができない場合においても、不定なデータ領域は映像や音声として再生するとノイズとなる可能性が高いため、パーソナルコンピュータのノンリニア編集等により除去することで対応できる。また、不定なデータ領域が、偶然にも以前撮影した映像データや音声データであった場合、すなわち、本来記録されているデータと同じファイル形式のデータであった場合でも、ノンリニア編集時に、映像や音声の内容から判断して容易に検出でき、これを除去することができる。
【0172】
以上説明したように、本実施形態の記録装置、および記録方法によれば、複数のファイルを時分割に記録媒体に記録するにあたり、確保した予約領域に順次異なる種類のファイルを記録でき、また、記録が終了したファイルに直ちに終端を示す管理情報を付与することができる。このため、データ記録が突然中断した場合であっても、直前に記録したデータの内容を参照することが可能となる。
【0173】
また、上記本実施形態の記録装置、および記録方法では、データ領域に、これから記録するデータ列に対応するファイルが既に記録されている場合には、記録制御部が、既に記録されているファイルの終端に対応する管理情報を予約領域に続くように書き換え、予約領域にデータ列を記録することで、複数種類のファイルを繰り返し記録するに当たって、既に記録されているファイルとの関連付けが可能となり、かつ、突然の記録中断が生じても直前に記録されたファイルデータを参照することができる。
【0174】
さらに、記録媒体への記録終了時に、記録制御部が、最後に記録した前記データ列の終端に対応する管理情報をファイルが終端で終了するように書き換え、かつ、データ記録に使用されなかった予約領域の前記管理情報を消去することで、データ記録後に不定のデータが残存することを回避し、かつ、記録媒体の記録領域を最大限有効に活用することができる。
【0175】
また、上記したように本実施形態の記録装置における記録制御装置としてのシステム制御部110は、マイクロコンピュータ等のコンピュータまたは、コンピュータを内蔵する専用装置などにより構成することができ、記録制御部110を構成する、クリップ記録処理手段111、空き領域サーチ処理手段112、ファイルシステム113の各機能部の機能は、コンピュータが備えるCPUが所定のプログラムを実行することにより実現される。このため、上記した本実施形態の記録装置、および記録方法が奏する作用効果は、コンピュータを各機能部として機能させるためのプログラムおよびそれを記録した記録媒体の実施形態の作用効果として把握することができる。
【0176】
以上本実施形態の記録装置、記録方法およびプログラムについて、具体例を用いて説明してきた。しかし、本実施形態の記録装置、記録方法およびプログラムは、上記の具体例に限定されるものではない。
【0177】
例えば、上記実施形態では、記録装置として、映像データと音声データとを記録するデジタルビデオカメラの記録装置として説明したが、他にも運転速度や非常ブレーキの使用履歴などの複数の種類のデータを記録する、運転情報記録装置など各種の記録装置として実現できるものである。
【0178】
記録されるデータ列の数としても、上記実施形態で説明した映像データと音声データのように2つのものに限られることはなく、3つ以上のデータ列を記録する記録装置、記録方法、プログラムとして実現することもできる。その場合には、本実施形態における第1のファイルである第1のデータ列、第2のファイルである第2のデータ列に加えて、第3のデータ列ないしはさらに多くのデータ列を記録するに当たって、第2のデータ列の処理が終了した後に、同様に第3のデータ列の処理を行い、以降同じ手順で複数のデータ列を順次記録していくことができる。
【0179】
なお、複数のデータ列を記録していくに当たり、記録制御部は必ずしもすべのデータ列を同じ順序で記録する必要はない。例えばあるデータ列にデータが存在していないことが明らかな場合には、記録制御部は、そのデータ列の記録処理を省略して別のデータ列のデータを記録していくことができる。
【0180】
また、上記実施形態では、ファイルシステムとしてFAT形式を用いたものを説明したが、他にもext2(second extended filesystem)などのファイルシステムを用いることが可能である。
【0181】
さらに、上記本発明の記録方法の実施形態の説明では、空きアロケーションの検出として、連続空き領域を検出し、これに新たなデータを記録する場合について例示した。しかし、これは、本発明の記録方法を制限するものではなく、連続していない特定数の空きクラスタを検出するようにして、同様の処理を行うことが可能である。
【0182】
また、上記実施形態の説明では、記録処理時にはディレクトリ・エントリを更新しない場合について例示したが、データを記録する記録処理を行うと同時に、そのたび毎にディレクトリ・エントリを更新記録するようにしてもよい。
【産業上の利用可能性】
【0183】
本発明の記録装置、記録方法およびプログラムは、複数ファイルを時分割で記録する記録装置、そのような記録装置の記録方法およびプログラムとして、産業上有用に利用することができる。
【符号の説明】
【0184】
100 記録装置
110 システム制御部(記録制御部)
111 クリップ記録処理手段
112 空き領域サーチ処理手段
113 ファイルシステム
120 エンコーダ
130 映像・音声入力手段
140 入力手段
150 記録媒体
160 バス
170 記録媒体制御部
【特許請求の範囲】
【請求項1】
データ列をファイルとして記録可能なデータ領域と、前記ファイルの管理情報を記録可能な特定領域とを含む記録媒体へのデータの記録および再生を制御する記録媒体制御部と、
前記記録媒体制御部を介して、第1のデータ列を第1のファイルとして、また、前記第1のデータ列と異なる第2のデータ列を第2のファイルとして、時分割に記録する記録制御部を備え、
前記記録制御部が、前記データ領域上に予約領域を確保して、前記第1のデータ列を前記予約領域に順次記録し、記録するデータ列を前記第1のデータ列から前記第2のデータ列に切り替えるときに、直前に前記予約領域に記録した前記第1のファイルの終端に対応する前記管理情報を前記第1のファイルが前記終端で終了するように書き換え、かつ、前記予約領域の前記第1のファイルの終端に続く位置から前記第2のデータ列を記録することを特徴とする記録装置。
【請求項2】
前記データ領域に、これから記録するデータ列に対応するファイルが既に記録されている場合には、前記記録制御部が、前記既に記録されている前記ファイルの終端に対応する管理情報を前記予約領域に続くように書き換え、前記予約領域にデータ列を記録する請求項1に記載の記録装置。
【請求項3】
前記記録媒体への記録終了時に、前記記録制御部が、最後に記録した前記データ列の終端に対応する管理情報を前記ファイルが前記終端で終了するように書き換え、かつ、データ記録に使用されなかった前記予約領域の前記管理情報を消去する請求項1または2に記載の記録装置。
【請求項4】
前記記録媒体に記録されるデータ列が3つ以上の場合に、前記記録制御部が、前記第2のデータ列の記録後に順次同様の方法で第3のデータ列および第4以降のデータ列の記録を時分割に行う請求項1〜3のいずれか1項に記載の記録装置。
【請求項5】
データ列をファイルとして記録可能なデータ領域と、前記ファイルの管理情報を記録可能な特定領域とを含む記録媒体に、
第1のデータ列を第1のファイルとして、また、前記第1のデータ列と異なる第2のデータ列を第2のファイルとして、時分割に記録する記録方法であって、
前記データ領域上に予約領域を確保して、前記第1のデータ列を前記予約領域に順次記録し、
記録するデータ列を前記第1のデータ列から前記第2のデータ列に切り替えるときに、直前に前記予約領域に記録した前記第1のファイルの終端に対応する前記管理情報を前記第1のファイルが前記終端で終了するように書き換え、かつ、前記予約領域の前記第1のファイルの終端に続く位置から前記第2のデータ列を記録することを特徴とする記録方法。
【請求項6】
前記データ領域に、これから記録するデータ列に対応するファイルが既に記録されている場合には、前記既に記録されている前記ファイルの終端に対応する管理情報を前記予約領域に続くように書き換え、前記予約領域にデータ列を記録する請求項5に記載の記録方法。
【請求項7】
前記記録媒体への記録終了時に、最後に記録した前記データ列の終端に対応する管理情報を前記ファイルが前記終端で終了するように書き換え、かつ、データ記録に使用されなかった前記予約領域の前記管理情報を消去する請求項5または6に記載の記録方法。
【請求項8】
前記記録媒体に記録されるデータ列が3つ以上の場合に、前記第2のデータ列の記録後に順次同様の方法で第3のデータ列および第4以降のデータ列の記録を時分割に行う請求項5〜7のいずれか1項に記載の記録方法。
【請求項9】
データ列をファイルとして記録可能なデータ領域と、前記ファイルの管理情報を記録可能な特定領域とを含む記録媒体に、
第1のデータ列を第1のファイルとして、また、第1のデータ列と異なる第2のデータ列を第2のファイルとして、時分割に記録する記録制御部を制御する処理をコンピュータに実行させるプログラムであって、
前記データ領域上に予約領域を確保して、前記第1のデータ列を前記予約領域に順次記録し、記録するデータ列を前記第1のデータ列から前記第2のデータ列に切り替えるときに、直前に前記予約領域に記録した前記第1のファイルの終端に対応する前記管理情報を前記第1のファイルが前記終端で終了するように書き換え、かつ、前記予約領域の前記第1のファイルの終端に続く位置から前記第2のデータ列を記録する処理を前記記録制御部に実行させることを特徴とするプログラム。
【請求項10】
前記データ領域に、これから記録するデータ列に対応するファイルが既に記録されている場合には、前記既に記録されている前記ファイルの終端に対応する管理情報を前記予約領域に続くように書き換え、前記予約領域にデータ列を記録する処理を前記記録制御部に実行させる請求項9に記載のプログラム。
【請求項11】
前記記録媒体への記録終了時に、最後に記録した前記データ列の終端に対応する管理情報を前記ファイルが前記終端で終了するように書き換え、かつ、データ記録に使用されなかった前記予約領域の前記管理情報を消去する処理を前記記録制御部に実行させる請求項9または10に記載のプログラム。
【請求項12】
前記記録媒体に記録されるデータ列が3つ以上の場合に、前記第2のデータ列の記録後に順次同様の方法で第3のデータ列および第4以降のデータ列の記録を時分割に行う請求項9〜11のいずれか1項に記載のプログラム。
【請求項1】
データ列をファイルとして記録可能なデータ領域と、前記ファイルの管理情報を記録可能な特定領域とを含む記録媒体へのデータの記録および再生を制御する記録媒体制御部と、
前記記録媒体制御部を介して、第1のデータ列を第1のファイルとして、また、前記第1のデータ列と異なる第2のデータ列を第2のファイルとして、時分割に記録する記録制御部を備え、
前記記録制御部が、前記データ領域上に予約領域を確保して、前記第1のデータ列を前記予約領域に順次記録し、記録するデータ列を前記第1のデータ列から前記第2のデータ列に切り替えるときに、直前に前記予約領域に記録した前記第1のファイルの終端に対応する前記管理情報を前記第1のファイルが前記終端で終了するように書き換え、かつ、前記予約領域の前記第1のファイルの終端に続く位置から前記第2のデータ列を記録することを特徴とする記録装置。
【請求項2】
前記データ領域に、これから記録するデータ列に対応するファイルが既に記録されている場合には、前記記録制御部が、前記既に記録されている前記ファイルの終端に対応する管理情報を前記予約領域に続くように書き換え、前記予約領域にデータ列を記録する請求項1に記載の記録装置。
【請求項3】
前記記録媒体への記録終了時に、前記記録制御部が、最後に記録した前記データ列の終端に対応する管理情報を前記ファイルが前記終端で終了するように書き換え、かつ、データ記録に使用されなかった前記予約領域の前記管理情報を消去する請求項1または2に記載の記録装置。
【請求項4】
前記記録媒体に記録されるデータ列が3つ以上の場合に、前記記録制御部が、前記第2のデータ列の記録後に順次同様の方法で第3のデータ列および第4以降のデータ列の記録を時分割に行う請求項1〜3のいずれか1項に記載の記録装置。
【請求項5】
データ列をファイルとして記録可能なデータ領域と、前記ファイルの管理情報を記録可能な特定領域とを含む記録媒体に、
第1のデータ列を第1のファイルとして、また、前記第1のデータ列と異なる第2のデータ列を第2のファイルとして、時分割に記録する記録方法であって、
前記データ領域上に予約領域を確保して、前記第1のデータ列を前記予約領域に順次記録し、
記録するデータ列を前記第1のデータ列から前記第2のデータ列に切り替えるときに、直前に前記予約領域に記録した前記第1のファイルの終端に対応する前記管理情報を前記第1のファイルが前記終端で終了するように書き換え、かつ、前記予約領域の前記第1のファイルの終端に続く位置から前記第2のデータ列を記録することを特徴とする記録方法。
【請求項6】
前記データ領域に、これから記録するデータ列に対応するファイルが既に記録されている場合には、前記既に記録されている前記ファイルの終端に対応する管理情報を前記予約領域に続くように書き換え、前記予約領域にデータ列を記録する請求項5に記載の記録方法。
【請求項7】
前記記録媒体への記録終了時に、最後に記録した前記データ列の終端に対応する管理情報を前記ファイルが前記終端で終了するように書き換え、かつ、データ記録に使用されなかった前記予約領域の前記管理情報を消去する請求項5または6に記載の記録方法。
【請求項8】
前記記録媒体に記録されるデータ列が3つ以上の場合に、前記第2のデータ列の記録後に順次同様の方法で第3のデータ列および第4以降のデータ列の記録を時分割に行う請求項5〜7のいずれか1項に記載の記録方法。
【請求項9】
データ列をファイルとして記録可能なデータ領域と、前記ファイルの管理情報を記録可能な特定領域とを含む記録媒体に、
第1のデータ列を第1のファイルとして、また、第1のデータ列と異なる第2のデータ列を第2のファイルとして、時分割に記録する記録制御部を制御する処理をコンピュータに実行させるプログラムであって、
前記データ領域上に予約領域を確保して、前記第1のデータ列を前記予約領域に順次記録し、記録するデータ列を前記第1のデータ列から前記第2のデータ列に切り替えるときに、直前に前記予約領域に記録した前記第1のファイルの終端に対応する前記管理情報を前記第1のファイルが前記終端で終了するように書き換え、かつ、前記予約領域の前記第1のファイルの終端に続く位置から前記第2のデータ列を記録する処理を前記記録制御部に実行させることを特徴とするプログラム。
【請求項10】
前記データ領域に、これから記録するデータ列に対応するファイルが既に記録されている場合には、前記既に記録されている前記ファイルの終端に対応する管理情報を前記予約領域に続くように書き換え、前記予約領域にデータ列を記録する処理を前記記録制御部に実行させる請求項9に記載のプログラム。
【請求項11】
前記記録媒体への記録終了時に、最後に記録した前記データ列の終端に対応する管理情報を前記ファイルが前記終端で終了するように書き換え、かつ、データ記録に使用されなかった前記予約領域の前記管理情報を消去する処理を前記記録制御部に実行させる請求項9または10に記載のプログラム。
【請求項12】
前記記録媒体に記録されるデータ列が3つ以上の場合に、前記第2のデータ列の記録後に順次同様の方法で第3のデータ列および第4以降のデータ列の記録を時分割に行う請求項9〜11のいずれか1項に記載のプログラム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【公開番号】特開2011−14129(P2011−14129A)
【公開日】平成23年1月20日(2011.1.20)
【国際特許分類】
【出願番号】特願2010−116508(P2010−116508)
【出願日】平成22年5月20日(2010.5.20)
【出願人】(000005821)パナソニック株式会社 (73,050)
【Fターム(参考)】
【公開日】平成23年1月20日(2011.1.20)
【国際特許分類】
【出願日】平成22年5月20日(2010.5.20)
【出願人】(000005821)パナソニック株式会社 (73,050)
【Fターム(参考)】
[ Back to top ]