(57)【要約】      （修正有）【課題】無駄な空きクラスタの発生を抑制しながら、連続して撮影した静止画ファイルを記憶媒体に記録することを可能にする。【解決手段】撮像部により静止画ファイルが生成されるたびに、各静止画ファイルの記録単位の最大整数倍のデータを、独立した中間ファイルとしてメモリカードに記録する。その静止画ファイルの後端に位置しＲＵのサイズに満たない端数データをバッファ領域内に格納する。中間ファイルを記録中に、バッファ領域内にＲＵサイズ分のデータが格納された場合、或いは、予め設定された条件が満たされた場合、当該バッファ領域内のＲＵサイズのデータを独立した端数データファイルとしてメモリカードに記録する。静止画の連続撮像が終了したとき、メモリカードに記録された中間ファイルそれぞれに、端数データファイル内の該当する端数データを格納しているクラスタを結合することで、完成された静止画ファイルを生成する。【選択図】図１
2015216539.tif 000002
【特許請求の範囲】
【請求項１】
撮像手段と、
前記撮像手段により得られた静止画データを含む静止画ファイルを、所定のファイルシステムに従って記録媒体に書き込む記録手段と、
前記記録媒体における、前記所定のファイルシステムに規定された記録単位の整数倍のサイズを書き込み単位として前記静止画ファイルの書き込みを行うように、前記記録手段を制御する制御手段と、
メモリとを備え、
前記制御手段は、連続して複数の画面の静止画データを前記記録媒体に記録する所定の記録モードにおいて、一つの前記静止画ファイルについて、前記静止画ファイルのサイズ以下で、前記書き込み単位の整数倍の最大値となる第１のデータと、前記静止画ファイルのうち前記第１のデータを除いた第２のデータとを生成し、前記第１のデータを含む第１のファイルを前記記録媒体に書き込むように前記記録手段を制御するとともに、前記第２のデータを前記メモリに記憶し、前記所定の記録モードにおける静止画データの記録中に、前記メモリに記憶された、複数の前記静止画ファイルから生成された前記第２のデータのサイズが前記書き込みサイズに達したことに応じて、複数の前記静止画ファイルから生成された前記第２のデータを含む第２のファイルを記録するように前記記録手段を制御し、
前記所定の記録モードにおける静止画データの記録が終了した後、複数の前記第１のファイルそれぞれに対し、前記第２のファイルに格納された前記第２のデータを結合することにより、複数の静止画ファイルを生成する制御を行い、
更に、予め設定した所定の条件を満たした場合には、前記メモリ内の前記第２のデータのサイズが前記書き込みサイズに達したか否かにか関わらず、当該メモリ内のデータを前記第２のファイルとして前記記憶媒体に記録する
ことを特徴とする撮像装置。
【請求項２】
撮像手段と、
前記撮像手段により得られた静止画データを含む静止画ファイルと、前記撮像手段により得られた動画データを含む動画ファイルとを、所定のファイルシステムに従って記録媒体に書き込む記録手段と、
前記記録媒体における、前記所定のファイルシステムに規定された記録単位の整数倍のサイズを書き込み単位として書き込みを行うように、前記記録手段を制御する制御手段と、
メモリとを備え、
前記制御手段は、前記動画データの記録中における静止画の記録指示に応じて、前記記録指示に応じて記録する一つの静止画ファイルについて、前記静止画ファイルのサイズ以下で、前記書き込み単位の整数倍の最大値となる第１のデータと、前記静止画ファイルのうち前記第１のデータを除いた第２のデータとを生成し、前記動画ファイルの書き込みを停止して前記第１のデータを含む第１のファイルを前記記録媒体に書き込み、前記第１のファイルの書き込み終了後に前記動画ファイルの書き込みを再開するように前記記録手段を制御するとともに、前記第２のデータを前記メモリに記憶し、前記動画データの記録中に前記メモリに記憶された、複数の前記静止画ファイルから生成された前記第２のデータのサイズが前記書き込みサイズに達したことに応じて、複数の前記静止画ファイルから生成された前記第２のデータを含む第２のファイルを記録するように前記記録手段を制御し、
前記動画データの記録が終了した後、複数の前記第１のファイルそれぞれに対し、前記第２のファイルに格納された前記第２のデータを結合することにより、複数の静止画ファイルを生成する制御を行い、
更に、予め設定した所定の条件を満たした場合には、前記メモリ内の前記第２のデータのサイズが前記書き込みサイズに達したか否かにか関わらず、当該メモリ内のデータを前記第２のファイルとして前記記憶媒体に記録することを特徴とする撮像装置。
【請求項３】
前記第２のファイルを前記記録媒体に記録する際に要する期間をＴ，動画像の符号化ビットレートをＴｒ、動画像のストリームを一時的に保存するバッファの容量をＣとしたとき、
Ｔｒ×Ｔ＜Ｃを満たす場合
を前記所定の条件とすることを特徴とする請求項２に記載の撮像装置。
【請求項４】
前記所定の条件は、以下のいずれかの条件項目が満たされる場合である
(i).連写動作が終了した場合、
(ii).直前の静止画撮影から予め設定した所定時間が経過した場合、
(iii).所定枚数撮影した場合
(iv).記録可能な静止画枚数が０になった場合
(v).バッテリ残量が所定残量以下になった場合
ことを特徴とする請求項１乃至３の何れか１項に記載の撮像装置。
【請求項５】
前記記憶媒体はメモリカードであることを特徴とする請求項１乃至４のいずれか１項に記載の撮像装置。
【請求項６】
撮像装置におけるプロセッサに読み込ませ実行させることで、前記撮像装置を請求項１乃至５のいずれか１項に記載の撮像装置として機能させるためのプログラム。
【請求項７】
請求項６に記載のプログラムを格納した、コンピュータが読み取り可能な記憶媒体。
【請求項８】
撮像手段と、前記撮像手段により得られた静止画データを含む静止画ファイルを、所定のファイルシステムに従って記録媒体に書き込む記録手段と、メモリとを備える撮像装置の制御方法であって、
制御手段が、前記記録媒体における、前記所定のファイルシステムに規定された記録単位の整数倍のサイズを書き込み単位として前記静止画ファイルの書き込みを行うように、前記記録手段を制御する制御工程とを有し、
当該制御工程は、
連続して複数の画面の静止画データを前記記録媒体に記録する所定の記録モードにおいて、一つの前記静止画ファイルについて、前記静止画ファイルのサイズ以下で、前記書き込み単位の整数倍の最大値となる第１のデータと、前記静止画ファイルのうち前記第１のデータを除いた第２のデータとを生成し、前記第１のデータを含む第１のファイルを前記記録媒体に書き込むように前記記録手段を制御するとともに、前記第２のデータを前記メモリに記憶し、前記所定の記録モードにおける静止画データの記録中に、前記メモリに記憶された、複数の前記静止画ファイルから生成された前記第２のデータのサイズが前記書き込みサイズに達したことに応じて、複数の前記静止画ファイルから生成された前記第２のデータを含む第２のファイルを記録するように前記記録手段を制御し、
前記所定の記録モードにおける静止画データの記録が終了した後、複数の前記第１のファイルそれぞれに対し、前記第２のファイルに格納された前記第２のデータを結合することにより、複数の静止画ファイルを生成する制御を行い、
更に、予め設定した所定の条件を満たした場合には、前記メモリ内の前記第２のデータのサイズが前記書き込みサイズに達したか否かにか関わらず、当該メモリ内のデータを前記第２のファイルとして前記記憶媒体に記録する
ことを特徴とする撮像装置の制御方法。
【請求項９】
撮像手段と、前記撮像手段により得られた静止画データを含む静止画ファイルと、前記撮像手段により得られた動画データを含む動画ファイルとを所定のファイルシステムに従って記録媒体に書き込む記録手段と、メモリとを備える撮像装置の制御方法であって、
制御手段が、前記記録媒体における、前記所定のファイルシステムに規定された記録単位の整数倍のサイズを書き込み単位として書き込みを行うように、前記記録手段を制御する制御工程とを有し、
当該制御工程は、
前記動画データの記録中における静止画の記録指示に応じて、前記記録指示に応じて記録する一つの静止画ファイルについて、前記静止画ファイルのサイズ以下で、前記書き込み単位の整数倍の最大値となる第１のデータと、前記静止画ファイルのうち前記第１のデータを除いた第２のデータとを生成し、前記動画ファイルの書き込みを停止して前記第１のデータを含む第１のファイルを前記記録媒体に書き込み、前記第１のファイルの書き込み終了後に前記動画ファイルの書き込みを再開するように前記記録手段を制御するとともに、前記第２のデータを前記メモリに記憶し、前記動画データの記録中に前記メモリに記憶された、複数の前記静止画ファイルから生成された前記第２のデータのサイズが前記書き込みサイズに達したことに応じて、複数の前記静止画ファイルから生成された前記第２のデータを含む第２のファイルを記録するように前記記録手段を制御し、
前記動画データの記録が終了した後、複数の前記第１のファイルそれぞれに対し、前記第２のファイルに格納された前記第２のデータを結合することにより、複数の静止画ファイルを生成する制御を行い、
更に、予め設定した所定の条件を満たした場合には、前記メモリ内の前記第２のデータのサイズが前記書き込みサイズに達したか否かにか関わらず、当該メモリ内のデータを前記第２のファイルとして前記記憶媒体に記録する
ことを特徴とする撮像装置の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、撮像した静止画像を不揮発性の記憶媒体へ記録する技術に関するものである。
【背景技術】
【０００２】
従来、メモリカードなどの記録媒体に動画や静止画を記録する撮像装置が知られている（例えば、特許文献１参照）。動画データは単位時間当たりのデータ量が多い。そこで、ＳＤカードなどのフラッシュメモリカードでは、スピードクラスが規定されている。スピードクラスでは、フラッシュメモリにおける複数のクラスタに対応した、ＡＵ（allocation Unit)，或いはＲＵ(Recording Unit)といった単位でデータの書き込みを行うことにより、データの書き込み速度が保証される。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０００−２６７９０４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
デジタルカメラでは、動画の撮影中に静止画の撮影を行う機能を持つものが登場している。静止画データのデータ量は動画に比べて少ない。そのため、動画撮影中に静止画を記録する場合、スピードクラスによる記録を一旦停止し、クラスタ単位で静止画データを書き込む。
【０００５】
しかしながら、スピードクラスによる書き込みから、一旦、クラスタ単位での書き込みに切り替え、再度、スピードクラスに戻る場合、切り替えに時間がかかってしまう。そこで、切り替えの間、動画を保持しておくための大容量のバッファメモリが必要になる。
【０００６】
また、静止画をスピードクラスに従って書き込むようにすれば、書き込み方式を切り替えることなく、動画の撮影中に静止画を記録することが可能となる。しかしながら、スピードクラスは、ＡＵ或いはＲＵの単位での書き込みになる。ＡＵはＲＵを包含する関係にあり、ＲＵは一般にメモリカードにおけるファイルシステムのクラスタサイズよりも大きい。従って、ＡＵあるいはＲＵ単位に、連続して撮像した個々の静止画ファイルを記録する場合には、メモリカードには無駄な空き領域が発生する。
【０００７】
本発明は、上記問題点に鑑みなされたものであり、無駄な空きクラスタの発生を抑制しながら、連続して撮影した静止画ファイルを記憶媒体に記録することを可能ならしめる技術を提供しようとするものである。
【課題を解決するための手段】
【０００８】
この課題を解決するため、例えば本発明の撮像装置は以下の構成を備える。すなわち、
撮像手段と、
前記撮像手段により得られた静止画データを含む静止画ファイルを、所定のファイルシステムに従って記録媒体に書き込む記録手段と、
前記記録媒体における、前記所定のファイルシステムに規定された記録単位の整数倍のサイズを書き込み単位として前記静止画ファイルの書き込みを行うように、前記記録手段を制御する制御手段と、
メモリとを備え、
前記制御手段は、連続して複数の画面の静止画データを前記記録媒体に記録する所定の記録モードにおいて、一つの前記静止画ファイルについて、前記静止画ファイルのサイズ以下で、前記書き込み単位の整数倍の最大値となる第１のデータと、前記静止画ファイルのうち前記第１のデータを除いた第２のデータとを生成し、前記第１のデータを含む第１のファイルを前記記録媒体に書き込むように前記記録手段を制御するとともに、前記第２のデータを前記メモリに記憶し、前記所定の記録モードにおける静止画データの記録中に、前記メモリに記憶された、複数の前記静止画ファイルから生成された前記第２のデータのサイズが前記書き込みサイズに達したことに応じて、複数の前記静止画ファイルから生成された前記第２のデータを含む第２のファイルを記録するように前記記録手段を制御し、
前記所定の記録モードにおける静止画データの記録が終了した後、複数の前記第１のファイルそれぞれに対し、前記第２のファイルに格納された前記第２のデータを結合することにより、複数の静止画ファイルを生成する制御を行い、
更に、予め設定した所定の条件を満たした場合には、前記メモリ内の前記第２のデータのサイズが前記書き込みサイズに達したか否かにか関わらず、当該メモリ内のデータを前記第２のファイルとして前記記憶媒体に記録することを特徴とする。
【発明の効果】
【０００９】
本発明によれば、無駄な空きクラスタの発生を抑制しながら、連続して撮影した静止画ファイルを記憶媒体に記録することが可能になる。
【図面の簡単な説明】
【００１０】
【図１】第１の実施形態における画像処理装置１００の概略構成を示すブロック図。
【図２】メモリカードのファイルシステムにおけるファイルの断片化と速度低下を説明するための図。
【図３】メモリカードにおけるスピードクラスの概念を説明する図。
【図４】第１の実施形態に係る静止画連続撮影処理の概要を示す図。
【図５】第１の実施形態に係る端数クラスタ情報の一例を示す図。
【図６】第１の実施形態に係る、ファイル結合の一例を示す図。
【図７】一般的なＤＣＦ画像ファイル構造を模式的に示す図。
【図８】第１の実施形態に係るマウント処理のフローチャート。
【図９】第１の実施形態に係る静止画連続撮影処理のフローチャート。
【図１０】第１の実施形態に係る静止画撮影処理のフローチャート。
【図１１】第１の実施形態に係る端数クラスタデータ処理のフローチャート。
【図１２】第１の実施形態に係る端数クラスタデータ結合処理のフローチャート。
【図１３】第２の実施形態に係る動画記録処理のフローチャート。
【図１４】第２の実施形態に係るストリームデータ書込み処理のフローチャート。
【図１５】第２の実施形態に係る動画ファイル保存処理のフローチャート。
【図１６】第１の実施形態に係る緊急端数クラスタ書き込み処理のフローチャート。
【図１７】第１の実施形態に係る緊急端数クラスタ書き込み時の端数クラスタ情報を示す図。
【図１８】第１の実施形態に係るシャットダウン処理のフローチャート。
【発明を実施するための形態】
【００１１】
以下、添付図面を参照して、本発明の実施形態を説明する。なお、本発明の技術的範囲は、特許請求の範囲によって確定されるのであって、以下の個別の実施形態によって限定されるわけではない。また、実施形態の中で説明されている特徴の組み合わせすべてが、本発明に必須とは限らない。
【００１２】
実施形態の説明に先立ち、メモリカードについて考察する。ハードディスクなどの記憶装置に採用されているファイルシステムでは、ファイルの書込みと削除を繰り返していると、使用領域と未使用領域が混在してしまい、書込まれたファイルが分断される。空き領域もまた、分断されるので、連続した大きな空き領域を確保するのが難しい。これは一般に、フラグメンテーション、或いは断片化と呼ばれる現象である。ファイルの断片化は、アクセス速度の低下を招くので、動画記録などのリアルタイム性が要求され、かつ、単位時間当たりに書き込むデータ量が大きい場合に問題となる。
【００１３】
フラッシュメモリを使用するメモリカードに上記ファイルシステムを適用した場合にも、断片化によるアクセス速度の低下が起こりうる。フラッシュメモリは、書き換え回数に制限があり、消去単位（書き換えの単位サイズ）がハードディスクのそれと比較して大きい（数キロバイト〜数十キロバイトのブロック単位）ことから、ハードディスクとは異なる対応が必要となる。
【００１４】
図２（Ａ），（Ｂ）を参照して、簡単に説明する。一般にフラッシュメモリの消去単位又は書き換え単位（以下、単に記録単位という）は、上述のファイルステムの空き領域管理単位（クラスタサイズ）よりも大きい。図２（Ａ）に示す例は、フラッシュメモリの記録単位が、ファイルシステムの管理単位であるクラスタの４倍のサイズを有する例を示している。図２（Ｂ）では、記録領域Ａに記録されるデータに変更を加えることで、記録領域Ｂに書き換える場合を図示している。すなわち、図２（Ａ）が書き換え前の状態を示し、同（Ｂ）が書き換え中と書き換え後の状態を示している。
【００１５】
図２（Ａ）では、記録領域Ａ内に未使用クラスタと使用済みクラスタが混在している。記録領域Ａの論理アドレスは、０ｘ１０００００から０ｘ１３ｆｆｆｆ（「０ｘ」は１６進数を示している）に設定されている。ここで、論理アドレス０ｘ１１００００から始まるクラスタ２に新データを書込む必要が生じたとする。フラッシュメモリでは、記録領域Ａに対する部分的な上書きが不可能であるので、カード内部で、データの移動と論理アドレスの割当の変更が行なわれる。即ち、記録領域Ａの記憶データ（旧データ）を読み出して新データと合成し、記録領域Ａとは物理的に異なる位置にある記録領域Ｂに書込む。そして、記録領域Ａに割り当てていた論理アドレス０ｘ１０００００から０ｘ１３ｆｆｆｆを記録領域Ｂに割り当てる。論理アドレス０ｘ１１００００に書込まれるべきデータは、実際には記録領域Ｂのクラスタ２’に書込まれることになる。記録領域Ａのクラスタ１，３のデータは、それぞれ領域Ｂのクラスタ１’，３’にコピーされる。つまり、本来、新データは１つのクラスタに書き込むだけで良いはずが、図示の場合、領域Ａ内の他の２つ（クラスタ１、３）のコピーを行うための記録が必要となる。このような書き換え時の内部的なコピー動作が、書込み速度の低下を招く。勿論、物理アドレスで見ても断片化が進行することになる。読み込みについては、断片化していても上記のようなコピー動作を伴わないので、速度低下はごくわずかである。
【００１６】
近年、フラッシュメモリを使用するメモリカードでは、フラグメンテーションによる速度低下を考慮に入れた、最低記録保証レートを規定するものが現れている。例えば、ＳＤカードでは、動画に代表されるリアルタイムデータを破綻なく記録可能とするためのスピードクラスが規定されている。
【００１７】
図３を参照して、そのスピードクラスを説明する。メモリカード上の記録領域３０１をＡＵ（Ａｌｌｏｃａｔｉｏｎ Ｕｎｉｔ）と呼ばれる単位で区切り、各ＡＵに対して断片化の程度を測定する。ＡＵの大きさは、メモリカード内部のフラッシュメモリの記録単位に合わせてカード毎に決められている。また、スピードクラスを適用した記録におけるリアルタイムデータの最小記録単位を、ＲＵ（Ｒｅｃｏｒｄｉｎｇ Ｕｎｉｔ）と呼ぶ。ＲＵは、上述のクラスタサイズの整数倍と定められている。ＲＵ内の全クラスタが未使用クラスタである場合、そのＲＵを未使用ＲＵ３０３として扱う。また、ＲＵ内のクラスタが１つでも使用されている場合、そのＲＵを使用済みＲＵ３０４として扱う。
【００１８】
ＡＵは複数個のＲＵからなる。ＡＵを構成する全てのＲＵの中における使用済みＲＵの割合に応じて、そのＡＵ内の未使用ＲＵへの最低記録速度が規定されている。使用済みＲＵの割合が低いほど、高速に記録が可能となる。記録データのビットレートよりも高速に記録可能なＡＵを選択することで、リアルタイムデータを確実にカードに記録することが可能となる。例えば、図３のＡＵ３０２は、未使用ＲＵ３０３と使用済みＲＵ３０４の割合が等しく、ＲＵ率が５０％となる。また、ＡＵ内の空きＲＵ率が１００％の場合に書込み可能速度は符号３０５に示すごとく６ＭＢ／ｓｅｃに設定されているものとする。同様に、７５％の場合に符号３０６に示すように４ＭＢ／ｓｅｃ、５０％の場合に符号３０７に示すように２ＭＢ／ｓｅｃ、２５％の場合に符号３０８のように１ＭＢ／ｓｅｃと設定されている。このメモリカードに、今、ビットレート３ＭＢ／ｓｅｃのストリームをリアルタイムに記録する場合、未使用ＲＵの割合が１００％又は７５％の領域を使用することで、ストリームデータのビットレートでの記録が破綻せず継続できることになる。
【００１９】
ここで、動画画像のストリームデータを記録中に、静止画を記録する場合について考察する。動画像は、実時間でストリームを記録することが求められるので、スピードクラスで記録することが望まれるのは理解できよう。一方、静止画は、撮像した静止画ファイルを単に記録すれば良い。また、静止画のファイルサイズは、ＡＵまたはＲＵの整数倍となることは期待できない。従って静止画を記録する場合には、フラグメントを回避する意味でも、スピードクラスによるストリームデータの記録を一時停止し、クラスタ単位で記録する通常書込みで行うことが望ましい。従って、静止画記録を終えた場合、再度スピードクラスに移行し、動画像のストリームデータの記録を再開することになろう。
【００２０】
しかし、Ｓｅｃｕｒｅ Ｄｉｇｉｔａｌ Ｓｐｅｃｉｆｉｃａｔｉｏｎｓ Ｐｈｙｓｉｃａｌ Ｌａｙｅｒ Ｓｐｅｃ． Ｖｅｒｓｉｏｎ ４．１０によると、スピードクラスに移行するのに最大１秒かかると規定されている。即ち、ストリームデータの記録を再開した時点で、スピードクラスに移行中にもストリームデータは転送されるため、期待するビットレートでの記録が継続できない可能性がある。
【００２１】
静止画ファイルをスピードクラスで記録することも考えられるが、この場合、ＡＵまたはＲＵ単位の記録となる。仮に、静止画ファイルが８０ＫＢのサイズ、ＲＵが６４ＫＢ、クラスタサイズが１６ＫＢである場合を考察する。この場合、ファイルシステム上では、５クラスタを利用することになるものの、スピードクラスでは２つのＲＵに記録することになるので、次の静止画ファイルを記録するまでの間に、ファイルシステム上に３クラスタ分の空き領域が発生する。つまり、記録媒体の連続するアドレス空間において、静止画ファイル間に空きクラスタが発生し、フラグメントの発生の要因となる。従って、この記憶媒体を利用するほど、ファイルの断片化が急激に進行し、高速に記録可能なＡＵやＲＵが短時間に少なくなっていくということになる。
【００２２】
本実施形態では、このような問題点を解決する例を説明する。以下、各実施形態を説明する。
【００２３】
＜第１の実施形態＞
先ず、本第１の実施形態の概要を簡単に説明すると、次の通りである。本第１の実施形態では、撮像部を有する画像処理装置（撮像装置）に適用するものであり、所謂、デジタルカメラ、デジタルビデオカメラ、撮像機能を有する携帯端末に適用可能である。そして、この装置は、撮像部で撮像して得られた静止画像から静止画像ファイルを生成する生成部と、生成された静止画ファイルを前記記憶媒体に記録する記録制御部を有する。そしてこの記録制御部は、メモリカードにおけるファイルシステムの最小記録単位であるクラスタを複数内包し、少なくとも前記記憶媒体の記録単位である１ブロック分の容量のバッファメモリ（又はＲＡＭなどのメモリにバッファ領域として確保する）を有する。そして、記録制御部は、撮像部により連続して静止画を撮像して静止画ファイルが生成されるたびに、その静止画ファイルのサイズ以下であってブロックの容量の最大整数倍のデータを、独立した中間ファイルとしてメモリカードに記録すると共に、その静止画ファイルの後端に位置しブロックのサイズに満たない端数データをバッファメモリ内（又はバッファ領域内）の該当するクラスタ領域に格納する。そして、記録制御部は、メモリカード内に中間ファイルを記録中に、バッファメモリ内（又はバッファ領域内）にブロック分のデータが格納された場合、当該ブロック内のデータを独立した端数データファイルとしてメモリカードに記録する。また、より確実性を増すため、予め設定した条件を満たす場合には、バッファメモリ内（又はバッファ領域内）にブロック分のデータが格納されてなくても、端数データファイルとしてメモリカードに記録する。この静止画の連続撮像の終了後、記録制御部は、メモリカードに記録された中間ファイルそれぞれに、端数データファイル内の該当する端数データを格納しているクラスタを結合することで、完成された静止画ファイルを生成する。以下、係る点の具体例を説明する。
【００２４】
図１は、第１の実施形態に係る画像処理装置１００の概略構成を示すブロック図である。画像処理装置１００は、撮影した動画または静止画などのファイルをメモリカード１１０に記録するデジタルカメラ（撮像装置）でもある。
【００２５】
メモリカード１１０は、ＡＵまたはＲＵ単位でのアクセスが可能なスピードクラスモードとクラスタ単位でのアクセスが可能な通常モードの二つの機能を有し、脱着可能な半導体の不揮発性記録媒体である。
【００２６】
撮像素子１０１は、光電変換により入射光量に応じた電荷を生成して出力するＣＭＯＳセンサであり、全画素の信号を読み出す以外に、特定の画素の加算及び特定の行又は列おきに間引いて電荷を読み出すこともできる。撮像素子駆動回路１０２は、ＣＰＵ（プロセッサ）１１４による制御に基づいて、動画モードまたは静止画モードで撮像素子１０１を駆動することができる。画像処理回路１０３は、撮像素子１０１からの画像信号をＡ／Ｄ変換し、ガンマ補正、色バランス調整及び色変換等の所定の画像処理を施す。画像メモリ１０４は、画像処理回路１０３からの動画または静止画の画像データを表示用及び記録処理用に一時記憶するのに使用される。
【００２７】
マイク１０５は、外部の音声を取り込み、音声信号を出力する。音声処理回路１０６は、マイク１０５からの音声信号をＡ／Ｄ変換し、ＰＣＭ符号化方式で符号化する。ＰＣＭバッファ１０７は、音声処理回路１０６からのＰＣＭ音声データを記録処理用に一記記憶する。
【００２８】
画像変換回路１１５は、動画記録時には、画像メモリ１０４に格納される動画の画像データとＰＣＭバッファ１０７に格納されるＰＣＭ音声データを圧縮符号化及び多重化し、所定形式のストリームデータを生成する。生成されたストリームデータは、ストリームバッファ１０８に格納する。また、画像変換回路１１５は、静止画記録時には、画像メモリ１０４に格納される静止画の画像データを圧縮符号化し、ＪＰＥＧ画像データを生成する。生成されたＪＰＥＧ画像データは、静止画バッファ１０９に格納する。更に、画像変換回路１１５は、再生モードで、メモリカード１１０から読み出されたストリームデータの圧縮画像データ及び圧縮音声データを伸長（復号）する。
【００２９】
静止画バッファ１０９は、少なくとも一つ以上のＪＰＥＧ画像データを格納するメモリ領域を持つ。ストリームバッファ１０８は、一定期間のストリームデータを格納することができるだけのメモリ領域を持つ。記録媒体制御回路１１１は、メモリカード１１０の接続状態の監視とメモリカード１１０へのアクセスを制御する。操作部１１２は、レリーズボタン、動画記録ボタン、静止画連続撮影モードと動画記録モードなどを切り替えるモード切り換えダイヤルなどを有し、ユーザが種々の指示を画像処理装置１００に入力ために使用される。表示部１１３は、液晶表示パネルからなり、記録時は撮像素子１０１によって撮像される画像を表示し、再生時には再生画像を表示する。表示部１１３はまた、画像処理装置１００に対する設定メニュー等、記録時間、及びバッテリ残量等の情報を表示する。
【００３０】
ＣＰＵ１１４は、中央演算処理装置であり、画像処理装置１００の各部を制御する。メモリ１１８は、ＣＰＵ１１４、ファイルシステム１１６、書込み管理部１１７の作業領域として使用する。ファイルシステム１１６は、メモリカード１１０へのファイルの書込みと読出しに必要な情報を提供する。書込み管理部１１７は、ファイルシステム１１６と連携して、メモリカード１１０への書込みを管理し、記録シーケンス決定手段として機能する。具体的には、メモリカード１１０の断片化の状態およびメモリカード１１０の性能情報からメモリカード１１０内の各領域の書込み可能速度を算出する。また、書込み管理部１１７は、データ書込み要求に対し、データのビットレートや静止画連続時の連続撮影可能枚数に応じてメモリカード１１０上の書込み領域を決定する。なお、画像メモリ１０４、ＰＣＭバッファ１０７、ストリームバッファ１０８、静止画バッファ１０９、メモリ１１８はＲＡＭで構成される。
【００３１】
［静止画連続撮影処理の概要］
次に、後述する本実施形態の静止画連続撮影処理における、静止画ファイル書込みの概要を、図４を用いて説明する。
【００３２】
ＣＰＵ１１４は、ＲＵと同一サイズ以上のメモリ領域を、図４に示す端数クラスタ格納バッファとしてメモリ１１８に確保する。図４に示す例では、ＲＵのサイズは３クラスタ分のサイズであり、端数クラスタ格納バッファのサイズはＲＵサイズと同じ例である。
【００３３】
操作部１１２から静止画連続撮影の要求がなされると、ＣＰＵ１１４は、撮像素子駆動回路１０２、画像処理回路１０３を制御し、撮像して得た静止画の画像データを画像メモリ１０４に格納させる。画像変換回路１１５は、ＣＰＵ１１４の制御の下、画像メモリ１０４の画像データを圧縮符号化し、ＪＰＥＧ画像データやサムネイル画像を静止画バッファ１０９に格納する。ＣＰＵ１１４は、静止画バッファ１０９のＪＰＥＧ画像データに、サムネイル画像やヘッダ情報などのファイル情報を付加し、静止画ファイルを生成する。本実施形態では、静止画の連続撮影処理においては、静止画データをスピードクラスに従ってメモリカード１１０に書き込む。即ち、ＣＰＵ１１４は、メモリカード１１０における、ＲＵの先頭クラスタのアドレスを指定し、静止画データの書き込みを指示する。記録媒体制御回路１１１は、メモリカード１１０における、ＲＵの先頭クラスタのアドレスを指定し、静止画データの書き込みコマンドを送信する。
【００３４】
また、ＣＰＵ１１４は、生成された静止画ファイルのサイズを、ＲＵのサイズで除算して余ったサイズを求める。そして、その静止画ファイルの後端に位置する、「余り」分のデータを端数クラスタデータとして図４に示す端数クラスタ格納バッファに格納する。この端数クラスタデータは、この時点ではメモリカード１１０に書き込まれず、ＲＵの整数倍のデータのみ中間ファイルとして、メモリカード１１０に記録する。
【００３５】
なお、ＲＵが３個のクラスタで構成され、余り分のデータのサイズが、２クラスタサイズ以上である場合は、中間ファイルとして記録されるデータと合わせて、最終的な静止画ファイルとして記録される。即ち、この場合は、中間ファイル、端数ファイル共に記録されない。
【００３６】
また、各静止画ファイルの端数クラスタデータは、端数クラスタバッファにおけるクラスタの単位で記憶される。また、端数クラスタバッファに対し、次の静止画ファイルの端数クラスタデータが新たに記憶された結果、１ＲＵサイズを超えた場合は、ＲＵサイズ分のデータが端数ファイルとして記録される。そして、ＲＵサイズを超える分の端数クラスタデータが、端数クラスタバッファに保持される。
【００３７】
続いて、次の静止画データが記録されるが、この静止画データの余り分のデータも、同様に端数クラスタ格納バッファに記憶される。このように静止画撮影が繰り返され、端数クラスタ格納バッファのデータがＲＵと同一サイズになると、ＣＰＵ１１４は、端数クラスタ格納バッファ内のデータを、図４に示す端数クラスタファイルとして、メモリカード１１０に記録する。また、ＣＰＵ１１４は、端数クラスタファイル内のクラスタが、実際はどのファイルの後端に位置するかを示す端数クラスタ情報をメモリ１１８に作成しておく。
【００３８】
静止画連続撮影が終了した時点で、ＣＰＵ１１４は、端数クラスタ情報を参照して、後述するファイル結合によって、端数クラスタファイル内の端数クラスタデータと、各静止画の中間ファイルの結合を行い、静止画ファイルとして成立させる。このようにすることで、ファイルの断片化を回避することができる。また、全てを静止画ファイルとして成立させた場合には、端数クラスタファイル名が不要になるので、ＦＡＴ管理領域からそのファイル名に関するデータを削除する。
【００３９】
［静止画ファイルフォーマット］
図７は一般的なＤＣＦ（Design rule for Camera File system）画像ファイルの構造を示した図である。ＤＣＦ画像ファイル７００は現在、最も多くのデジタルカメラが出力可能なファイルであり、ＤＣＦヘッダ部７０１、サムネイル画像部７０２、ＪＰＥＧ画像部７０３で構成されている。ＤＣＦヘッダ部７０１はＤＣＦヘッダ情報を格納する領域であって、予め所定のデータサイズが与えられている。ＤＣＦヘッダ情報には、ＪＰＥＧ画像部７０３に格納される画像データに関連する撮影情報やパラメータなど符号７０４で示されるメタデータAが含まれると共に、サムネイル画像までの符号７０５で示されるオフセット値B、ならびに、符号７０６で示されるＪＰＥＧ画像までのオフセット値Cが含まれる。このオフセット値B、Cにより各画像データの開始位置が特定されることになる。サムネイル画像部７０２は、表示部５１６に表示を行う際などにその画像の大まかなインデックスとして利用する画像を格納する領域であり、ＪＰＥＧ画像部７０３に格納されているＪＰＥＧ画像などを間引いてリサイズしたサムネイル画像である。ＪＰＥＧ画像部７０３は、画像処理回路１０３で画像処理した後、画像変換回路１１５で圧縮して得られたＪＰＥＧ画像を格納する領域であり、一般の多くのアプリケーションで扱うことが可能なデータである。ＥＯＩ７０７は、ＤＣＦ画像ファイルの終端を示すＥＯＩマーカである。
【００４０】
［端数クラスタ情報］
次に、本第１の実施形態の静止画連続撮影処理における、端数クラスタ情報を、図５を用いて説明する。
【００４１】
端数クラスタ情報は、静止画ファイルに対する中間ファイルと、端数クラスタデータの関連を示す情報であり、複数の端数クラスタファイル情報で構成される。また、端数クラスタファイル情報は、１つの端数クラスタファイルに対して１つ存在し、端数クラスタファイル名５０５と中間ファイル名５０６と使用クラスタ５０７から構成される。端数クラスタファイルに格納される、余り分のデータに対応した中間ファイルのファイル名の情報が、中間ファイル名５０６としては格納されている。
中間ファイル名は、端数クラスタファイル内に存在する１つ以上の中間ファイル名が格納されている。
【００４２】
使用クラスタには、各中間ファイルに対する余り分のデータである端数クラスデータが、端数クラスタファイルのどのクラスタに格納されているかを示す情報が格納されている。具体的には、端数クラスデータが格納されている開始クラスタ番号と終了クラスタ番号が格納されている。
【００４３】
実施形態の場合、ＲＵは３クラスタ分の容量を有するものであるから、端数クラスタファイル情報には、最大３個の中間ファイル名が記述可能である。これまでの説明からわかるように、静止画ファイルＡをメモリカード１１０に格納する際に、静止画ファイルＡのサイズを、ＲＵのサイズで除算した余りが１クラスタのサイズ未満の場合、その静止画ファイルＡは端数クラスタを１個利用することを意味する。余りが１クラスタのサイズより大きく２クラスタ分のサイズ未満の場合には、静止画ファイルＡは端数クラスタを２個利用することを意味する。そして、余りが２クラスタ分のサイズより大きく３クラスタ分のサイズ未満の場合には、計算上は端数クラスタが３個あることになるが、実施形態の場合、ＲＵは３クラスタ分のサイズであるので、端数クラスタを含まないと判断する。
【００４４】
上記のように端数クラスタ情報を生成することで、後述するファイル結合時に端数クラスタファイル内の端数クラスタデータと中間ファイルを結合することができる。上記実施形態は、端数クラスタ情報の一例であり、端数クラスタファイル内の端数クラスタデータと中間ファイルが結合できればよく、これに限られるものではない。
【００４５】
［ファイル結合］
次に、後述する本実施形態の静止画連続撮影処理における、ファイル結合に係る処理を、図６を用いて説明する。
【００４６】
図６（ａ）は、ファイル結合前のメモリカード１１０の状態を示す。図６（ａ）には、２つの静止画ファイルの中間ファイルと、それぞれの静止画ファイルに対応する端数クラスタデータが格納された１つの端数クラスタファイルが格納されているとを示している。つまり、連続撮影モードにて、２枚の画像を連写した場合である。それぞれのファイルの使用領域とクラスタチェーンの情報はメモリカード１１０の管理テーブル（Ｆｉｌｅ Ａｌｌｏｃａｔｉｏｎ Ｔａｂｌｅ）に記述されている。
【００４７】
一方、図６（ｂ）は、ファイル結合により、中間ファイルと端数クラスタデータが結合され、静止画ファイルとして成立させた状態を示す。端数ファイルに格納された、各静止画ファイルに対する端数クラスタデータは、クラスタの先頭アドレスから記録される。そのため、中間ファイルに後続して、端数クラスタデータが存在するように管理テーブルのクラスタチェーンの情報を変更することで、、中間ファイルに対して端数クラスタデータを結合することができる。例えば、図６（ａ）の状態では、端数クラスタ情報には、静止画ファイル１の後端に接続すべき端数クラスが１つ存在し、静止画ファイル２の後端に接続すべき端数クラスが２つ存在することが記述されている。従って、ＣＰＵ１１４は、静止画ファイル１の中間データの最後の「クラスタ３」に、クラスタ７が後続し、そのクラスタ７で記録が終了していること示すように管理テーブルを更新する。同様に、ＣＰＵ１１４は、静止画ファイル２の中間データの最後の「クラスタ６」に、クラスタ８，９が後続し、そのクラスタ９で記録が終了していること示すように管理テーブルを更新する。上記の結果、図６（ｂ）に示すように、連写モードで撮影した場合に、ＲＵ内に無駄な空き領域を発生せず、静止画像ファイルを詰めて記録することが可能になる。なお、この際に、中間ファイルの拡張子を、“.JPG”等に変更することも行う。なお、拡張子の文字列は、符号化方式に依存して決めることになるので、必ずしも“.JPG”である必要はない。例えば、実施形態における符号化方式がＪＰＥＧ２０００の場合には、拡張子を“.J2K”とすることになる。
【００４８】
［マウント処理］
次に、第１の実施形態に係る画像処理装置１００のメモリカード１１０のマウント処理について、図８のフローチャートを用いて具体的な処理を説明する。
【００４９】
該フローチャートに対応する処理は、例えば画像処理装置１００にメモリカード１１０の接続されている状態で、マウント開始指示に対応する制御信号をＣＰＵ１１４が受信し、書込み管理部１１７に対してマウント処理を要求したものとして説明する。
【００５０】
まずＳ８０１で、書込み管理部１１７は、メモリカード１１０から必要な情報を取得し、スピードクラスを適用可能な状態にする。次いで、Ｓ８０２で、書込み管理部１１７は、接続されたメモリカード１１０のファイルシステムをマウントする。次に、Ｓ８０３で、書込み管理部１１７は、メモリカード１１０からＡＵサイズを取得する。Ｓ８０４で、書込み管理部１１７は、ＲＵサイズを決定する。ＲＵサイズは、クラスタサイズ以上、ＡＵサイズ未満であり、記録レートに応じて最小サイズが規格で定められているので、これを満たすように決定される。Ｓ８０５で、書込み管理部１１７は、メモリカード１１０から使用領域と未使用領域の管理テーブル（Ｆｉｌｅ Ａｌｌｏｃａｔｉｏｎ Ｔａｂｌｅ）を読出し、ＦＡＴ管理テーブルとして、メモリ１１８上に保持する。
【００５１】
ＦＡＴ管理テーブルをメモリ１１８上に保持するのは、静止画連続撮影時にメモリカード１１０が通常書込みに移行するのを回避するためである。ＦＡＴ管理テーブルは、ＲＵ未満のサイズとなりえる。また、ＦＡＴ管理テーブルは、静止画ファイルなどのファイル保存時などに更新される可能性がある。即ち、通常モードによるクラスタ単位での書込みとなる可能性がある。
【００５２】
そのため、ファイル保存要求発生時、書込み管理部１１７はメモリ１１８上のＦＡＴ管理テーブルのみを更新し、ＦＡＴ書込み要求が発生した場合のみ、メモリカード１１０の管理テーブルを更新するものとする。先に説明した、連写モードにおける管理テーブルも係る処理を経て行い、それが最終的に確定してから、実際に管理テーブルでメモリカード１１０を更新する処理を行う。また、ファイル保存時にクラスタ単位の書込みが発生する管理情報として、ＦＡＴ管理テーブルとしたが、これに限られるものではなく、必要であればその他の管理情報もメモリカード１１０に保持するものとする。
【００５３】
［静止画連続撮影処理］
次に、第１の実施形態に係る画像処理装置１００の静止画連続撮影処理について、図９のフローチャートを用いて具体的な処理を説明する。該フローチャートに対応する処理は、例えば前述したマウント処理が完了し、ユーザが操作部１１２を操作して、画像処理装置１００が静止画連続撮影モードに設定させ、静止画連続撮影開始指示の入力を検知した場合にＣＰＵ１１４が実行するものである。
【００５４】
Ｓ９０１で、ＣＰＵ１１４は、書込み管理部１１７が決定したＲＵサイズを取得し、メモリ１１８に、ＲＵサイズ以上の端数クラスタ格納バッファの領域を確保する。次に、ＣＰＵ１１４は、Ｓ９０２で、メモリ１１８に、端数クラスタ情報を格納するための領域を確保する。
【００５５】
Ｓ９０３で、操作部１１２からレリーズボタン押下の制御信号を検出したか否かを判断する。レリーズボタンの押下を示す制御信号を受信した場合は処理をＳ９０４に移し、なされていないと判断した場合は処理をＳ９０７に移す。Ｓ９０４で、１枚の静止画撮影を行う静止画撮影処理を実行する。そして、その撮影処理を終えると、ステップＳ９０５にて、緊急端数クラスタファイルの書き込み処理を行う。なお、このＳ９０５の詳細は後述するが、或る条件が満たされた場合に、端数クラスタ格納バッファに保持されているデータを、緊急端数クラスタファイルとしてメモリカード１１０に書き込む処理である。
【００５６】
ステップＳ９０６では、操作部１１２からレリーズボタン押下中の制御信号を検出したか否かを判断し、それ検出している限り、ステップＳ９０４、Ｓ９０５の処理を実行する。また、レリーズボタンが非押下状態にあると判断した場合は、連続撮影が終了したものと判断し、処理をＳ９０７に移す。
【００５７】
Ｓ９０７にて、ＣＰＵ１１４は、操作部１１２から静止画連続撮影モードの制御信号を検出したか否かを判断する。静止画連続撮影モードである判断とした場合は処理をＳ９０３に処理を戻し、なされていない、すなわち、静止画連続撮影モードが解除された場合は処理をＳ９０８に移す。
【００５８】
Ｓ９０８で、記録媒体制御回路１１１を介して、メモリカード１１０を通常モードに移行させる。即ち、メモリカード１１０に対し、クラスタ単位での書込みを可能とする。そして、Ｓ９０９で、中間ファイルと、端数クラスタファイル内の端数クラスタとの結合処理である端数クラスタデータ結合処理を実行する。そして、Ｓ９１０で、記録媒体制御回路１１１を介して、メモリカード１１０をスピードクラスモードに移行させる。Ｓ９１１で、メモリ１１８に確保した端数クラスタ情報の領域を解放する。Ｓ９１２で、メモリ１１８に確保した端数クラスタ格納バッファの領域も解放する。
【００５９】
［静止画撮影処理］
ここで、Ｓ９０４で実行される静止画撮影処理について、図１０のフローチャートを用いて詳述する。
【００６０】
まず、ＣＰＵ１１４は、Ｓ１００１にて、撮像素子駆動回路１０２、画像処理回路１０３を制御し、撮像した静止画に対して各種処理（ホワイトバランス処理等）を行い、画像データを画像メモリ１０４に格納させる。次いで、ＣＰＵ１１４は、Ｓ１００２にて、画像変換回路１１５を制御し、画像メモリ１０４にある画像データの符号化処理を行い、ＪＰＥＧ画像データやサムネイル画像を生成する。そして、ＣＰＵ１１４は、Ｓ１００３で、前述した静止画ファイルフォーマットの静止画ファイルを作成する。次いで、ＣＰＵ１１４は、作成した静止画ファイルのファイルサイズを取得する。Ｓ１００５で、取得したファイルサイズに、端数クラスタデータが存在するか否かを判断する。
【００６１】
端数クラスタデータが存在する判断した場合は、処理をＳ１００６に移し、存在しないと判断された場合にはＳ１００７に移す。具体的には、ファイルサイズがＲＵサイズの整数倍かどうかを調る。そして、整数倍でない場合は、ファイルサイズ以下で、ＲＵサイズの整数倍の最大値となるサイズと、ファイルサイズとの差が、２クラスタ以上であるか否かを判別する。ファイルサイズ以下で、ＲＵサイズの整数倍の最大値となるサイズと、ファイルサイズとの差分が、２クラスタ以上である場合は、端数クラスタデータが存在しないと判断する。ファイルサイズ以下で、ＲＵサイズの整数倍の最大値となるサイズと、ファイルサイズとの差分が、２クラスタより小さい場合は、端数クラスタデータが存在すると判断する。
【００６２】
Ｓ１００６に処理を進めた場合、ＣＰＵ１１４は、静止画ファイルを中間ファイルと端数クラスタデータに分割する端数クラスタデータ処理を実行する。また、一方、Ｓ１００７に進んだ場合、ＣＰＵ１１４は、静止画ファイルをメモリカード１１０にファイル保存する。Ｓ１００７での静止画ファイルはＲＵサイズの整数倍であるため、ファイル保存はスピードクラスで書き込むことができる。また、この場合、静止画ファイルの最後のデータが書き込まれるＲＵにおいて、空きとなるのは１クラスタ未満であるので、メモリカード１１０の記録領域を無駄にすることが無い。
【００６３】
［端数クラスタデータ処理］
ここで、Ｓ１００６で実行される端数クラスタデータ処理について、図１１のフローチャートを用いて詳述する。
【００６４】
ＣＰＵ１１４は、Ｓ１１０１で、中間ファイルを保存する。具体的には、先に生成した画像ファイルの先頭から、ファイルサイズ以下で、ＲＵサイズの整数倍の最大値で示される位置までを中間ファイルとし、メモリカード１１０に記録する。この中間ファイルの記録はスピードクラスで書き込むことができる。
【００６５】
次に、Ｓ１１０２には、ＣＰＵ１１４は、端数クラスタデータを端数クラスタ格納バッファに格納する。端数クラスタデータは、中間ファイルとして保存されていない静止画ファイルの終端に位置する２クラスタ以下のデータである。また、端数クラスタ格納バッファは、端数クラスタデータをクラスタ単位毎に管理する。
【００６６】
Ｓ１１０３では、ＣＰＵ１１４は、端数クラスタ格納バッファにＲＵサイズ分のデータが格納されたか否かを判断する。ＲＵサイズ分のデータが格納されたと判断した場合は、処理をＳ１１０４に移し、なされていないと判断した場合は処理をＳ１１０５に移す。なお、実施形態では、端数クラスタ格納バッファは、３個のクラスタで構成されているので、３つのクラスタが全て利用されている場合、ＣＰＵ１１４は、ＲＵサイズ分のデータが格納されたと判断する。
【００６７】
Ｓ１１０４で、端数クラスタ格納バッファのＲＵサイズ分のデータを独立した端数クラスタファイルとしてメモリカード１１０に記録する。そして、Ｓ１１０５で、端数クラスタ情報を更新する。具体的には、端数クラスタ情報の端数クラスタデータに対する情報（中間ファイル名５０６、使用クラスタ５０７）を更新する。また、Ｓ１１０４で、端数クラスタ格納ファイルを記録したのであれば、端数クラスタファイル名５０５の情報も更新も行う。
【００６８】
［緊急端数クラスタ書き込み処理］
次に、図９のＳ９０５の緊急クラスタファイルの書き込み処理を、図１６のフローチャートを用いて説明する。
【００６９】
まず、ＣＰＵ１１４は、Ｓ１６０１にて、現在の状況が緊急書き込み条件に一致するか否かを判断する。緊急書き込み条件に合致したと判断された場合は、処理はＳ１６０２に移し、合致しない場合にはＳ１６０５に移し、本処理を終える。
【００７０】
実施形態では、以下の(i)乃至(v)のいずれか１つでも満たす場合、緊急書き込み条件に一致すると判定する。
(i).連写動作が終了した場合
(ii).直前の静止画撮影から予め設定した所定時間が経過した場合
(iii).所定枚数撮影した場合
(iv).記録可能な静止画枚数が０になった場合（空きＲＵの個数が所定数以下の場合）
(v).バッテリ残量が所定残量以下（例えば、５％以下）になった場合
特に、所定枚数撮影に関しては、固定で例えば１０枚毎としても良いし、撮影時の諸条件によりＪＰＥＧファイルがどれだけのサイズになるかを予測し、その予測サイズからＲＵサイズで割り切れる枚数、つまり端数が出なくなる枚数をあらかじめ計算しておき、その枚数撮影した場合としても良い。また、ユーザに設定メニュー画面を通じて、緊急書き込み条件の経過時間や枚数、バッテリ残量をあらかじめ設定させる構成にしても良い。
【００７１】
上記緊急書き込み条件が満たされていると判定した場合、ＣＰＵ１１４は、Ｓ１６０２にて、端数クラスタ格納バッファに端数クラスタデータが存在するか否かを判断する。端数クラスタデータが存在すると判断した場合は、処理をＳ１６０３に移す。存在しない場合には、Ｓ１６０５に移し、本処理を終える。
【００７２】
Ｓ１６０３で、ＣＰＵ１１４は、端数クラスタ格納バッファに存在するデータを、端数クラスタファイルとしてＲＵサイズでファイル保存する。このとき、端数クラスタ格納バッファに存在するデータが、ＲＵサイズに満たない場合でも、スピードクラスに従って端数クラスタデータを書き込む。即ち、ＲＵの先頭クラスタのアドレスを指定し、端数クラスタ格納バッファに格納された端数クラスタデータを端数クラスタファイルとしてメモリカード１１０に書き込む。この場合の端数クラスタ情報を示したものが、図１７になる。図５と異なる点としては、クラスタ２に対しては、端数クラスタデータが記載されていない状態である。
【００７３】
Ｓ１６０４にて、ＣＰＵ１１４は、端数クラスタ情報を更新する。具体的には、端数クラスタ情報の端数クラスタデータに対する情報（中間ファイル名５０６、使用クラスタ５０７）を更新する。また、端数クラスタファイル名５０５の情報も更新する。
【００７４】
［端数クラスタデータ結合処理］
ここで、Ｓ９０９で実行される端数クラスタデータ結合処理について、図１２のフローチャートを用いて詳述する。
【００７５】
先ず、Ｓ１２０２にて、ＣＰＵ１１４は、メモリ１１８に端数クラスタ情報が存在するか否かを判断する。端数クラスタ情報が存在すると判断した場合は、処理をＳ１２０３に移し、存在しなければ、本端数クラスタデータ結合処理を完了する。
【００７６】
Ｓ１２０３に処理を進めた場合、ＣＰＵ１１４は、端数クラスタ格納バッファに、端数クラスタデータが存在するか否かを判断する。端数クラスタデータが存在すると判断した場合は、処理をＳ１２０４に移し、存在しないと判断した場合は処理をＳ１２０６に移す。Ｓ１２０４では、端数クラスタ格納バッファの端数クラスタデータを端数クラスタファイルとしてメモリカード１１０に記録する。そして、Ｓ１２０５で、端数クラスタ情報を更新する。
【００７７】
ＣＰＵ１１４は、Ｓ１２０６で、端数クラスタがどの中間ファイルと結合すべきなのかを調べるため、端数クラスタ情報から端数クラスタファイル情報を取得する。そして、Ｓ１２０７で、ＣＰＵ１１４は、端数クラスタファイル情報内に格納された端数クラスタファイル名５０５を取得する。そして、Ｓ１２０８で、端数クラスタファイル情報にある中間ファイルの情報を取得する。具体的には、中間ファイル名５０６と使用クラスタ５０７を取得する。そして、ＣＰＵ１２０９にて、Ｓ１２０９で、ファイル結合を実行する。具体的には、中間ファイルと、端数クラスタファイル内の中間ファイルに対応した端数クラスタデータを前述したファイル結合により、１つの静止画ファイルとして成立させる。また、中間ファイルに対応した端数クラスタデータの位置は、端数クラスタファイル情報の使用クラスタ５０７にある開始クラスタ番号と終了クラスタ番号によって特定する。なお、結合処理では、着目中間ファイルに後続して、端数クラスタファイルの該当するクラスタが接続されるように、メモリ１１８に用意されたＦＡＴ管理テーブルを更新する処理を行うものである。
【００７８】
Ｓ１２１０では、着目端数クラスタファイル情報にある全ての中間ファイルのファイル結合が完了した否かを判断する。完了したと判断した場合は、処理をＳ１２１１に移し、なされていないと判断した場合は処理をＳ１２０８に移す。
【００７９】
Ｓ１２１１にて、ＣＰＵ１１４は、端数クラスタファイル情報に対する処理が完了した否かを判断する。完了したと判断した場合は、処理をＳ１２１２に移し、未処理の端数クラスタファイル情報があれば、処理をＳ１２０６に移す。Ｓ１２１２で、ＣＰＵ１１４は、書込み管理部１１７にメモリ１１８内の更新後のＦＡＴ管理領域をメモリカード１１０に書込みするよう要求する。
【００８０】
［シャットダウン処理］
次に、操作部１１２の電源スイッチを操作された場合やオートパワーオフ時など画像処理装置の終了時の処理について、図１８のフローチャートを用いて説明する。
【００８１】
Ｓ１８０１にて、ＣＰＵ１１４は、電源スイッチＯＦＦの要求があったか否かを判断する。その要求があったと判断した場合は、処理をＳ１８０２に移し、なされていないと判断した場合は処理をＳ１８０１へ戻す。
【００８２】
Ｓ１８０２およびＳ１８０３は、図１６のＳ１６０２およびＳ１６０３と同様であるため、その説明は省略する。Ｓ１８０４からＳ１８０６までは、Ｓ９０９およびＳ９１１、Ｓ９１２と同様であるため、その説明は省略する。
【００８３】
以上説明したように、本実施形態の画像処理装置は、静止画連続撮影時において、ファイルの断片化を回避したスピードクラスによる静止画の書込みを実現することができる。具体的には、生成した静止画ファイルのサイズ以下であって、ＲＵサイズの最大整数倍のデータを中間ファイル、ＲＵサイズに満たないデータを端数クラスタデータとして分割し、先に中間ファイルのみファイル保存し、端数クラスタデータについてはＲＵサイズになった際に端数クラスタファイルとしてファイル保存する。そして静止画連続撮影終了時に中間ファイルと端数クラスタデータをファイル結合することで静止画ファイルとして成立させる。
【００８４】
また、所定のタイミングで端数クラスタファイルを保存することで、画像処理装置に何らかの異常が発生した場合に、メモリカード１１０上で静止画ファイルとして未成立な中間ファイルのままとなってしまうことを防ぐことも可能である。
【００８５】
［第２の実施形態］
上記第１の実施形態では、画像処理装置１００は、静止画連続撮影時において、ファイルの断片化を回避したスピードクラスによる静止画の書込みについて説明した。本第２の実施形態では、動画像記録中に静止画撮影が実行されても、記録媒体内に断片化の発生することを抑制し、動画のストリームデータをスピードクラスで書込み続けることを特徴とする画像処理装置について説明する。
【００８６】
なお、本第２の実施形態において画像処理装置１００の構成は第１の実施形態（図１参照）と同様であるため、その説明を省略する。
【００８７】
［動画記録中の静止画記録処理］
第２の実施形態に係る動画記録中の静止画記録処理について、図１３のフローチャートを用いて詳述する。なお、このフローチャートに対応する処理は、例えば前述したメモリカード１１０のマウント処理が完了し、画像処理装置１００が動画モードに設定されている状態で、動画記録開始指示に対応する制御信号をＣＰＵ１１４が操作部１１２から受信した際に開始されるものとして説明する。また、図１３中のステップＳ１３０６、Ｓ１３１４の処理は、第１の実施形態で説明した図１０、図１２と同様であるため、その説明を省略する。
【００８８】
先ずＳ１３０１にて、ＣＰＵ１１４は、書込み管理部１１７が決定したＲＵサイズを取得し、メモリ１１８内に、ＲＵサイズ以上の端数クラスタ格納バッファの領域を確保する。次いで、Ｓ１３０２で、ＣＰＵ１１４は、メモリ１１８に、端数クラスタ情報を格納するための領域を確保する。そして、Ｓ１３０３にて、動画記録を開始する。具体的には、ＣＰＵ１１４が、撮像素子駆動回路１０２、画像処理回路１０３を制御し、動画データである画像データを画像メモリ１０４に格納するように要求する。また、ＣＰＵ１１４は、音声処理回路１０６を制御し、ＰＣＭバッファ１０７にＰＣＭ音声データを記録するように要求する。更に、ＣＰＵ１１４は、画像変換回路１１５を制御し、符号化された動画像と音声とを多重化したストリームデータの生成を要求する。この結果、生成されたストリームデータはストリームバッファ１０８に一時的に格納され、記録媒体制御回路１１１によりメモリカード１１０に動画像ファイルとして記録処理が行われる。
【００８９】
Ｓ１３０４で、操作部１１２から、静止画の記録を指示するためのレリーズボタン押下（記録指示）の制御信号を検出したか否かを判断する。レリーズボタンが押下されていると判断した場合は処理をＳ１３０５に移し、なされていないと判断した場合は処理をＳ１３０９に移す。
【００９０】
Ｓ１３０５では、ＣＰＵ１１４は動画記録を停止する。具体的には、ＣＰＵ１１４が、撮像素子駆動回路１０２、画像処理回路１０３を制御し、動画の画像データの取得を停止する。また、音声処理回路１０６を制御し、ＰＣＭ音声データの記録を停止する。更に、画像変換回路１１５を制御し、ストリームデータの生成を停止させる。そして、ＣＰＵ１１４は、Ｓ１３０６にて静止画撮影処理を実行し、Ｓ１３０７にて緊急端数クラスタ書き込み処理を実行する。そして、Ｓ１３０７にて動画記録を再開する。また、Ｓ１３０９に処理が進んだ場合には、ストリームデータ書込み処理を継続する。
【００９１】
Ｓ１３１０では、ＣＰＵ１１４は操作部１１２から動画記録停止ボタンの制御信号を検出したか否かを判断する。動画記録停止ボタンが押下されていると判断した場合は処理をＳ１３１１に移し、なされていないと判断した場合は処理をＳ１３０４に移す。ステップＳ１３１１に移行した場合、ＣＰＵ１１４は動画記録を停止する。そして、Ｓ１３１２で、ＣＰＵ１１４は、記録媒体制御回路１１１を介して、メモリカード１１０を通常モードに移行させる。そして、Ｓ１３１３にて、動画ファイル保存処理を実行する。ステップ１３１４では、ＣＰＵ１１４は、端数クラスタデータ結合処理を実行する。この端数クラスタデータ結合処理は第１の実施形態の説明を参照されたい。そして、Ｓ１３１５で、記録媒体制御回路１１１を介して、メモリカード１１０をスピードクラスモードに移行させる。そして、ＣＰＵ１１４は、Ｓ１３１６にて、端数クラスタ情報の領域を解放し、Ｓ１３１７で、端数クラスタ格納バッファの領域を解放する。
【００９２】
［緊急端数クラスタ書き込み処理］
ここで、Ｓ１３０７で実行される緊急クラスタ書き込み処理について、図１６のフローチャートを用いて再度説明する。
【００９３】
まず、ＣＰＵ１１４は、Ｓ１６０１で、緊急書き込み条件に一致するか否かを判断する。緊急書き込み条件に合致したと判断された場合は、処理をＳ１６０２に移し、合致しないと判断した場合は処理をＳ１６０５に移し、本処理を終える。
【００９４】
なお、緊急書き込み条件とは、先に説明した第１の実施形態の条件項目（i)乃至(v)のいずれか１つでも満たす場合とした。
【００９５】
端数クラスタファイルをメモリカードに保存する際に要する期間をＴ，動画像の符号化ビットレートをＴｒ、ストリームバッファ１０８の容量をＣと定義したとき、以下の条件項目(vi)を追加しても良い。
(vi)Ｔｒ×Ｔ＜Ｃを満たす場合
上記式を満たす場合というのは、端数クラスタファイルをメモリカードに保存したとしても、ストリームバッファ１０８に破綻なく動画像の符号化データを格納できることを意味する。
【００９６】
また、スピードクラス移行中でも動画書き込みが破綻なく継続できる場合を条件にしても構わない。この場合、Ｓ１３０７内にて、メモリカード１１０を通常モードに移行させ、端数クラスタファイルをクラスタ単位で書き込んで、スピードクラスモードへ移行させても良い。
【００９７】
Ｓ１６０２からＳ１６０５までは、上述の第１の実施形態にて説明しているので、ここでは説明を省略する。
【００９８】
［ストリームデータ書込み処理］
ここで、Ｓ１３０９で実行されるストリームデータ書込み処理について、図１４のフローチャートを用いて詳述する。
【００９９】
ＣＰＵ１１４は、Ｓ１４０１にて、ストリームバッファに格納されているデータサイズを取得し、Ｓ１４０２にて取得したデータサイズがＲＵサイズ以上か否かを判定する。データサイズがＲＵサイズ以上と判断した場合は処理をＳ１４０３に移し、データサイズがＲＵサイズ未満と判断した場合はストリームデータ書込み処理を終える。
【０１００】
Ｓ１４０３にて、ＣＰＵ１１４は、書込みサイズを算出する。具体的には、ストリームバッファ１０８に格納されているデータのうち、ＲＵサイズの整数倍（最大整数倍で良い）のサイズを書込みサイズとする。Ｓ１４０４にて、ＣＰＵ１１４は、ストリームバッファのデータをＳ１４０３で算出した書込みサイズだけ、ファイル書込みする。なお、ストリームバッファのデータ書込みが完了した時点で、ストリームバッファに格納されているデータサイズを書込みサイズだけ、減算することとする。例えば、ＲＵサイズのＮ倍のサイズを１回の書き込み対象のサイズとした場合、記録媒体制御回路１１１は、Ｎ個の空きＲＵを指定して、書き込みコマンドを送信する。
【０１０１】
［動画ファイル保存処理］
ここで、Ｓ１３１３で実行される動画ファイル保存処理について、図１５のフローチャートを用いて詳述する。
【０１０２】
ＣＰＵ１１４は、Ｓ１５０１にて、記録媒体制御回路１１１を介して、メモリカード１１０を通常モードに移行させる。そして、ＣＰＵ１１４は、Ｓ１５０２にて、ストリームバッファに格納されている未記録のデータをファイル書込みする。次いで、ＣＰＵ１１４は、Ｓ１５０３にて、ストリームデータに動画記録情報などを付加して、動画ファイルを生成する。そして、Ｓ１５０４にて、動画ファイルとしてメモリカード１１０に記録する。
【０１０３】
以上説明したように、本第２の実施形態の画像処理装置は、動画撮影において、動画記録中に静止画の記録を行う場合に、ファイルの断片化を回避し、動画のストリームデータをスピードクラスで書込み続けることができる。具体的には、動画記録中に静止画撮影が実行された場合、静止画ファイルのＲＵサイズの整数倍のデータを中間ファイル、ＲＵサイズに満たないデータを端数クラスタデータとして分割し、先に中間ファイルを記録する。そして、動画記録中に、複数回、静止画記録が指示され、端数クラスタデータが１ＲＵのサイズに達した時点で端数クラスタファイルがメモリカード１１０に記録される。また、動画像記録撮影終了時に中間ファイルと端数クラスタデータをファイル結合することで静止画ファイルとして成立させる。
【０１０４】
また、所定の条件を満たした場合に、端数クラスタファイルを保存することで、画像処理装置に何らかの異常が発生した場合に、メモリカード１１０上で静止画ファイルとして未成立な中間ファイルのままとなってしまうことを防ぐが可能となる。特に、動画像符号化のビットレートが低くなったタイミングで端数クラスタファイルを保存することで、動画の書き込みを破綻させることなく、端数クラスタファイルの書き込み漏れを防ぐことが可能となる。
【０１０５】
（その他の実施例）
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【符号の説明】
【０１０６】
１００…画像処理装置、１０１…撮像素子、１０２…撮像素子駆動回路、１０３…画像処理回路、１０４…画像メモリ、１０５…マイク、１０６…音声処理回路、１０７…ＰＣＭバッファ、１０８…ストリームバッファ、１０９…静止画バッファ、１１０…メモリカード、１１１…記録媒体制御回路、１１２…操作部、１１３…表示部、１１４…ＣＰＵ、１１５…画像変換回路、１１６…ファイルシステム、１１７…書込み管理部、１１８…メモリ
【図１】
2015216539.tif 000003
【図２】
2015216539.tif 000004
【図３】
2015216539.tif 000005
【図４】
2015216539.tif 000006
【図５】
2015216539.tif 000007
【図６】
2015216539.tif 000008
【図７】
2015216539.tif 000009
【図８】
2015216539.tif 000010
【図９】
2015216539.tif 000011
【図１０】
2015216539.tif 000012
【図１１】
2015216539.tif 000013
【図１２】
2015216539.tif 000014
【図１３】
2015216539.tif 000015
【図１４】
2015216539.tif 000016
【図１５】
2015216539.tif 000017
【図１６】
2015216539.tif 000018
【図１７】
2015216539.tif 000019
【図１８】
2015216539.tif 000020