説明

記録装置

【課題】
画像データのデータレートに対応しない記録領域への書込みを防止する。
【解決手段】
メモリカード(24)がアクセス可能になると、領域管理部(32)は、メモリカード(24)の書込み性能情報とファイルシステムの断片化情報を取得し、メモリカード(24)内の領域毎に書込み可能速度を算出し、複数の速度クラスの何れかに分類する。ユーザによる「ファイン」、「ノーマル」又は「エコノミー」の選択に従い、領域管理部(32)は、画像データの記録先となるブロックを決定する。動画記録が開始されると、動画データは、記録先に選択されたブロックの未使用クラスタに書き込まれる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、画像データを記録する記録装置に関する。
【背景技術】
【0002】
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2000−267904号公報
【0004】
近年、メモリカード等のランダムアクセス記録媒体に動画や静止画などのデジタルデータを記録する装置が知られている(例えば、特許文献1参照)。この様に、ランダムアクセスの記録媒体に記録されたデータを管理する方式として、FAT(File Allocation Table)ファイルシステムがある。FAT方式では、記録媒体の記録単位の領域をテーブルで管理しており、データ書込み要求に対して、当該テーブルを参照して未使用領域を決定し、その未使用領域にデータを記録する。
【0005】
FAT方式では、ファイルの書込み・削除を繰り返していると、使用領域と未使用領域が混在してしまい、連続した空き領域が少なくなる状況(フラグメンテーションまたは断片化)が生じる。フラグメンテーションがあると、書込み速度が低下する。そのため、フラグメンテーションが著しい場合は、動画データなどの高速なデータを記録することができなくなる。
【0006】
また、近年では、記録可能なデータの最低速度を保証したメモリカードも登場している。
【発明の概要】
【発明が解決しようとする課題】
【0007】
前述のように、記録されるデータの最低速度を保証しているメモリカードを使った場合、断片化が進み、ホストが最低速度でのデータの記録ができないと判断すると、空き領域が残っていたとしてもデータの書き込みを禁止している。
【0008】
そのため、空き容量が残っていた場合であってもデータの書き込みができず、記録媒体が無駄になるという問題があった。
【0009】
本発明は、記録媒体の空き領域を効率的に使用してデータを記録することができる装置を提示することを目的とする。
【課題を解決するための手段】
【0010】
本発明に係る記録装置は、複数の記録領域を有する記録媒体に対してデータを記録する記録手段と、前記記録媒体に記録するデータの記録速度を設定する設定手段と、前記設定手段により設定された記録速度と、前記複数の記録領域に前記データを記録した場合の記録可能速度とに基づいて、前記記録手段を制御する制御手段とを備え、前記制御手段は、前記設定された記録速度でデータを記録可能な記録領域が前記記録媒体に無い場合、前記複数の記録領域のうち、前記設定された記録速度よりも低い記録可能速度の記録領域に対してデータを記録するように、前記記録手段を制御することを特徴とする。
【発明の効果】
【0011】
本発明によれば、記録媒体の空き領域を効率的に使用してデータを記録することができる。
【図面の簡単な説明】
【0012】
【図1】本発明の一実施例に係るデジタルカメラの概略構成ブロック図である。
【図2】動画モード切替えスイッチの正面図である。
【図3】動画記録モードのビットレート設定画面例である。
【図4A】マウント時の処理と記録処理を示すフローチャートである。
【図4B】マウント時の処理と記録処理を示すフローチャートである
【図5】メモリカードの使用状態の説明模式図である。
【図6】速度クラスの分類例である。
【図7】メモリカードの別の使用状態の説明模式図である。
【図8】本実施例の警告画面の表示例である。
【図9】本実施例の残存データの書込み処理を示すフローチャートである。
【発明を実施するための形態】
【0013】
以下、図面を参照して、本発明の実施例を詳細に説明する。
【実施例1】
【0014】
図1は、本発明の一実施例の概略構成ブロック図である。デジタルカメラ10の撮像部12は、CCDイメージセンサまたはCMOSイメージセンサ等を具備し、被写体光学像を電気信号に変換する。信号処理部14はA/D変換部(不図示)を具備し、撮像部12からの画像信号をデジタル画像データに変換する。メモリ16は、信号処理部14からのデジタル画像データを記憶する。また、メモリ16は、再生時においては、再生された画像データを記憶する。CPU18は、マイクロコンピュータなどを有し、不図示の不揮発メモリに記憶されたプログラムに従ってデジタルカメラ10の全体の動作を制御する。コーデック20は、記録時においては、メモリ16に記憶された画像データを公知のJPEG,或いはMPEG等の方式に従って符号化し、その情報量を圧縮して、メモリ16に記憶する。また、コーデック20は、再生時においては、再生された画像データを復号し、メモリ16に記憶する。
【0015】
本実施形態では、後述の様に、動画データを符号化する際の上限の記録レートが異なる複数のモードを持つ。コーデック20は、指定された記録レートに従い、符号化された動画データのデータレートが指定された上限のレートを超えない様に、動画データを圧縮、符号化する。
【0016】
カードI/F22は、記録時においては、メモリ16から圧縮された画像データを読み出し、メモリカード24に書き込む。また、カードI/F22は、再生時においては、メモリカード24から指定されたデータを読み出し、メモリ16に記憶する。メモリカード24は例えば不揮発性のフラッシュメモリであり、FAT方式でデジタルデータを記録する記録媒体である。また、メモリカード24は、マイクロコンピュータやカードI/F22と通信するためのインターフェイス、半導体メモリチップや、後述の書込み性能と断片化情報等のクラスタ情報を保持するレジスタを具備する。また、メモリカード24は、不図示の装着、排出機構により、デジタルカメラ10に対してユーザが容易に装着、排出することが可能である。
【0017】
操作部26は電源スイッチや撮影開始、停止を指示するスイッチ、モードを切り換えるためのスイッチ等、各種のボタン/キーあるいはダイヤルスイッチを具備する。ユーザは、操作部26を操作することにより、記録・再生等の各種の指示を入力することができる。表示部28は撮像部12に取り込まれた被写体像、及びメモリカード24内のデータの再生画像を表示する。また、表示部28は、動画記録モードや静止画記録モード等のメニュー画面も表示する。
【0018】
ファイルシステム30は、FAT方式に則り、メモリカード24に対して記録されるデータを管理する。ファイルシステム30は、カードI/F24に対して各種のコマンドや、書き込み、読み出しアドレス等を出力することにより、記録時にはメモリカード24にデジタルデータを書き込み、再生時には、メモリカード24からデータを読み出す。領域管理部32は不図示のメモリを有し、メモリカード24の領域をそれぞれ所定数のクラスタからなる複数のブロックに分割する。そして、領域管理部32は、メモリカード24に記録されたFATに基づいて、ブロック毎に使用済みクラスタ(データが記録されているクラスタ)と空きクラスタを管理する。ファイルシステム30は、クラスタ毎にアドレスを指定して、データの書き込み、読み出しを実行する。即ち、領域管理部32は、メモリカード24のファイルアロケーションテーブルとして機能する。
【0019】
図2及び図3を用いて、動作モードスイッチと設定画面を説明する。図2は、操作部26に装備される動作モードスイッチである。図3は、動画記録モードのビットレート設定画面例である。
【0020】
図2に示すように、動作モードスイッチは、切(電源オフ)、再生、静止画(静止画記録)及びムービー(動画記録)の選択肢を具備する。動作モードスイッチを切り替えることで、デジタルカメラ10の電源を切り、メモリカード24内の再生画像を再生し、又は、メモリカード24に静止画または動画を記録できる。また、動作モードスイッチでムービー(動画記録)を選択した状態でユーザが記録レートの変更を指示すると、図3に示す記録レート(記録速度)設定画面が表示される。
【0021】
図3に示す記録レート設定画面例では、「ファイン」、「ノーマル」及び「エコノミー」という3種類の画質又はデータレートが異なる画質モードが選択可能である。「ファイン」では、符号化された動画データのデータレートが8Mbpsになるようにコーデック20により符号化してメモリカード24に記録する。また、「ノーマル」では、符号化された動画データのデータレートが4Mbpsになるようにコーデック20により符号化してメモリカード24に記録する。一方、「エコノミー」では、符号化された動画データのデータレートが1.5Mbpsになるようにコーデック20により符号化してメモリカード24に記録する。動画記録モードは、デフォルト状態で「ノーマル」に設定されている。なお、このような記録レートを変更するための設定画面は、メニューから呼び出すことができる。
【0022】
ユーザは操作部26を操作することにより、これら三種類の記録モードのうちの所望の記録モードを選択し、設定することができる。
【0023】
静止画記録モードでも、動画と同様に、圧縮率、画質及び画素数の複数の選択肢のどれかを選択できる。
【0024】
図4Aは、本実施例における起動時の処理を示すフローチャートを示す。図3を参照して、カメラ10の起動時、及び、新たにメモリカード24が装着された際の処理を説明する。なお、図4Aに示す処理は、CPU18が各部を制御することにより実行される。
【0025】
動作モードスイッチを切(電源オフ)以外の場所に合わせると、デジタルカメラ10に電力が供給される。メモリカード24が装着された状態でデジタルカメラ10に電力が供給されるか、或いは、電源オンの状態で新たにメモリカード24が挿入されると、メモリカード24上のファイルシステムがマウントされる。マウントにより、デジタルカメラ10は、メモリカード24にアクセス可能な状態になる。
【0026】
アクセス可能な状態になると、領域管理部32は、ファイルシステム30に対して、メモリカード24のレジスタからメモリカード24のカード性能情報及びメモリカード24が持つ最低保証速度を取得するように指示する。ファイルシステム30は、カードI/F24に、メモリカード24のレジスタからメモリカード24のカード性能情報及びメモリカード24が持つ最低保証速度の情報を読み出させ、読み出したデータを領域管理部32に出力する(S401)。次に、領域管理部32は、メモリカード24のファイルシステムの断片化情報を取得する(S402)。取得されたカード性能及び断片化情報は、領域管理部32内のメモリに保持される(S403)。
【0027】
領域管理部32は、断片化情報及び書込み性能又は記録性能に応じて、メモリカード24のブロック毎に書込み可能速度又は記録可能速度を算出する(S404)。書込み可能速度が算出されると、領域管理部32は、各ブロックを速度クラスに分類する(S405)。そして、領域管理部32は、不図示の不揮発メモリに記憶された、現在設定されている記録レートの情報を取得する(S406)。そして、領域管理部32は、取得した記録レートの情報に基づいて、設定された記録レートでデータの記録可能なブロックが所定量よりも少ないか否か、すなわちその割合を判別する(S407)。即ち、メモリカード24の空き容量があるか否かを判別する。
【0028】
図5及び図6を参照して、各ブロックが複数の速度クラスに分類される様子を説明する。図5は、メモリカード24の使用状態の説明模式図を示す。斜線を付した記録領域は使用中である。図6(a)はメモリカード24の使用率の分布例を示し、図6(b)は、ブロックごとの使用率と速度クラスの分類例を示す。
【0029】
速度クラスに分類するにはまず、メモリカード24のデータ領域を一定サイズのブロックに分ける。次に各ブロック内の使用率を求める。使用率とは、対象となるブロック内部に使用済み領域がどれだけあるかを示す。この使用率が高いほど、そのブロックの書込み速度は遅いと判断できる。図5に示す例では、ブロック0は使用済み領域が無いので、使用率は0%である。ブロック1は3つ使用しているので、使用率30%と判断できる。同様にして、全ブロックに対する使用率を算出する。使用率の決定単位は、セクタでもクラスタでもよいが、もう少し大きく16KB又は32KBセクタなど、そのメモリカード24に最適なものを選ぶ方がよい。
【0030】
図6(a)を参照して、各ブロックの速度クラスの求め方を説明する。縦軸は書込み速度であり、横軸はブロックの使用率を示す。図6(a)に示す例では、使用率0〜20%は8Mbps以上の書込み速度が保証される領域である。使用率30%〜50%は4Mbps以上の書込み速度が保証される領域である。また、使用率60%〜80%は2Mbps以上の書込みが保証される領域である。
【0031】
説明例として、速度クラスは、大きく「低速」、「中速」及び「高速」に分類されることとし、使用率0〜20%を「高速」、使用率30〜50%を「中速」、使用率60%〜80%を「低速」に分類する。図6(a)に示す例では、図6(b)に示すように速度クラスを分類できる。
【0032】
速度クラスの分類は上記例に限定されず、1.5Mbps、3Mbps及び6Mbpsに分類しても良い。速度クラスは、メモリカード24の記録容量とFAT形式にも依存するので、速度クラスの組み合わせは1種類に限定されない。また、速度クラスとして「低速」、「中速」及び「高速」の3種類を設けているが、4種類以上設けてもよい。
【0033】
また、一つのブロックの全てのクラスタにデータが記録されていた場合、つまり、使用率100%の場合、そのブロックを速度クラスの分類から除外する。
【0034】
そして、CPU18は、メモリカード24の残量が無い場合には、図8(b)に示す警告画面を表示部28に表示する(S408)。例えば、現在設定されている記録レートがファインの場合、高速に分類されたブロックが所定数よりも少ない場合、残量がないものと判断する。或いは、現在設定されている記録レートがノーマルの場合、高速、或いは中速に分類されたブロックが所定数よりも少ない場合、残量が無いものと判断する。現在設定されている記録レートがエコノミーの場合、高速、中速、低速の全てのブロックが所定数よりも少ない場合、残量が無いものと判断する。
【0035】
また、メモリカード24の残量が残っている場合には、そのまま記録待機状態に移行する。
【0036】
次に、記録時の処理について説明する。図4Bは記録時における動作を示すフローチャートである。図4Bの処理は、CPU18が各部を制御することにより実行される。
【0037】
図2の動作モードスイッチが動画モードに設定された場合、撮像部12より撮影された動画データに係る被写体の動画像が表示部28に表示され、撮影待機状態となる。この状態でユーザが操作部26を操作して、撮影を指示すると、コーデック20は、記録開始の指示があった時点からメモリ16に記憶された動画データの符号化を開始し、メモリ16に記憶する。CPU18は、動画撮影の指示があると、ファイルシステム30に対し、動画データの記録を指示する。ファイルシステム30は、動画の記録指示があると、動画データを含む動画ファイルを作成するために必要なコマンドと、動画ファイルを書き込むための先頭アドレス、書き込みコマンドをカードI/F24に出力する。そして、カードI/F22は、メモリ16に記憶された動画データを読み出し、順次、メモリカード24の指定されたアドレスに動画ファイルとして書き込む。
【0038】
このとき、領域管理部32は、現在設定されている記録レートに基づいて、設定されている記録レートで動画を記録可能なブロックの何れかのセクタのアドレスを書き込みアドレスとして指定する。
【0039】
例えば、「ファイン」が選択された場合、「高速」のブロックの未使用クラスタを書き込みアドレスとして指定する。また、「ノーマル」の場合、「高速」又は「中速」のブロックのうちの何れかのアドレスを指定する。「エコノミー」の場合、「高速」、「中速」又は「低速」のブロックの何れかのアドレスを指定する。更に、設定された記録モードで動画を記録可能なブロックの速度が複数ある場合、低い速度のブロックから先に記録するものとする。
【0040】
この様に、ファイルシステム30は、動画の撮影中、所定量の符号化された動画データがメモリ16に記憶される度に、カードI/F24に対して書き込みコマンドを発行する。そして、ファイルシステム30は、カードI/F24から、1回の書き込みコマンドに対するデータの書き込みが完了した旨の応答があると、領域管理部32に対し、今回、動画ファイルを書き込んだアドレス(セクタ)の情報を出力する。
【0041】
その後、繰り返し動画ファイルの記録を続け、ユーザが操作部26を操作して、記録停止を指示すると、CPU18は、コーデック20に対して符号化停止を指示すると共に、ファイルシステム30に対して動画の記録停止を指示する。ファイルシステム30はカードI/F22に対して、動画ファイルのクローズを指示する。
【0042】
この様に、動画撮影中の1回の書き込みコマンドによる動画データの書き込みが完了する(S409)。すると、領域管理部32は、ファイルシステム30から受け取った書き込みアドレス(クラスタ)に基づいて、メモリに記憶した、各ブロックにおける空きセクタの情報を更新する。そして、更新結果と、設定された速度クラスの情報とに基づいて、各ブロックの断片化情報を更新すると共に(S410)、書き込み可能な速度クラスの分類も更新する(S411)。領域管理部32は、更新後の各ブロックの速度クラスに基づいて空き容量を算出し、領域管理部32内のメモリの空き容量情報を書き換える(S412)。そして、領域管理部32は、動画の記録中に空き容量が無くなるか、或いは、決められたデータ量よりも少なくなると、その旨をCPU18に知らせる。CPU18は、領域管理部32からの信号に基づいて、メモリカード24の空き容量が残っているか否かを判別する(S413)。ここでは、未記録クラスタを有するブロックのうち、設定されている記録レートで動画を記録可能なブロックの残りを検出し、残りのブロックが所定数よりも少なくなったかどうかを判別する。例えば、設定されている記録レートがノーマルの場合、先に中速のブロックに対して動画を記録する。その後、全ての中速ブロックに対して動画を記録すると、次に、高速のブロックに動画を記録する。そして、高速のブロックが無くなると、空き容量が無いものと判断する。
【0043】
空き容量が残っている場合、CPU18は、操作部26より記録停止の指示があったかどうかを判別し(S414)、記録停止の指示があった場合にはコーデック20、カードI/F22、ファイルシステム30に対し、記録停止を指示する(S415)。また、記録停止の指示がない場合には、S409に戻り、記録を続ける。
【0044】
一方、CPU18は、空き容量が無くなったと判断すると、未記録クラスタを有するブロックのうち、現在記録中のブロックの速度よりも低速なブロックが残っているか否かを判別する(S416)。例えば、記録モードがファインであり、高速のブロックに動画を記録しているときに、この高速のブロックが無くなった場合、中速或いは低速のブロックで空き領域があるかどうかを判別する。図7を用いて説明すると、ブロック1,5,7が「中速」ブロックであり、使用率はそれぞれ30%、50%、40%である。ブロック6が「低速」ブロックであり、使用率は70%である。図6に示す例では、ブロック3→ブロック7→ブロック5→ブロック6の順に書込み速度が速いので、この順に記録先に決定して、動画データの書込みを継続する(S419)。ただし、これらのブロック7,5,6は、「ファイン」の書込み速度を保証しているものではないので、書込みが追いつかず、動画記録が停止してしまう恐れがある。そこで、ユーザに図8(a)に示すような警告を表示することで、動画記録を継続しながらメモリカードの交換を促す(S420)。
【0045】
例えば、記録モードがノーマルであり、中速のブロックに動画を記録しているときに、この中速のブロックが無くなった場合、低速のブロックで空き領域があるかどうかを判別する。そして、低速のブロックのうち、クラスタの使用率が低いブロック、即ち未記録クラスタが多く残っているブロックから先に指定して、動画を記録する。
【0046】
記録可能ブロックが残っていない場合、CPU18は、操作部26より記録停止の指示があったかどうかを判別し(S414)、記録停止の指示があった場合にはコーデック20、カードI/F22、ファイルシステム30に記録停止を指示する(S417)。そして、CPU18は、表示部28に対し、図8(b)に示す警告画面を表示する。
【0047】
この様に、低速なブロックに対して動画を記録している状態では、符号化されてメモリ16に蓄積される動画データのレートよりもメモリカード24への記録レートの方が低い。そのため、メモリ16に対して蓄積される未記録の動画データのデータ量が除々に増加する。そして、最終的にメモリ16に記憶しきれなくなった時点で、CPU18は、コーデック20、カードI/F22、ファイルシステム30に対し、記録停止を指示する。
【0048】
図9を参照して、S414で、記録停止の指示があったときにデジタルカメラ10の内部に残存するデータの書込み方法を説明する。記録停止の指示があったときに、メモリ16に残っている未記録の動画データのデータ量を算出する(S901)。現在のデータを書き込んでいるブロックの使用率、その他の書込み可能なブロック、及び、ステップS901で算出したデータ量をもとに、書き込み先のブロックを選定し(S902)、データを書き込む(S903)。
【0049】
例えば、現在、書込み先に指定しているブロックの使用率が20%である「高速」領域であるとし、その他の書込み可能なブロックに使用率50%の「中速」と使用率80%の「低速」のものがあるとする。残りのデータをそのまま現在、指定しているブロックに書くほうが書込み時間は短くて済む。しかし、使用率が上がり、「中速」の領域になってしまうと、次に「ファイン」動画を書き込む場合に使用できなくなってしまう。そこで、残りのデータを使用率80%の「低速」ブロックに切り替えることで、「高速」ブロックを無駄にすることなくデータの書込みを終えることができる。ただし、「低速」ブロックに書き込むことで、動画再生に支障をきたす恐れがあると判断される場合、書込み先を使用率50%の「中速」ブロックに切り替えても良く、「低速」ブロックの中でも使用率の低いものを選定してもよい。
【0050】
また、現在、書込み先に指定しているブロックにステップS901で算出したデータが書ききれない場合、次に書込み先に指定するブロックを、「高速」ブロックのものから選ぶのではなく、「低速」ブロックから選ぶようにする。これにより、「高速」ブロック又は「中速」ブロックを残すことができる。
【0051】
このようにして、本実施例では、動画記録に適した記録領域が無くなっても、次に信頼性の高い領域を探し出して書込みを継続するので、ユーザの意図しない動画記録の停止を防止できる。
【0052】
また、本発明は、以下の処理を実行することによっても実現される。即ち、上記実施形態の機能を実現するソフトウエア(プログラム)をネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(又はCPUやMPU等)がプログラムコードを読み出して実行する処理である。この場合、そのプログラム、および該プログラムを記憶した記憶媒体は本発明を構成することになる。


