(57)【要約】【課題】ファイルシステムが断片化した状態でも記録時間が短くなるのを抑え、メモリカード等の記録媒体の空き領域を有効に利用する。【解決手段】メモリカード１０９の各ＡＵについて断片化の程度を取得するとともに、各ＡＵについて断片化の程度に応じたデータの書き込み可能速度を求め、また、ストリームバッファ１０７の空き容量を取得する。バッファ１０７の空き容量が所定の値以上である場合、メモリカード１０９のＡＵのうち書き込み可能速度が低速なものを選択して書き込みを行い、バッファ１０７の空き容量が所定の値を下回る場合、メモリカード１０９のＡＵのうち書き込み可能速度が高速なものを選択して書き込みを行う。【選択図】図１
2010020641.tif 000002
【特許請求の範囲】
【請求項１】
データを記録するための記録媒体と、
前記記録媒体に記録するデータを一時的に記憶するメモリと、
前記記録媒体を複数の部分領域に分けて扱い、前記メモリに記憶したデータを読み出して書き込む記録制御手段と、
前記記録媒体の各部分領域について断片化の程度を取得するとともに、各部分領域について断片化の程度に応じたデータの書き込み可能速度を求める領域管理手段と、
前記メモリの空き容量を取得する空き容量取得手段とを備え、
前記記録制御手段は、前記データの書き込み速度と、前記メモリの空き容量と、前記記録媒体の各部分領域の書き込み可能速度とに応じて、前記記録媒体の部分領域を選択して書き込みを行うことを特徴とする記録装置。
【請求項２】
前記記録制御手段は、
前記メモリの空き容量が所定の値以上である場合、前記記録媒体の部分領域のうち書き込み可能速度が低速な部分領域を選択して書き込みを行い、
前記メモリの空き容量が前記所定の値を下回る場合、前記記録媒体の部分領域のうち書き込み可能速度が高速な部分領域を選択して書き込みを行うことを特徴とする請求項１に記載の記録装置。
【請求項３】
前記記録媒体の部分領域の一つにデータを記録した場合の記録後における前記メモリの空き容量を見積もる空き容量算出手段を備え、
前記書き込み制御手段は、前記空き容量算出手段により算出した見積もりに基づいて、前記メモリの空き容量がなくならないように前記記録媒体の部分領域の一つを選択して書き込みを行うことを特徴とする請求項１に記載の記録装置。
【請求項４】
データを記録するための記録媒体と、
前記記録媒体に記録するデータを一時的に記憶可能なメモリと、
前記記録媒体を複数の部分領域に分けて扱い、データを書き込む記録制御手段と、
前記記録媒体の各部分領域について断片化の程度を取得するとともに、各部分領域について断片化の程度に応じたデータの書き込み可能速度を求める領域管理手段とを備え、
前記記録制御手段は、
前記記録媒体の複数の部分領域のうち、書き込み可能速度が前記データの書き込み速度よりも高速な部分領域が存在する場合、その部分領域を選択して書き込みを行い、
書き込み可能速度が前記データの書き込み速度よりも高速な部分領域が存在しない場合、前記データの書き込み速度よりも低速な部分領域を選択し、前記データを前記メモリに一時的に記憶した上で書き込みを行うことを特徴とする記録装置。
【請求項５】
前記メモリはフラッシュメモリであることを特徴とする請求項４に記載の記録装置。
【請求項６】
前記メモリはハードディスクであることを特徴とする請求項４に記載の記録装置。
【請求項７】
前記記録媒体にデータを連続記録可能な時間を算出する記録可能時間算出手段を備え、
前記記録可能時間算出手段は、前記記録可能時間の算出に際して、前記記録媒体の複数の部分領域のうち、書き込み可能速度が前記データの書き込み速度よりも低速な部分領域への記録相当分を含めることを特徴とする請求項４乃至６のいずれか１項に記載の記録装置。
【請求項８】
被写体像を撮影する撮像部を備え、
前記データは、前記撮像部によって取得された動画像データであることを特徴とする請求項１乃至７のいずれか１項に記載の記録装置。
【請求項９】
データを記録するための記録媒体と、前記記録媒体に記録するデータを一時的に記憶するメモリと、前記記録媒体を複数の部分領域に分けて扱い、前記メモリに記憶したデータを読み出して書き込む記録制御手段とによる記録方法であって、
前記記録媒体の各部分領域について断片化の程度を取得するとともに、各部分領域について断片化の程度に応じたデータの書き込み可能速度を求める手順と、
前記メモリの空き容量を取得する手順と、
前記記録制御手段が、前記データの書き込み速度と、前記メモリの空き容量と、前記記録媒体の各部分領域の書き込み可能速度とに応じて、前記記録媒体の部分領域を選択して書き込みを行う手順とを有することを特徴とする記録方法。
【請求項１０】
データを記録するための記録媒体と、前記記録媒体に記録するデータを一時的に記憶可能なメモリと、前記記録媒体を複数の部分領域に分けて扱い、データを書き込む記録制御手段とによる記録方法であって、
前記記録媒体の各部分領域について断片化の程度を取得するとともに、各部分領域について断片化の程度に応じたデータの書き込み可能速度を求める手順と、
前記記録制御手段が、前記記録媒体の複数の部分領域のうち、書き込み可能速度が前記データの書き込み速度よりも高速な部分領域が存在する場合、その部分領域を選択して書き込みを行い、書き込み可能速度が前記データの書き込み速度よりも高速な部分領域が存在しない場合、前記データの書き込み速度よりも低速な部分領域を選択し、前記データを前記メモリに一時的に記憶した上で書き込みを行う手順とを有することを特徴とする記録方法。
【請求項１１】
記録媒体に記録するデータを一時的に記憶するメモリと、
前記記録媒体を複数の部分領域に分けて扱い、前記メモリに記憶したデータを読み出して書き込む記録制御手段と、
前記記録媒体の各部分領域について断片化の程度を取得するとともに、各部分領域について断片化の程度に応じたデータの書き込み可能速度を求める領域管理手段と、
前記メモリの空き容量を取得する空き容量取得手段としてコンピュータを機能させ、
前記記録制御手段は、前記データの書き込み速度と、前記メモリの空き容量と、前記記録媒体の各部分領域の書き込み可能速度とに応じて、前記記録媒体の部分領域を選択して書き込みを行うことを特徴とするプログラム。
【請求項１２】
記録媒体に記録するデータを一時的に記憶可能なメモリと、
前記記録媒体を複数の部分領域に分けて扱い、データを書き込む記録制御手段と、
前記記録媒体の各部分領域について断片化の程度を取得するとともに、各部分領域について断片化の程度に応じたデータの書き込み可能速度を求める領域管理手段としてコンピュータを機能させ、
前記記録制御手段は、
前記記録媒体の複数の部分領域のうち、書き込み可能速度が前記データの書き込み速度よりも高速な部分領域が存在する場合、その部分領域を選択して書き込みを行い、
書き込み可能速度が前記データの書き込み速度よりも高速な部分領域が存在しない場合、前記データの書き込み速度よりも低速な部分領域を選択し、前記データを前記メモリに一時的に記憶した上で書き込みを行うことを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メモリカードカムコーダ等のようにリアルタイムデータをランダムアクセス可能な記録媒体に記録する記録装置、方法及びプログラムに関する。
【背景技術】
【０００２】
（メモリカードカムコーダ）
近年、メモリカード等の記録媒体に撮影した画像データを記録するデジタルカメラやデジタルビデオカメラが広く普及してきている。これらの機器における記録フォーマットとしてはＦＡＴ（File Allocation Table）方式が一般的である。ＦＡＴ方式では、記録媒体の使用領域と未使用領域をテーブル方式で管理しており、データ書き込み要求があると、この管理テーブルを参照して未使用領域を特定し、データ書き込みを行う。
【０００３】
しかしながら、ＦＡＴ方式では、ファイルの書き込み・削除を繰り返していると使用領域と未使用領域が混在してしまい、連続した空き領域が少なくなってしまう状況が生じる。これは、一般にフラグメンテーション或いは断片化と呼ばれるもので、記録速度の低下を招くために動画記録等のリアルタイム性を要する書き込み時に問題となる。すなわち、メモリカード等のフラッシュメモリを用いた記録媒体においては、断片化が生じている領域に書き込みを行うと、内部的には新たに書き込むデータと既に書かれているデータをまとめて別の空き領域にコピーするということが行われる。そのため、フラグメンテーションによって書き込み速度の低下が生じてしまうという問題があった。
【０００４】
以上のような問題に対して、特許文献１では、書き込むデータをリアルタイム性が要求されるものとそうでないものに区別し、記録媒体の空き領域情報に基づいて、リアルタイム性の要求されるデータは相対的に高転送レートの領域に、リアルタイム性の要求されないデータは相対的に低転送レートの領域に記録するようになされたものが開示されている。
【０００５】
（ＳＤカードスピードクラスについて）
さらに、近年ではメモリカードの規格においてフラグメンテーションによる速度低下を考慮に入れた、最低記録保証レートを規定するものが現れている。例えば、ＳＤ（secure digital）カードの標準を定めている「Secure Digital Specifications Physical Layer Spec. Version 2.0」では、動画に代表されるリアルタイムデータを破綻なく記録可能とするためにスピードクラスというものを規定している。
【０００６】
スピードクラスについて、図１１を参照して説明する。スピードクラスでは、カード上の記録領域をＡＵ（Allocation Unit）と呼ばれる単位で区切り、各ＡＵに対して断片化の程度を測定することが規定されている。具体的に、ＡＵはＦＡＴにおけるクラスタサイズの整数倍となっており、ＡＵにおけるＦＡＴの使用済みクラスタの割合が断片化率となる。ＡＵの断片化率に応じて、そのＡＵ内の空きクラスタへの最低書き込み速度が規定されている。そして、書き込むデータのビットレートより高速な書き込みが可能なＡＵに対して選択的に書き込みを行うことで、リアルタイムデータを確実にカードに記録することが可能となっている。
【０００７】
具体例を説明すると、あるカードでは、図１１に示すように、ＡＵ内の空きクラスタの割合が１００％ならば６ＭＢ/ｓｅｃ、７５％ならば４ＭＢ/ｓｅｃ、５０％ならば２ＭＢ／ｓｅｃ、２５％ならば１ＭＢ/ｓｅｃでの書き込みが可能である。したがって、ビットレート３ＭＢ/ｓｅｃのストリームをリアルタイムに記録する場合、空きクラスタの割合が１００％或いは７５％の領域を使用することで、バッファオーバーフローを発生させることなく記録を継続することが可能である。
【０００８】
このような技術的背景に基づき、特許文献２では、記録媒体にリアルタイム記録を行う記録装置において、記録媒体上のファイルシステムの断片化情報を取得し、記録媒体の各領域を前記断片化情報に基づいて複数の書き込み速度のクラスに分類し、記録の際に所望のリアルタイム性の程度に応じた最も適切な速度クラスの領域に優先的にデータを書き込むことで、高転送レートのリアルタイム記録可能な領域を有効に利用可能とするものが開示されている。
【０００９】
【特許文献１】特開２０００−２６７９０４号公報
【特許文献２】特開２００７−４９６３９号公報
【発明の開示】
【発明が解決しようとする課題】
【００１０】
（記録可能時間が短くなってしまう課題）
以上のようにすることで、断片化が生じたメモリカードに対してもリアルタイム性を保証した記録が可能となっていた。しかしながら、上記従来技術では、ストリームのビットレートで書き込みができないと判定された領域は使用することができないため、実際のカードの空き容量よりも記録可能時間が短くなってしまうという問題が存在した。
【００１１】
本発明は以上のような状況に鑑みてなされたものであり、メモリカード等の記録媒体に時系列データをリアルタイムに記録する記録装置において、記録媒体上のファイルシステムの断片化が進んでいるような場合に記録可能時間が短くなってしまうという課題に対してなされたものである。
【課題を解決するための手段】
【００１２】
本発明の記録装置は、データを記録するための記録媒体と、前記記録媒体に記録するデータを一時的に記憶するメモリと、前記記録媒体を複数の部分領域に分けて扱い、前記メモリに記憶したデータを読み出して書き込む記録制御手段と、前記記録媒体の各部分領域について断片化の程度を取得するとともに、各部分領域について断片化の程度に応じたデータの書き込み可能速度を求める領域管理手段と、前記メモリの空き容量を取得する空き容量取得手段とを備え、前記記録制御手段は、前記データの書き込み速度と、前記メモリの空き容量と、前記記録媒体の各部分領域の書き込み可能速度とに応じて、前記記録媒体の部分領域を選択して書き込みを行うことを特徴とする。
本発明の別の記録装置は、データを記録するための記録媒体と、前記記録媒体に記録するデータを一時的に記憶可能なメモリと、前記記録媒体を複数の部分領域に分けて扱い、データを書き込む記録制御手段と、前記記録媒体の各部分領域について断片化の程度を取得するとともに、各部分領域について断片化の程度に応じたデータの書き込み可能速度を求める領域管理手段とを備え、前記記録制御手段は、前記記録媒体の複数の部分領域のうち、書き込み可能速度が前記データの書き込み速度よりも高速な部分領域が存在する場合、その部分領域を選択して書き込みを行い、書き込み可能速度が前記データの書き込み速度よりも高速な部分領域が存在しない場合、前記データの書き込み速度よりも低速な部分領域を選択し、前記データを前記メモリに一時的に記憶した上で書き込みを行うことを特徴とする。
本発明の記録方法は、データを記録するための記録媒体と、前記記録媒体に記録するデータを一時的に記憶するメモリと、前記記録媒体を複数の部分領域に分けて扱い、前記メモリに記憶したデータを読み出して書き込む記録制御手段とによる記録方法であって、前記記録媒体の各部分領域について断片化の程度を取得するとともに、各部分領域について断片化の程度に応じたデータの書き込み可能速度を求める手順と、前記メモリの空き容量を取得する手順と、前記記録制御手段が、前記データの書き込み速度と、前記メモリの空き容量と、前記記録媒体の各部分領域の書き込み可能速度とに応じて、前記記録媒体の部分領域を選択して書き込みを行う手順とを有することを特徴とする。
本発明の別の記録方法は、データを記録するための記録媒体と、前記記録媒体に記録するデータを一時的に記憶可能なメモリと、前記記録媒体を複数の部分領域に分けて扱い、データを書き込む記録制御手段とによる記録方法であって、前記記録媒体の各部分領域について断片化の程度を取得するとともに、各部分領域について断片化の程度に応じたデータの書き込み可能速度を求める手順と、前記記録制御手段が、前記記録媒体の複数の部分領域のうち、書き込み可能速度が前記データの書き込み速度よりも高速な部分領域が存在する場合、その部分領域を選択して書き込みを行い、書き込み可能速度が前記データの書き込み速度よりも高速な部分領域が存在しない場合、前記データの書き込み速度よりも低速な部分領域を選択し、前記データを前記メモリに一時的に記憶した上で書き込みを行う手順とを有することを特徴とする。
本発明のプログラムは、記録媒体に記録するデータを一時的に記憶するメモリと、前記記録媒体を複数の部分領域に分けて扱い、前記メモリに記憶したデータを読み出して書き込む記録制御手段と、前記記録媒体の各部分領域について断片化の程度を取得するとともに、各部分領域について断片化の程度に応じたデータの書き込み可能速度を求める領域管理手段と、前記メモリの空き容量を取得する空き容量取得手段としてコンピュータを機能させ、前記記録制御手段は、前記データの書き込み速度と、前記メモリの空き容量と、前記記録媒体の各部分領域の書き込み可能速度とに応じて、前記記録媒体の部分領域を選択して書き込みを行うことを特徴とする。
本発明の別のプログラムは、記録媒体に記録するデータを一時的に記憶可能なメモリと、前記記録媒体を複数の部分領域に分けて扱い、データを書き込む記録制御手段と、前記記録媒体の各部分領域について断片化の程度を取得するとともに、各部分領域について断片化の程度に応じたデータの書き込み可能速度を求める領域管理手段としてコンピュータを機能させ、前記記録制御手段は、前記記録媒体の複数の部分領域のうち、書き込み可能速度が前記データの書き込み速度よりも高速な部分領域が存在する場合、その部分領域を選択して書き込みを行い、書き込み可能速度が前記データの書き込み速度よりも高速な部分領域が存在しない場合、前記データの書き込み速度よりも低速な部分領域を選択し、前記データを前記メモリに一時的に記憶した上で書き込みを行うことを特徴とする。
【発明の効果】
【００１３】
本発明によれば、ファイルシステムが断片化した状態でも記録時間が短くなるのを抑え、メモリカード等の記録媒体の空き領域を有効に利用することが可能となる。
【発明を実施するための最良の形態】
【００１４】
以下、添付図面を参照して、本発明の好適な実施形態について説明する。各実施形態では、本発明を適用した記録装置として機能するビデオカメラを例にして説明する。
（第１の実施形態）
図１は、第１の実施形態のビデオカメラ１００の構成を示すブロック図である。ビデオカメラ１００は、メモリカードメディアに対して撮影した動画像データを記録することができる。ビデオカメラ１００は、撮像部１０１、映像信号処理部１０２、フレームメモリ１０３、マイク１０４、音声信号処理部１０５、ＰＣＭバッファ１０６、ストリームバッファ１０７、メモリカードＩ／Ｆ１０８、メモリカード１０９、操作部１１０、表示部１１１、ＣＰＵ（中央演算処理装置）１１２、コーデック１１３、ファイルシステム１１４及び書き込み管理部１１５を備える。
【００１５】
撮像部１０１は、被写体像を捉えて電気信号に変換する。映像信号処理部１０２は、撮像部１０１で得られた映像信号にＡ／Ｄ変換及び適切な画像処理を施す。フレームメモリ１０３は、記録時、映像信号処理部１０２にて生成されたビデオフレームデータを格納する。マイク１０４は、外部の音声を取り込む。音声信号処理部１０５は、マイク１０４で得られた音声信号にＡ／Ｄ変換及び適切な信号処理を施す。ＰＣＭバッファ１０６は、記録時、マイク１０４から取り込んでＡＤ変換されたＰＣＭデータを格納する。ストリームバッファ１０７は、記録時、生成されたストリームを一時的に記憶（バッファリング）するものであり、本発明でいうメモリに相当する。
【００１６】
メモリカードＩ／Ｆ１０８は、メモリカード１０９に対して記録・再生を行う。メモリカード１０９は、本発明でいう記録媒体に相当するものである。操作部１１０は、ユーザからの操作を受け付けて、ビデオカメラ１００を操作するためのものである。表示部１１１は、不図示の液晶画面を有し、記録時は撮像部１０１によって取り込まれた映像、再生時は再生映像を表示する。また、ビデオカメラ１００に対する設定メニュー等或いは記録時間やバッテリ残量等の情報を表示する機能も有する。
【００１７】
ＣＰＵ１１２は、ソフトウェアによって各部の動作を制御する。コーデック（ＣＯＤＥＣ）１１３は、記録時、フレームメモリ１０３に格納されたビデオフレームデータ、及びＰＣＭバッファ１０６に格納されたＰＣＭデータに対して圧縮符号化を施し、メモリカード１０９に記録可能なデータ形式に変換する。ファイルシステム１１４は、メモリカード１０９にファイルアクセスするための機能を提供する。
【００１８】
書き込み管理部１１５は、ファイルシステム１１４と連携して動作し、カードの断片化の程度及びメモリカード１０９の性能情報からメモリカード１０９内の各部分領域について書き込み可能速度を算出する。データ書き込み要求があった場合には、データの記録ビットレート（書き込み速度）に応じてメモリカード１０９上の書き込み領域を決定する。
【００１９】
（ＳＤカードスピードクラスについて）
ビデオカメラ１００では、メモリカード１０９の種類としてＳＤ（secure digital）カードを採用しており、カードからスピードクラスに関する情報を取得して動画記録時の書き込み制御に利用する。
【００２０】
（記録時における書き込み領域の選択）
ビデオカメラ１００は、メモリカード１０９を複数のＡＵに分けて扱い、データを書き込むよう記録制御する。
【００２１】
記録時、書き込み管理部１１５は、以下のようにして書き込み領域の管理を行う。まず、各ＡＵについて断片化率を調べ、断片化率の大きさ順に並び替えてＡＵ情報テーブルとして保持する（図２を参照）。このとき、各ＡＵは、断片化率に応じて以下の３つに分類して管理される。なお、この処理が、本発明でいう領域管理手段の処理例である。
領域Ａ：リアルタイム書き込み可能な領域
スピードクラスにて規定される書き込み可能速度がストリームのビットレートｒ以上である
領域Ｂ：リアルタイム書き込み不可能な領域
スピードクラスにて規定される書き込み可能速度がストリームのビットレートｒ未満である
領域Ｃ：ＡＵ内に空きクラスタが存在しない領域
全てが使用済み領域のため書き込みが不可能な領域
【００２２】
上記ＡＵ情報テーブルは、記録中、カードへの書き込みが行われる毎に最新の状態に更新される。領域Ａは、従来技術においても記録可能とされていた領域である。領域Ｂは、従来技術において記録不可能とされていた領域であるが、本実施形態ではその一部又は全部が書き込み可能領域として使用される。領域Ａ内のあるＡＵがストリームの記録ビットレートｒよりも高速に書き込み可能な場合、このＡＵに書き込みを行うことでストリームバッファ１０７の空き容量は増加する。したがって、領域Ａ内の高速に書き込み可能なＡＵを使用してストリームバッファ１０７の空きを十分に確保しておけば、領域Ｂ内のＡＵに書き込みを行ってもバッファオーバーフローを生じることなく継続して記録することが可能になる。
【００２３】
以下、図３のフローチャートを参照して、第１の実施形態において記録時におけるメモリカード１０９への書き込みまでの手順を説明する。記録が開始されると、まず記録ビットレートｒを取得する（ステップＳ１０１）。
【００２４】
続いて、ＡＵ情報テーブルを更新する（ステップＳ１０２）。これは、カードのスピードクラスに関する情報及びＡＵ毎の断片化率を取得し、記録ビットレートｒと照らし合わせて各ＡＵを領域Ａ，Ｂ，Ｃに分類する処理である。
【００２５】
ここで、カード空き容量Ｃfreeがある一定値Ｃthを超えている場合（ステップＳ１０３でＹｅｓ）、記録を続行する。一方、カード空き容量Ｃfreeがある一定値Ｃth以下である場合（ステップＳ１０３でＮｏ）、記録を終了し（ステップＳ１１３）、ストリームバッファ１０７に蓄積されたストリームデータをカードに書き出す（ステップＳ１１４）。
【００２６】
カード空き容量Ｃfreeがある一定値Ｃthを超えている場合は、以下のような処理を行う。カードに対する最小の書き込み単位分だけストリームバッファ１０７にストリームデータが蓄積されていなければ、蓄積されるまで待機する（ステップＳ１０５）。本実施形態では、カード毎に規定されたＡＵサイズ分としている。
【００２７】
この時点でストリームバッファ１０７の空き容量Ｂfreeを確認する（空き容量取得）。バッファ空き容量Ｂfreeがある一定サイズ（所定の値）Ｂthを下回っている場合（ステップＳ１０６でＹｅｓ）、領域Ａが存在すれば（ステップＳ１０７でＹｅｓ）、領域Ａを書き込み対象に設定し（ステップＳ１０８）、ストリーム書き込みを実行する（ステップＳ１０９）。領域Ａは書き込み可能速度が高速な領域であるので、ストリームバッファ１０７の空き領域を増やすことが可能である。
【００２８】
一方、バッファ空き容量Ｂfreeがある一定サイズＢth以上である場合（ステップＳ１０６でＮｏ）、ストリームバッファ１０７に十分に空き領域が存在するため、領域Ａではなく、書き込み可能速度が低速な領域Ｂに対する書き込みを試みる。まず、領域Ｂが存在すれば（ステップＳ１１０でＹｅｓ）、領域Ｂを書き込み対象に設定する（ステップＳ１１１）。
【００２９】
ここで、領域Ｂに含まれる各ＡＵは、断片化の程度によって書き込み可能速度はまちまちである。したがって、現在のストリームバッファ１０７の空き容量Ｂfree、記録ビットレートｒという条件において、バッファオーバーフローを発生せずに書き込み可能となるＡＵが領域Ｂ内に存在するか否かを判定する（ステップＳ１１２）。
【００３０】
この判定は、以下のようにして行う。まず、ＡＵの一つにデータを記録した場合の記録後におけるストリームバッファ１０７の空き容量を見積もる。ｉ番目のＡＵをＡＵ(ｉ)と記すとして、ＡＵ(ｉ)の書き込み可能速度をｗ(ｉ)、ＡＵ(ｉ)内の空きクラスタの大きさをｃ(ｉ)と表記する。ＡＵ(ｉ)に対して書き込みを行った場合、ストリームバッファ１０７の蓄積量の増分Δｂ(ｉ)は、
Δｂ(ｉ)＝ｃ(ｉ)*（ｒ−ｗ(ｉ)）／ｗ(ｉ)・・・（１）
となる。
なお、この処理が、本発明でいう空き容量算出手段の処理例である。
【００３１】
そこで、ストリームバッファ１０７の全容量をＢtotal、αを一定量のマージンとして、
Ｂfree＋Δｂ(ｉ)＋α＜Ｂtotal・・・（２）
を満たすようなＡＵ(ｉ)が存在すれば、ＡＵ(ｉ)に書き込みを行ってもバッファオーバーフローを発生することがないと判断し（ステップＳ１１２でＹｅｓ）、該ＡＵ(ｉ)にストリーム書き込みを実行する（ステップＳ１０９）。
【００３２】
領域Ｂに書き込み可能なＡＵが存在しない場合（ステップＳ１１０でＮｏ或いはステップＳ１１２でＮｏ）、ステップＳ１０７に移って、領域Ａへの書き込みを試みる。
【００３３】
図４に、本実施形態における書き込み制御の様子を時系列のグラフにした特性図を示す。図中、特性線Ａは発生したデータ符号量、特性線Ｂはメモリカードに書き込み済みのデータ符号量を表している。特性線Ｃは、特性線Ａをバッファ容量Ｂtotal分だけ縦軸方向にずらしたもので、特性線Ｂと特性線Ｃとの縦軸方向の差分は、その時点におけるバッファ空き容量Ｂfreeを表している。同図に示すように、本実施形態では、バッファオーバーフローを起こさずに、書き込み可能速度が低速な領域Ｂをも有効に利用することが可能になっている。
【００３４】
一方で、図５に、領域Ａのみを書き込み領域として使用する従来技術における書き込み制御の様子を時系列のグラフにした特性図を示す。特性線Ａ〜Ｃは、図５における特性線Ａ〜Ｃと同様である。これら図４、５に示すように、本実施形態のほうが、断片化が発生したカードでの記録可能時間が長くなり、ユーザにとっての利便性を向上させることが可能になっている。
【００３５】
以上述べたように、記録媒体にストリームデータを記録するに際して、記録媒体のファイルシステムの断片化の程度に応じた書き込み速度を取得し、ストリームデータのビットレート及び記録前のストリームデータの一時バッファの空き容量に基づいて記録媒体上の書き込み対象領域を選択する。これにより、断片化によって書き込み速度が低下した領域を有効に利用することが可能となる。
【００３６】
（第２の実施形態）
次に、本発明の第２の実施形態について説明する。第２の実施形態のビデオカメラ１００の構成については第１の実施形態と同様であるため説明は省略する。ＡＵ情報テーブルの管理についても第１の実施形態と同様である。
【００３７】
以下、図６のフローチャートを参照して、第２の実施形態において記録時におけるメモリカード１０９への書き込みまでの手順を説明する。記録が開始されると、まず記録ビットレートｒを取得する（ステップＳ２０１）。
【００３８】
続いて、ＡＵ情報テーブルを更新する（ステップＳ２０２）。これは、カードのスピードクラスに関する情報及びＡＵ毎の断片化率を取得し、記録ビットレートｒと照らし合わせて各ＡＵを領域Ａ，Ｂ，Ｃに分類する処理である。
【００３９】
ここで、カード空き容量Ｃfreeがある一定値Ｃthを超えている場合（ステップＳ２０３でＹｅｓ）、記録を続行する。一方、カード空き容量Ｃfreeがある一定値Ｃth以下である場合（ステップＳ２０３でＮｏ）、記録を終了し（ステップＳ２１２）、ストリームバッファ１０７に蓄積されたストリームデータをカードに書き出す（ステップＳ２１３）。
【００４０】
カード空き容量Ｃfreeがある一定値Ｃthを超えている場合は、以下のような処理を行う。カードに対する最小の書き込み単位分だけストリームバッファ１０７にストリームデータが蓄積されていなければ、蓄積されるまで待機する（ステップＳ２０５）。本実施形態では、カード毎に規定されたＡＵサイズ分としている。
【００４１】
この時点でストリームバッファ１０７の空き容量Ｂfreeを確認する。バッファ空き容量Ｂfreeがある一定サイズＢthを下回っている場合（ステップＳ２０６でＹｅｓ）、領域Ａが存在すれば（ステップＳ２０７でＹｅｓ）、領域Ａを書き込み対象に設定し（ステップＳ２０８）、ストリーム書き込みを実行する（ステップＳ２０９）。領域Ａは書き込み可能速度が高速な領域であるので、ストリームバッファ１０７の空き領域を増やすことが可能である。
【００４２】
一方、バッファ空き容量Ｂfreeがある一定サイズＢth以上である場合（ステップＳ２０６でＮｏ）、ストリームバッファ１０７に十分に空き領域が存在する。そこで、領域Ｂが存在すれば（ステップＳ２１０でＹｅｓ）、領域Ｂを書き込み対象に設定し（ステップＳ２１１）、ストリーム書き込みを実行する（ステップＳ２０９）。ここで、一定サイズＢthは、領域Ｂへの書き込み速度が遅い場合でも十分に間に合うように大きめに設定されている。
【００４３】
領域Ｂに書き込み可能なＡＵが存在しない場合（ステップＳ２１０でＮｏ）、ステップＳ２０７に移って、領域Ａへの書き込みを試みる。
【００４４】
以上のようにすることで、第１の実施形態に比べて簡易な制御としながらも、書き込み速度が遅い領域を無駄なく使用することが可能になる。
【００４５】
（第３の実施形態）
図７は、第３の実施形態のビデオカメラ２００の構成を示すブロック図である。なお、図１に示した第１の実施形態のビデオカメラ１００と同様の構成要素には同一の符号を付し、その詳細な説明は省略する。ビデオカメラ２００は、メモリカードメディアに対して撮影した動画像データを記録することができる。ビデオカメラ１００は、撮像部１０１、映像信号処理部１０２、フレームメモリ１０３、マイク１０４、音声信号処理部１０５、ＰＣＭバッファ１０６、メモリカードＩ／Ｆ１０８、メモリカード１０９、操作部１１０、表示部１１１、ＣＰＵ（中央演算処理装置）１１２、コーデック１１３、ファイルシステム１１４、書き込み管理部１１５、フラッシュメモリ１１６及びＳＤＲＡＭ１１７を備える。
【００４６】
ＳＤＲＡＭ１１７は、記録時、生成されたストリームを一時的に記憶（バッファリング）する。フラッシュメモリ１１６は、ビデオカメラ２００にメモリカードが接続されていないときに映像データを記録するほか、生成されたストリームを一時的に記憶（バッファリング）するためにも用いる。このフラッシュメモリ１１６が、本発明でいう記録媒体に記録するデータを一時的に記憶可能なメモリに相当する。
【００４７】
（ＳＤカードスピードクラスについて）
ビデオカメラ２００では、メモリカード１０９の種類としてＳＤ（secure digital）カードを採用しており、カードからスピードクラスに関する情報を取得して動画記録時の書き込み制御に利用する。
【００４８】
（記録時における書き込み領域の選択）
ビデオカメラ１００は、メモリカード１０９を複数のＡＵに分けて扱い、データを書き込むよう記録制御する。
【００４９】
記録時、書き込み管理部１１５は、以下のようにして書き込み領域の管理を行う。まず、各ＡＵについて断片化率を調べ、断片化率の大きさ順に並び替えてＡＵ情報テーブルとして保持する（図２を参照）。このとき、各ＡＵは、断片化率に応じて以下の３つに分類して管理される。なお、この処理が、本発明でいう領域管理手段の処理例である。
領域Ａ：リアルタイム書き込み可能な領域
スピードクラスにて規定される書き込み可能速度がストリームのビットレートｒ以上である
領域Ｂ：リアルタイム書き込み不可能な領域
スピードクラスにて規定される書き込み可能速度がストリームのビットレートｒ未満である
領域Ｃ：ＡＵ内に空きクラスタが存在しない領域
全てが使用済み領域のため書き込みが不可能な領域
【００５０】
上記ＡＵ情報テーブルは、記録中、カードへの書き込みが行われる毎に最新の状態に更新される。領域Ａは、従来技術においても記録可能とされていた領域である。領域Ｂは、従来技術において記録不可能とされていた領域であるが、本実施形態ではその一部又は全部が書き込み可能領域として使用される。また、書き込みは領域Ａが優先して使用され、記録が進み、領域Ａがなくなった時点で領域Ｂが使用される。領域Ｂへの書き込みは記録ビットレートに対して書き込みが間に合わないため、ストリームデータを一旦フラッシュメモリに保持することで、書き込みが間に合わない分のデータをバッファリングするよう制御する。
【００５１】
以下、図８のフローチャートを参照して、第３の実施形態において記録時におけるメモリカード１０９への書き込みまでの手順を説明する。記録が開始されると、まず記録ビットレートｒを取得する（ステップＳ３０１）。
【００５２】
続いて、ＡＵ情報テーブルを更新する（ステップＳ３０２）。これは、カードのスピードクラスに関する情報及びＡＵ毎の断片化率を取得し、記録ビットレートｒと照らし合わせて各ＡＵを領域Ａ，Ｂ，Ｃに分類する処理である。
【００５３】
更新されたＡＵ情報テーブルに領域Ａが存在する場合（ステップＳ３０３でＹｅｓ）、ストリームデータの蓄積先をＳＤＲＡＭ１１７に設定する（ステップＳ３０４）。そして、ストリームデータが一定量蓄積されるのを待機した上で（ステップＳ３０５）、ストリームデータを領域Ａに書き込む（ステップＳ３０６）。その後、ステップＳ３０２に戻り、書き込みを行ったＡＵに関するＡＵ情報テーブルを更新して、以下同様の処理を繰り返す。
【００５４】
一方、領域Ａが存在しない場合、すなわち領域Ａを使い切ってしまった場合（ステップＳ３０３でＮｏ）、ストリームデータの蓄積先をフラッシュメモリ１１６に設定する（ステップＳ３０７）。これにより、エンコード・多重化されたストリームデータはフラッシュメモリ１１６上でバッファリングされるようになる。フラッシュメモリ１１６上では、ストリームデータはリングバッファとして管理され、断片化を発生することなくストリームデータをビットレートよりも高速に書き込むことが可能である。
【００５５】
ここで、ＡＵ情報テーブルを更新し（ステップＳ３０８）、領域Ｂが存在するか否かを調べる（ステップＳ３０９）。領域Ｂが存在するということは、カードに空き領域があるということなので、ストリームが一定量蓄積されるのを待機した上で（ステップＳ３１０）、ストリームを領域Ｂに書き込む（ステップＳ３１１）。そして、フラッシュメモリ１１６に空き領域が残っているか否かを確認し（ステップＳ３１２）、空き領域が残っていれば、ステップＳ３０８に戻って記録を続行する。カードに空き領域が残っていなければ（ステップＳ３０９でＮｏ）或いはフラッシュメモリ１１６に空き容量が残っていなければ（ステップＳ３１２でＮｏ）、記録を停止する（ステップＳ３１３）。
【００５６】
（記録可能時間の算出）
記録モードにおいてメモリカード１０９にデータを連続記録可能な時間の算出は、以下のようにして行う。なお、この処理が、本発明でいう記録可能時間算出手段の処理例である。
（１）領域Ａ
領域内の空きクラスタのサイズをＳａ、ストリームの記録ビットレートをｒとすると、
記録時間＝Ｓａ／ｒ・・・（３）
で求められる。
【００５７】
（２）領域Ｂ
ｉ番目のＡＵをＡＵ(ｉ)と記すとして、ＡＵ(ｉ)の書き込み可能速度をｗ(ｉ)、ＡＵ(ｉ)内の空きクラスタの大きさをｃ(ｉ)と表記する。ＡＵ(ｉ)に対して書き込みを行った場合、フラッシュメモリ１１６の蓄積量の増分Δｂ(ｉ)は、
Δｂ(ｉ)＝ｃ(ｉ)*（ｒ−ｗ(ｉ)）／ｗ(ｉ)・・・（４）
となる。
【００５８】
記録可能時間を長くするためには、高速に書き込み可能な領域から書き込んでいくのが望ましい。そこで、断片化率が少なく、相対的に高速に書き込み可能なＡＵから順に、上式（４）で求められる蓄積量の増分Δｂ(ｉ)の値を加算していき、フラッシュメモリ１１６の空き容量を超えない範囲で最大の値になったところまでを記録可能領域として設定する。
【００５９】
このようにして設定された記録可能領域の空き領域サイズをＳｂとすると、
記録時間＝Ｓｂ／ｒ・・・（５）
となる。
【００６０】
したがって、カード全体としての記録可能時間は、領域Ｂへの記録相当分も含め、上式（３）、（５）で求めた記録時間の和（Ｓａ＋Ｓｂ）／ｒとして算出され、表示部１１１に表示される。
【００６１】
可変ビットレートストリームとしてエンコードされている場合、被写体によって記録ビットレートが変化するため、必ずしも実際の記録可能時間は上記の見積もり通りにはならない。したがって、実際に記録を停止するか否かの判断は、フラッシュメモリ１１６の空き容量の大きさから判断する。
【００６２】
図９に、本実施形態における書き込み制御の様子を時系列のグラフにした特性図を示す。図中、特性線Ａは発生したデータ符号量、特性線Ｂはメモリカードに書き込み済みのデータ符号量を表している。図中の範囲Ｙ1では領域Ａに記録を行っているが、領域Ａがなくなった後の範囲Ｙ2では、領域Ｂに記録している。
【００６３】
一方で、図１０に、領域Ａのみを書き込み領域として使用する従来技術における書き込み制御の様子を時系列のグラフにした特性図を示す。これら図９、１０に示すように、本実施形態のほうが、断片化が発生したカードでの記録可能時間が長くなり、ユーザにとっての利便性を向上させることが可能になっている。
【００６４】
なお、ＳＤカードのようなフラッシュを用いたメモリカードの場合、読み込みの速度は書き込みに比べて高速であり、断片化による速度低下も書き込み時よりも小さい。したがって、本実施形態において領域Ｂに記録されたストリームデータを再生する場合でも、ストリームのビットレートに対して読み込みは高速であり、途切れのない滑らかな再生が可能である。
【００６５】
また、本実施形態において、フラッシュメモリ１１６をハードディスクに置き換えても成立する。
【００６６】
以上述べたように、記録媒体にストリームデータを記録するに際して、ファイルシステムの断片化が進んでリアルタイムでの書き込みができない場合、別の媒体に一時的にバッファリングしつつ記録を続行することで、記録可能時間を長くすることが可能になる。
【００６７】
なお、本発明の目的は、上述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体を、システム或いは装置に供給することによっても達成される。この場合、そのシステム或いは装置のコンピュータ（又はＣＰＵやＭＰＵ）が記憶媒体に格納されたプログラムコードを読み出し実行する。
【００６８】
この場合、記憶媒体から読み出されたプログラムコード自体が上述した実施形態の機能を実現することになり、プログラムコード自体及びそのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
【００６９】
プログラムコードを供給するための記憶媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、磁気テープ、不揮発性のメモリカード、ＲＯＭ等を用いることができる。
【００７０】
また、コンピュータが読み出したプログラムコードを実行することにより、上述した実施形態の機能が実現されるだけに限らない。例えば、そのプログラムコードの指示に基づき、コンピュータ上で稼動しているＯＳ（基本システム或いはオペレーティングシステム）等が実際の処理の一部又は全部を行い、その処理によって上述した実施形態の機能が実現されてもよい。
【００７１】
さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれる形態でもよい。この場合メモリに書き込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵ等が実際の処理の一部又は全部を行い、その処理によって上述した実施形態の機能が実現される。
【図面の簡単な説明】
【００７２】
【図１】第１の実施形態のビデオカメラの構成を示す図である。
【図２】ＡＵ情報テーブルを表す図である。
【図３】第１の実施形態において記録時におけるメモリカードへの書き込みまでの手順を説明するためのフローチャートである。
【図４】第１の実施形態において記録時における発生符号量とメモリカードへの書き込み済み符号量との関係を時系列で示す特性図である。
【図５】従来技術において記録時における発生符号量とメモリカードへの書き込み済み符号量との関係を時系列で示す特性図である。
【図６】第２の実施形態において記録時におけるメモリカードへの書き込みまでの手順を説明するためのフローチャートである。
【図７】第３の実施形態のビデオカメラの構成を示す図である。
【図８】第３の実施形態において記録時におけるメモリカードへの書き込みまでの手順を説明するためのフローチャートである。
【図９】第３の実施形態において記録時における発生符号量とメモリカードへの書き込み済み符号量との関係を時系列で示す特性図である。
【図１０】従来技術において記録時における発生符号量とメモリカードへの書き込み済み符号量との関係を時系列で示す特性図である。
【図１１】ＳＤカードにおけるスピードクラスの概念を説明するための図である。
【符号の説明】
【００７３】
１００、２００：ビデオカメラ
１０１：撮像部
１０２：映像信号処理部
１０３：フレームメモリ
１０４：マイク
１０５：音声信号処理部
１０６：ＰＣＭバッファ
１０７：ストリームバッファ
１０８：メモリカードＩ／Ｆ
１０９：メモリカード
１１０：操作部
１１１：表示部
１１２：ＣＰＵ（中央演算処理装置）
１１３：コーデック
１１４：ファイルシステム
１１５：書き込み管理部
１１６：フラッシュメモリ
１１７：ＳＤＲＡＭ
【図１】
2010020641.tif 000003
【図２】
2010020641.tif 000004
【図３】
2010020641.tif 000005
【図４】
2010020641.tif 000006
【図５】
2010020641.tif 000007
【図６】
2010020641.tif 000008
【図７】
2010020641.tif 000009
【図８】
2010020641.tif 000010
【図９】
2010020641.tif 000011
【図１０】
2010020641.tif 000012
【図１１】
2010020641.tif 000013