(57)【要約】【課題】  断片化による記録可能領域の減少を防ぎ、かつ記録停止を防ぐ。【解決手段】  入力されたストリームデータを記憶するメモリと、前記メモリに記憶されたストリームデータを記録媒体に記録する記録手段と、前記記録媒体における複数の部分領域それぞれの断片化の程度を測定する測定手段と、所定値よりも大きな断片化率の部分領域を選択して書き込む第１のモードと、前記所定値以下の断片化率の部分領域を選択して書き込む第２のモードとを制御する制御手段とを備え、前記制御手段は、記録開始後に最初に供給されたストリームデータの書き込みには状況に応じて前記第１および第２のモードを切り替えて適用し、前記最初の書き込みを完了した後、記録終了までの書き込みには前記第２のモードを適用することを特徴とする。【選択図】  図１
2016009411.tif 000002
【特許請求の範囲】
【請求項１】
入力されたストリームデータを記憶するメモリと、
前記メモリに記憶されたストリームデータを記録媒体に記録する記録手段と、
前記記録媒体における複数の部分領域それぞれの断片化の程度を測定する測定手段と、
所定値よりも大きな断片化率の部分領域を選択して書き込む第１のモードと、前記所定値以下の断片化率の部分領域を選択して書き込む第２のモードとを制御する制御手段とを備え、
前記制御手段は、記録開始後に最初に供給されたストリームデータの書き込みには状況に応じて前記第１および第２のモードを切り替えて適用し、前記最初の書き込みを完了した後、記録終了までの書き込みには前記第２のモードを適用することを特徴とする記録装置。
【請求項２】
記録終了指示後、前記メモリに記憶されたストリームデータの全てを前記記録媒体に書き込むよりも前の時点で次の記録開始指示を受けてストリームデータの供給を開始することが可能であり、
(i+1)番目の記録開始後、(i+1)番目の記録によって生成されたストリームデータが前記メモリに所定量蓄積された時点でi番目の記録によって生成されたストリームデータのうち、前記メモリに蓄積されていて前記記録媒体に書き込まれる前のデータの量に応じて、(i+1)番目の記録による最初のストリームデータに対して、前記第１のモードと前記第２のモードとを切り替えて適用することを特徴とする請求項１に記載の記録装置。
【請求項３】
記録開始時に前記記録媒体に対する前記ストリームデータの書き込みを前記第１のモードで行う場合、書き込み対象となる前記部分領域の断片化率に応じて書き込みを開始するタイミングを変化させることを特徴とする請求項１に記載の記録装置。
【請求項４】
記録開始時に前記記録媒体に対する前記ストリームデータの書き込みを前記第１のモードで行う場合、前記メモリに蓄積されているストリームデータの量が所定の閾値を超えた時点を書き込み開始タイミングとし、書き込み対象となる前記部分領域の断片化率に応じて前記閾値を設定することで書き込み開始タイミングを変化させることを特徴とする請求項３に記載の記録装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、記録装置に関する。
【背景技術】
【０００２】
近年、メモリカードなど、ファイルシステムを搭載した記録媒体に対してファイルとして動画や静止画を記録するデジタルカメラやデジタルビデオカメラが広く普及してきている。このような機器では種々のファイルに対するランダムアクセスが可能であるため、従来のテープ式カムコーダのような記録メディアに対して利便性が向上している。
【０００３】
メモリカード等で一般的に用いられているNAND 型フラッシュメモリにおいて、１回の書き込み要求で書き換え可能な最小単位はページと呼ばれている。書き込み済みのページを上書きするには事前に消去を行う必要があるが、消去はページよりも大きなブロックと呼ばれる単位でしか行えない。
【０００４】
したがって、ブロックサイズが大きなメモリに対して小さなサイズの書き込みを行った場合、書き換えたいのはブロック内部の一部のページのみであるにも関わらず、ブロック全体のデータを読み出し、更新された部分のみ書き換えたうえでブロック全体を消去して書き戻すという動作が必要になるため、ブロック単位の大きなサイズの書き込みに比べて速度が低下する。このような内部的にコピーを伴う書き込み動作は引越し書き込みと呼ばれる。さらに、近年のフラッシュメモリの大容量化に伴い、ブロックサイズが大きくなってきていることから、小さな単位の書き込み速度は大きな単位の書き込みに比べて相対的に低下する傾向にある。
【０００５】
こうした書き込み速度の低下はビデオカメラのように継続して記録を行う必要のある機器において問題である。特に、ファイルシステム上の記録領域割り当て状況の断片化が進んだ状態になると、書き込み単位が小さくなり、結果として書き込み速度が低下してしまう。データのビットレートより記録メディアへの書き込みの平均レートが下回ると記録を続行できなくなってしまう。
【０００６】
このような問題に対し、特許文献１では、メモリカードの書き込み領域の割り当てのために記録領域を所定のサイズの管理領域を単位として管理し、管理領域内の未書き込み領域の割合に応じて書き込み速度を予測することで、所望の記録レートの書き込みが可能な前記管理領域を選択的に割り当てるようなホスト機器が提案されている。このような制御を行うことで、ファイルシステムの断片化が進んだ領域を含む状態のメモリカードに対しても安定した記録を可能としている。
【０００７】
しかし、このような制御を行う機器でも以下のような問題が存在する。例えば、ビデオカメラにおいて、特許文献１のように所定サイズの管理単位(ＡＵ: Allocation Unit)の未使用領域割合に応じて書き込み領域を選択する場合を考える。図２(a)はあるメモリカードに短時間の記録を３回行った後の記録領域の状況を示している。図中の「書き込み１」、「書き込み２」および「書き込み３」は３回の記録によって発生した書き込みを表している。動画記録中は断片化の発生していない ＡＵ を割り当てて動画を記録するためにこのような結果となる。また、斜線部分はファイルシステム上は未使用であるが、一部が使用済みとなった ＡＵ 上にあるために高速な書き込みができず、動画記録に使用できなくなった領域である。
【０００８】
このように、一般に特許文献１の方法によって動画などのストリームデータの記録を行うと、断片化していないＡＵが選択的に消費されるため、記録後に残される断片化した ＡＵ 内の空き領域はストリームデータの書き込みには使用できなくなる。
【０００９】
一方、図２(b)は 同図(a) よりも ＡＵ サイズが大きいメモリカードにおいて、同様に短い記録を３回行った後の状況を示している。ＡＵ サイズが大きいと、図中斜線部分、すなわち動画記録に使用できない領域が大量に発生してしまうことが分かる。このように特に ＡＵ サイズが増大している近年のメモリカードでは、記録を繰り返すだけで記録可能容量が実際の記録データ量以上に大きく減少してしまうという問題が存在する。
【００１０】
この問題に対して、特許文献２では記録終了時の最後のデータについては断片化した領域に書き込むことで断片化を抑制するという方法が提示されている。特許文献２では、メモリカードに書き込む前にストリームデータをバッファリングしておき、記録が終了した時点でバッファリングされているデータについては断片化の発生しているＡＵ に記録を行うというものである。これによって、記録する毎に最後の書き込みで断片化したＡＵを使用するので、断片化が進みにくく、記録可能領域が大きく減少することを防ぐことが可能となる。
【先行技術文献】
【特許文献】
【００１１】
【特許文献１】特開２００６−２８５６６９号公報
【特許文献２】特開２００９−０６４３８６号公報
【発明の概要】
【発明が解決しようとする課題】
【００１２】
しかし、特許文献２の方法をビデオカメラに適用する場合に問題となるのが以下の点である。
【００１３】
ビデオカメラではユーザが望んだ瞬間を映像として確実に記録するために、応答性に優れていることが求められる。そのため、記録停止指示がなされてストリームデータを書き終わるよりも前に次の記録開始指示がなされる場合でも、遅延なく記録処理を実行する必要がある。しかし、特許文献２の方法を適用している場合、断片化した領域を選択して書き込み速度が低下している状態で次の記録を開始することになるため、メモリカードへの書き込みが間に合わなくなる恐れがある。
【００１４】
したがって、ＡＵ の断片化による無駄な空き領域の増加を抑えながら確実なストリームデータの記録を行い、かつ記録終了直後の極端な応答性の低下を防止するような記録装置が求められていた。
【００１５】
本発明は、断片化による記録可能領域の減少を防ぎ、かつ応答性の低下やバッファオーバーフローによる記録停止を防ぐことを目的とする。
【課題を解決するための手段】
【００１６】
本発明に係る記録装置の構成は、入力されたストリームデータを記憶するメモリと、前記メモリに記憶されたストリームデータを記録媒体に記録する記録手段と、前記記録媒体における複数の部分領域それぞれの断片化の程度を測定する測定手段と、所定値よりも大きな断片化率の部分領域を選択して書き込む第１のモードと、前記所定値以下の断片化率の部分領域を選択して書き込む第２のモードとを制御する制御手段とを備え、前記制御手段は、記録開始後に最初に供給されたストリームデータの書き込みには状況に応じて前記第１および第２のモードを切り替えて適用し、前記最初の書き込みを完了した後、記録終了までの書き込みには前記第２のモードを適用することを特徴とする。
【発明の効果】
【００１７】
本発明によれば、断片化による記録可能領域の減少を防ぎ、かつ応答性の低下やバッファオーバーフローによる記録停止を防ぐことが可能となる。
【図面の簡単な説明】
【００１８】
【図１】記録装置の構成図である
【図２】記録媒体の使用状況を説明する図である。
【図３】ＡＵを説明する図である。
【図４】スピードクラス制御を説明する図である。
【図５】ＡＵ管理テーブルを説明する図である。
【図６】データバッファを説明する図である。
【図７】データバッファの状況を示す図である。
【図８】書き込み制御を示すフローチャートである。
【図９】書き込み制御を示すフローチャートである。
【発明を実施するための形態】
【００１９】
［実施例］
以下では、本発明の実施形態について説明する。図１は本実施形態が適用されるビデオカメラ１００の構成を示したものである。ビデオカメラ１００は、メモリカード１１２に対して撮影した動画データを記録することができる。
【００２０】
ビデオカメラ１００は撮像部１０１、映像信号処理部１０２、フレームメモリ１０３、マイク１０４、音声信号処理部１０５、ＰＣＭバッファ１０６、ＶＩＤＥＯコーデック（ＣＯＤＥＣ）１０７，ＡＵＤＩＯＣＯＤＥＣ１０８，多重化（ＭＵＸ）処理部１０９、空き領域管理部１１０，メモリカード Ｉ／Ｆ １１１、メモリカード１１２、操作部１１３、表示部１１４、CPU（中央演算処理装置）１１５、ファイル管理部１１６、ファイルシステム１１７およびデータバッファ１１８から成る。
【００２１】
図１において、撮像部１０１は被写体像を捉えて電気信号に変換するものである。映像信号処理部１０２は撮像部１０１で得られた映像信号にＡ／Ｄ変換および適切な画像処理を施すものである。フレームメモリ１０３は記録時、映像信号処理部にて生成されたビデオフレームデータを格納するものである。マイク１０４は外部の音声を取り込むものであり、音声信号処理部１０５はマイク１０４で得られた音声信号にＡ／Ｄ変換および適切な信号処理を施すものである。ＰＣＭバッファ１０６は記録時、マイク１０４から取り込んでＡＤ変換されたＰＣＭデータを格納するものである。
【００２２】
ＶＩＤＥＯコーデック（ＣＯＤＥＣ）１０７は記録時、フレームメモリ１０３に格納されたビデオフレームデータに対して圧縮符号化を施しビデオストリームとして出力するものである。ＡＵＤＩＯＣＯＤＥＣ１０８はＰＣＭバッファ１０６に格納されたＰＣＭデータに対して圧縮符号化を施し、オーディオストリームを出力するものである。多重化（ＭＵＸ）処理部１０９はＶＩＤＥＯＣＯＤＥＣ１０７が出力するビデオストリームとＡＵＤＩＯ ＣＯＤＥＣ１０８が出力したオーディオストリームを多重化し、ＡＶストリームとして出力するものである。
【００２３】
メモリカードI/F１１１は装着されたメモリカード１１２に対して読み書きを行うものであり、メモリカード１１２はビデオカメラ１００で撮影した動画像データを記録するものである。操作部１１３はユーザからの操作を受け付けて、ビデオカメラ１００を操作するためのものである。表示部１１４は液晶画面（図示しない）を有し、記録時は撮像部１０１によって取り込まれた映像、再生時は再生映像を表示するものである。またビデオカメラ１００に対する設定メニュー等あるいは記録時間やバッテリ残量等の情報を表示する機能も有する。
【００２４】
ＣＰＵ（中央演算処理装置）１１５はソフトウェアによって各部の動作を制御するものである。ファイル管理部１１６は記録時、ファイルレベルの書き込みを制御するものである。ファイルシステム１１７はメモリカード１１２に対するファイルレベルのアクセスを提供するものである。データバッファ１１８は記録時、生成されたＡＶストリームを格納するバッファである。データバッファ１１８でＡＶストリームをバッファリングすることで、ビデオカメラ１００は記録終了時に全てのデータ書き込みが完了していなくても、次回の記録を開始することができる。
【００２５】
図６はデータバッファ１１８のイメージを表したものである。データバッファ１１８はＡＶストリームに対する先入れ先出し方式のバッファとして動作し、多重化処理部１０９から入力されたストリームデータをメモリカードＩ／Ｆ１１１に受け渡す。
【００２６】
ＳＤカードでは、リアルタイムデータを破綻なく記録可能とするためにスピードクラスというものを規定している。スピードクラスについて図３および４を用いて説明する。スピードクラスでは図３のようにカード上の記録領域をＡＵ(Allocation Unit)と呼ばれる単位で区切り、各ＡＵに対して断片化の程度を測定することが規定されている。具体的にはＡＵはＦＡＴにおけるクラスタサイズの整数倍となっており、ＡＵにおけるFATの使用済みクラスタの割合が断片化率となる。
【００２７】
ＡＵの断片化率に応じて、そのＡＵ内の空きクラスタへの最低書き込み速度が規定されており、書き込むデータのビットレートより高速な書き込みが可能なＡＵに対して選択的に書き込みを行うことで、リアルタイムデータを確実にカードに記録することが可能となっている。
【００２８】
以下で図４を用いて具体例を説明する。あるカードでは、図中に示すようにＡＵ内の空きクラスタの割合が１００％ならば６MB/sec 、７５％ならば４MB/sec、５０％ならば２MB/sec、２５％ならば１MB/secでの書き込みが可能である。したがって、ビットレート3MB/sec のストリームをリアルタイムに記録する場合、空きクラスタの割合が１００％、あるいは７５％の領域を使用することで、バッファオーバーフローを発生させることなく記録を継続することが可能である。
【００２９】
ビデオカメラ１００では、メモリカード１１２の種類としてＳＤカードを採用しており、カードからスピードクラスに関する情報を取得して動画記録時の書き込み制御に利用する。
【００３０】
（記録時における書き込み領域の選択）
記録時、空き領域管理部１１０は以下のようにして書き込み領域の管理を行う。まず、各ＡＵについて断片化率を調べ、断片化率の大きさ順に並び替えてＡＵ情報テーブルとして保持する（図５）。このとき、各ＡＵは断片化率に応じて以下の３つに分類して管理される。
【００３１】
領域Ａ：リアルタイム書き込み可能な領域
スピードクラスにて規定される書き込み速度がストリームのビットレート r 以上である
領域Ｂ：リアルタイム書き込み不可能な領域
スピードクラスにて規定される書き込み速度がストリームのビットレート r 未満である
領域Ｃ：ＡＵ内に空きクラスタが存在しない領域
全てが使用済み領域のため書き込みが不可能な領域
上記ＡＵ情報テーブルは記録中、カードへの書き込みが行われる毎に最新の状態に更新される。
【００３２】
以下では、定常記録中および記録開始時のそれぞれについて、メモリカード１１２へのＡＶストリームデータ書き込み制御の詳細を説明する。
【００３３】
（定常記録中の書き込み制御）
定常記録中の書き込み処理の流れを図８に示す。ＡＶストリームデータの書き込みは常にクラスタサイズの整数倍で行われ、書き込み位置がＡＵ境界に達する毎に（図８Step1 Yes）空き領域管理部１１０はＡＵ管理テーブルから領域Ａに属するＡＵを割り当てる（同図Step2）。引き続き、データバッファ１１８にバッファリングされたＡＶストリームデータをメモリカードに書き込む（同図Step3）。このようにすることで、定常記録中に確実に記録を継続することを可能としている。
【００３４】
（記録開始時の書き込み制御）
空き領域管理部１１０は記録開始時点でデータバッファ１１８に直前の記録による未書き込みのＡＶストリームデータが残っている場合、データバッファ１１８に余裕がないと判断し、空き領域の割り当て方法を切り替える処理を行う。
【００３５】
例えば、１回目の記録完了後、すぐに２回目の記録開始操作を行った場合、ストリームバッファ１１８には図７示すように、１回目と２回目の記録で生成された未書き込みのストリームデータが蓄積された状態となる。データバッファ１１８には１回目の記録によるストリームデータＤ１、２回目の記録で生成された未書き込みのストリームデータＤ２が存在する。以下、Ｄ１の大きさをＳ１、Ｄ２の大きさをＳ２とする。
【００３６】
記録開始後、ストリームデータの書き込みを開始するために最低限必要な蓄積量をＳｔｈとする。Ｓｔｈの値はストリームデータの多重化の最小単位などに基づいて決められる。２回目の記録によるストリームデータＤ２がＳｔｈだけ蓄積された時点で、Ｓ１が０でない場合は、少なくともＤ１の書き込みが完了するまでＤ２の書き込み開始は遅延されることになる。この場合、データバッファ１１８には遅延された分だけ多くのデータがバッファリングされた状態となり、バッファオーバーフローの可能性が高くなるため、空き領域管理部１１０はＤ２に対して領域Ａを割り当てる。
【００３７】
一方、Ｓ１が０の場合はデータバッファ１１８の空きに余裕があるため、空き領域管理部１１０はＤ２に対して領域Ｂを割り当てる。
【００３８】
なお、領域Bを割り当てた場合、割り当てられた領域の使用率が大きいほど書き込み速度が遅くなり、バッファオーバーフローの可能性が高くなる。このことを考慮して、使用率が大きいほど書き込み開始タイミングを早くするよう制御する。すなわち、Ｓ２が選択された領域BのＡＵ内の空き領域サイズに達した時点で書き込みを開始する。一方、領域Aを割り当てた場合は、Ｄ１の書き込みが完了し、Ｓ２が選択された領域AのＡＵ内の空き領域サイズに達した時点で書き込みを開始する。
【００３９】
以上の流れを図９のフローチャートに示す。すなわち、２回目の記録開始後、Ｓ２がＳｔｈに達するのを待機し（同 Step1）、この時点でＳ１が０ならば（同Step2 Yes）、空き領域管理部１１０はＤ２に対して領域Bを割り当てる（同Step3）。割り当てられた領域BのＡＵ内の空きクラスタ数Ｎｆｒｅｅを求め（同 Step4）、この値より書き込み開始時のＤ２蓄積量Ｓ２ｔｈを求める（同Step8）。Ｓ２ｔｈはクラスタサイズをＳｃｌとして、Ｓ２ｔｈ＝Ｎｆｅｅ×Ｓｃｌで求められる。後はＤ２がＳ２ｔｈに達するのを待機し（同Step9）、ストリームデータの書き込みを開始する（同Step10）。
【００４０】
一方で、Ｓ２がＳ２ｔｈに達した時点でＳ１が０でなかった場合（同Step2 No）、空き領域管理部１１０はＤ２に対して領域Aを割り当てる（同Step5）。そしてＤ１の書き込み完了を待機して（同Step6）、割り当てられた領域AのＡＵ内の空きクラスタ数Ｎｆｒｅｅを求める（同 Step7）。以降のＤ２の書き込み開始まで制御は領域Bを割り当てた場合と同様である。
【００４１】
以上のようにすることで、ＡＵ の断片化による無駄な空き領域の増加を抑えながら確実なストリームデータの記録を行い、かつ連続して記録を繰り返したような場合にも応答性の低下を最低限に抑えたビデオカメラを提供することが可能となる。
【符号の説明】
【００４２】
１００  ビデオカメラ、１１２  メモリカード、１０１  撮像部、
１０２  映像信号処理部、１０３  フレームメモリ、１０４  マイク、
１０５  音声信号処理部、１０６  ＰＣＭバッファ、
１０７  ＶＩＤＥＯコーデック（ＣＯＤＥＣ）、１０８  ＡＵＤＩＯ ＣＯＤＥＣ、
１０９  多重化（ＭＵＸ）処理部、１１０  空き領域管理部、
１１１  メモリカードＩ／Ｆ、１１２  メモリカード、１１３  操作部、
１１４  表示部、１１５  ＣＰＵ（中央演算処理装置）、
１１６  ファイル管理部、１１７  ファイルシステム、１１８  データバッファ
【図１】
2016009411.tif 000003
【図２】
2016009411.tif 000004
【図３】
2016009411.tif 000005
【図４】
2016009411.tif 000006
【図５】
2016009411.tif 000007
【図６】
2016009411.tif 000008
【図７】
2016009411.tif 000009
【図８】
2016009411.tif 000010
【図９】
2016009411.tif 000011