【特許請求の範囲】
【請求項1】
複数の記録領域を有する記録媒体に対してデータを記録する記録手段と、
前記記録媒体に記録するデータの記録速度を設定する設定手段と、
前記設定手段により設定された記録速度と、前記複数の記録領域に前記データを記録した場合の記録可能速度とに基づいて、前記記録手段を制御する制御手段とを備え、
前記制御手段は、前記設定された記録速度でデータを記録可能な記録領域が前記記録媒体に無い場合、前記複数の記録領域のうち、前記設定された記録速度よりも低い記録可能速度の記録領域に対してデータを記録するように、前記記録手段を制御することを特徴とする記録装置。
【請求項2】
前記記録媒体は複数のクラスタから構成され、前記複数の記録領域はそれぞれ所定数の前記クラスタを有し、
前記制御手段は、前記複数の記録領域それぞれにおける未記録クラスタの割合に基づいて前記複数の記録領域それぞれの記録可能速度を検出し、前記設定された記録速度でデータを記録可能な記録領域が前記記録媒体に無い場合、前記設定された記録速度よりも低い記録可能速度の記録領域のうち、未記録クラスタの割合が高いものから先にデータを記録するように、前記記録手段を制御することを特徴とする請求項1に記載の記録装置。
【請求項3】
前記制御手段は、前記設定された記録速度でデータを記録可能な記録領域が前記記録媒体に無く、前記設定された記録速度よりも低い記録可能速度の記録領域も無い場合、前記記録媒体に対するデータの記録を停止するように、前記記録手段を制御することを特徴とする請求項1または2に記載の記録装置。
【請求項4】
前記設定された記録速度でデータを記録可能な記録領域が前記記録媒体に無く、前記記録手段が前記設定された記録速度よりも低い記録可能速度の記録領域に対してデータを記録した場合に、所定の警告を表示する表示手段を備えたことを特徴とする請求項1から3の何れか1項に記載の記録装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4A】
image rotate

【図4B】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate


【公開番号】特開2012−19372(P2012−19372A)
【公開日】平成24年1月26日(2012.1.26)
【国際特許分類】
【出願番号】特願2010−155389(P2010−155389)
【出願日】平成22年7月8日(2010.7.8)
【出願人】(000001007)キヤノン株式会社 (59,756)
【Fターム(参考)】