JP2015216539A - 撮像装置及びその制御方法及びプログラム及び記憶媒体 - Google Patents
撮像装置及びその制御方法及びプログラム及び記憶媒体 Download PDFInfo
- Publication number
- JP2015216539A JP2015216539A JP2014098890A JP2014098890A JP2015216539A JP 2015216539 A JP2015216539 A JP 2015216539A JP 2014098890 A JP2014098890 A JP 2014098890A JP 2014098890 A JP2014098890 A JP 2014098890A JP 2015216539 A JP2015216539 A JP 2015216539A
- Authority
- JP
- Japan
- Prior art keywords
- data
- file
- recording
- still image
- size
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Television Signal Processing For Recording (AREA)
- Studio Devices (AREA)
Abstract
【課題】無駄な空きクラスタの発生を抑制しながら、連続して撮影した静止画ファイルを記憶媒体に記録することを可能にする。【解決手段】撮像部により静止画ファイルが生成されるたびに、各静止画ファイルの記録単位の最大整数倍のデータを、独立した中間ファイルとしてメモリカードに記録する。その静止画ファイルの後端に位置しRUのサイズに満たない端数データをバッファ領域内に格納する。中間ファイルを記録中に、バッファ領域内にRUサイズ分のデータが格納された場合、或いは、予め設定された条件が満たされた場合、当該バッファ領域内のRUサイズのデータを独立した端数データファイルとしてメモリカードに記録する。静止画の連続撮像が終了したとき、メモリカードに記録された中間ファイルそれぞれに、端数データファイル内の該当する端数データを格納しているクラスタを結合することで、完成された静止画ファイルを生成する。【選択図】図1
Description
本発明は、撮像した静止画像を不揮発性の記憶媒体へ記録する技術に関するものである。
従来、メモリカードなどの記録媒体に動画や静止画を記録する撮像装置が知られている(例えば、特許文献1参照)。動画データは単位時間当たりのデータ量が多い。そこで、SDカードなどのフラッシュメモリカードでは、スピードクラスが規定されている。スピードクラスでは、フラッシュメモリにおける複数のクラスタに対応した、AU(allocation Unit),或いはRU(Recording Unit)といった単位でデータの書き込みを行うことにより、データの書き込み速度が保証される。
デジタルカメラでは、動画の撮影中に静止画の撮影を行う機能を持つものが登場している。静止画データのデータ量は動画に比べて少ない。そのため、動画撮影中に静止画を記録する場合、スピードクラスによる記録を一旦停止し、クラスタ単位で静止画データを書き込む。
しかしながら、スピードクラスによる書き込みから、一旦、クラスタ単位での書き込みに切り替え、再度、スピードクラスに戻る場合、切り替えに時間がかかってしまう。そこで、切り替えの間、動画を保持しておくための大容量のバッファメモリが必要になる。
また、静止画をスピードクラスに従って書き込むようにすれば、書き込み方式を切り替えることなく、動画の撮影中に静止画を記録することが可能となる。しかしながら、スピードクラスは、AU或いはRUの単位での書き込みになる。AUはRUを包含する関係にあり、RUは一般にメモリカードにおけるファイルシステムのクラスタサイズよりも大きい。従って、AUあるいはRU単位に、連続して撮像した個々の静止画ファイルを記録する場合には、メモリカードには無駄な空き領域が発生する。
本発明は、上記問題点に鑑みなされたものであり、無駄な空きクラスタの発生を抑制しながら、連続して撮影した静止画ファイルを記憶媒体に記録することを可能ならしめる技術を提供しようとするものである。
この課題を解決するため、例えば本発明の撮像装置は以下の構成を備える。すなわち、
撮像手段と、
前記撮像手段により得られた静止画データを含む静止画ファイルを、所定のファイルシステムに従って記録媒体に書き込む記録手段と、
前記記録媒体における、前記所定のファイルシステムに規定された記録単位の整数倍のサイズを書き込み単位として前記静止画ファイルの書き込みを行うように、前記記録手段を制御する制御手段と、
メモリとを備え、
前記制御手段は、連続して複数の画面の静止画データを前記記録媒体に記録する所定の記録モードにおいて、一つの前記静止画ファイルについて、前記静止画ファイルのサイズ以下で、前記書き込み単位の整数倍の最大値となる第1のデータと、前記静止画ファイルのうち前記第1のデータを除いた第2のデータとを生成し、前記第1のデータを含む第1のファイルを前記記録媒体に書き込むように前記記録手段を制御するとともに、前記第2のデータを前記メモリに記憶し、前記所定の記録モードにおける静止画データの記録中に、前記メモリに記憶された、複数の前記静止画ファイルから生成された前記第2のデータのサイズが前記書き込みサイズに達したことに応じて、複数の前記静止画ファイルから生成された前記第2のデータを含む第2のファイルを記録するように前記記録手段を制御し、
前記所定の記録モードにおける静止画データの記録が終了した後、複数の前記第1のファイルそれぞれに対し、前記第2のファイルに格納された前記第2のデータを結合することにより、複数の静止画ファイルを生成する制御を行い、
更に、予め設定した所定の条件を満たした場合には、前記メモリ内の前記第2のデータのサイズが前記書き込みサイズに達したか否かにか関わらず、当該メモリ内のデータを前記第2のファイルとして前記記憶媒体に記録することを特徴とする。
撮像手段と、
前記撮像手段により得られた静止画データを含む静止画ファイルを、所定のファイルシステムに従って記録媒体に書き込む記録手段と、
前記記録媒体における、前記所定のファイルシステムに規定された記録単位の整数倍のサイズを書き込み単位として前記静止画ファイルの書き込みを行うように、前記記録手段を制御する制御手段と、
メモリとを備え、
前記制御手段は、連続して複数の画面の静止画データを前記記録媒体に記録する所定の記録モードにおいて、一つの前記静止画ファイルについて、前記静止画ファイルのサイズ以下で、前記書き込み単位の整数倍の最大値となる第1のデータと、前記静止画ファイルのうち前記第1のデータを除いた第2のデータとを生成し、前記第1のデータを含む第1のファイルを前記記録媒体に書き込むように前記記録手段を制御するとともに、前記第2のデータを前記メモリに記憶し、前記所定の記録モードにおける静止画データの記録中に、前記メモリに記憶された、複数の前記静止画ファイルから生成された前記第2のデータのサイズが前記書き込みサイズに達したことに応じて、複数の前記静止画ファイルから生成された前記第2のデータを含む第2のファイルを記録するように前記記録手段を制御し、
前記所定の記録モードにおける静止画データの記録が終了した後、複数の前記第1のファイルそれぞれに対し、前記第2のファイルに格納された前記第2のデータを結合することにより、複数の静止画ファイルを生成する制御を行い、
更に、予め設定した所定の条件を満たした場合には、前記メモリ内の前記第2のデータのサイズが前記書き込みサイズに達したか否かにか関わらず、当該メモリ内のデータを前記第2のファイルとして前記記憶媒体に記録することを特徴とする。
本発明によれば、無駄な空きクラスタの発生を抑制しながら、連続して撮影した静止画ファイルを記憶媒体に記録することが可能になる。
以下、添付図面を参照して、本発明の実施形態を説明する。なお、本発明の技術的範囲は、特許請求の範囲によって確定されるのであって、以下の個別の実施形態によって限定されるわけではない。また、実施形態の中で説明されている特徴の組み合わせすべてが、本発明に必須とは限らない。
実施形態の説明に先立ち、メモリカードについて考察する。ハードディスクなどの記憶装置に採用されているファイルシステムでは、ファイルの書込みと削除を繰り返していると、使用領域と未使用領域が混在してしまい、書込まれたファイルが分断される。空き領域もまた、分断されるので、連続した大きな空き領域を確保するのが難しい。これは一般に、フラグメンテーション、或いは断片化と呼ばれる現象である。ファイルの断片化は、アクセス速度の低下を招くので、動画記録などのリアルタイム性が要求され、かつ、単位時間当たりに書き込むデータ量が大きい場合に問題となる。
フラッシュメモリを使用するメモリカードに上記ファイルシステムを適用した場合にも、断片化によるアクセス速度の低下が起こりうる。フラッシュメモリは、書き換え回数に制限があり、消去単位(書き換えの単位サイズ)がハードディスクのそれと比較して大きい(数キロバイト〜数十キロバイトのブロック単位)ことから、ハードディスクとは異なる対応が必要となる。
図2(A),(B)を参照して、簡単に説明する。一般にフラッシュメモリの消去単位又は書き換え単位(以下、単に記録単位という)は、上述のファイルステムの空き領域管理単位(クラスタサイズ)よりも大きい。図2(A)に示す例は、フラッシュメモリの記録単位が、ファイルシステムの管理単位であるクラスタの4倍のサイズを有する例を示している。図2(B)では、記録領域Aに記録されるデータに変更を加えることで、記録領域Bに書き換える場合を図示している。すなわち、図2(A)が書き換え前の状態を示し、同(B)が書き換え中と書き換え後の状態を示している。
図2(A)では、記録領域A内に未使用クラスタと使用済みクラスタが混在している。記録領域Aの論理アドレスは、0x100000から0x13ffff(「0x」は16進数を示している)に設定されている。ここで、論理アドレス0x110000から始まるクラスタ2に新データを書込む必要が生じたとする。フラッシュメモリでは、記録領域Aに対する部分的な上書きが不可能であるので、カード内部で、データの移動と論理アドレスの割当の変更が行なわれる。即ち、記録領域Aの記憶データ(旧データ)を読み出して新データと合成し、記録領域Aとは物理的に異なる位置にある記録領域Bに書込む。そして、記録領域Aに割り当てていた論理アドレス0x100000から0x13ffffを記録領域Bに割り当てる。論理アドレス0x110000に書込まれるべきデータは、実際には記録領域Bのクラスタ2’に書込まれることになる。記録領域Aのクラスタ1,3のデータは、それぞれ領域Bのクラスタ1’,3’にコピーされる。つまり、本来、新データは1つのクラスタに書き込むだけで良いはずが、図示の場合、領域A内の他の2つ(クラスタ1、3)のコピーを行うための記録が必要となる。このような書き換え時の内部的なコピー動作が、書込み速度の低下を招く。勿論、物理アドレスで見ても断片化が進行することになる。読み込みについては、断片化していても上記のようなコピー動作を伴わないので、速度低下はごくわずかである。
近年、フラッシュメモリを使用するメモリカードでは、フラグメンテーションによる速度低下を考慮に入れた、最低記録保証レートを規定するものが現れている。例えば、SDカードでは、動画に代表されるリアルタイムデータを破綻なく記録可能とするためのスピードクラスが規定されている。
図3を参照して、そのスピードクラスを説明する。メモリカード上の記録領域301をAU(Allocation Unit)と呼ばれる単位で区切り、各AUに対して断片化の程度を測定する。AUの大きさは、メモリカード内部のフラッシュメモリの記録単位に合わせてカード毎に決められている。また、スピードクラスを適用した記録におけるリアルタイムデータの最小記録単位を、RU(Recording Unit)と呼ぶ。RUは、上述のクラスタサイズの整数倍と定められている。RU内の全クラスタが未使用クラスタである場合、そのRUを未使用RU303として扱う。また、RU内のクラスタが1つでも使用されている場合、そのRUを使用済みRU304として扱う。
AUは複数個のRUからなる。AUを構成する全てのRUの中における使用済みRUの割合に応じて、そのAU内の未使用RUへの最低記録速度が規定されている。使用済みRUの割合が低いほど、高速に記録が可能となる。記録データのビットレートよりも高速に記録可能なAUを選択することで、リアルタイムデータを確実にカードに記録することが可能となる。例えば、図3のAU302は、未使用RU303と使用済みRU304の割合が等しく、RU率が50%となる。また、AU内の空きRU率が100%の場合に書込み可能速度は符号305に示すごとく6MB/secに設定されているものとする。同様に、75%の場合に符号306に示すように4MB/sec、50%の場合に符号307に示すように2MB/sec、25%の場合に符号308のように1MB/secと設定されている。このメモリカードに、今、ビットレート3MB/secのストリームをリアルタイムに記録する場合、未使用RUの割合が100%又は75%の領域を使用することで、ストリームデータのビットレートでの記録が破綻せず継続できることになる。
ここで、動画画像のストリームデータを記録中に、静止画を記録する場合について考察する。動画像は、実時間でストリームを記録することが求められるので、スピードクラスで記録することが望まれるのは理解できよう。一方、静止画は、撮像した静止画ファイルを単に記録すれば良い。また、静止画のファイルサイズは、AUまたはRUの整数倍となることは期待できない。従って静止画を記録する場合には、フラグメントを回避する意味でも、スピードクラスによるストリームデータの記録を一時停止し、クラスタ単位で記録する通常書込みで行うことが望ましい。従って、静止画記録を終えた場合、再度スピードクラスに移行し、動画像のストリームデータの記録を再開することになろう。
しかし、Secure Digital Specifications Physical Layer Spec. Version 4.10によると、スピードクラスに移行するのに最大1秒かかると規定されている。即ち、ストリームデータの記録を再開した時点で、スピードクラスに移行中にもストリームデータは転送されるため、期待するビットレートでの記録が継続できない可能性がある。
静止画ファイルをスピードクラスで記録することも考えられるが、この場合、AUまたはRU単位の記録となる。仮に、静止画ファイルが80KBのサイズ、RUが64KB、クラスタサイズが16KBである場合を考察する。この場合、ファイルシステム上では、5クラスタを利用することになるものの、スピードクラスでは2つのRUに記録することになるので、次の静止画ファイルを記録するまでの間に、ファイルシステム上に3クラスタ分の空き領域が発生する。つまり、記録媒体の連続するアドレス空間において、静止画ファイル間に空きクラスタが発生し、フラグメントの発生の要因となる。従って、この記憶媒体を利用するほど、ファイルの断片化が急激に進行し、高速に記録可能なAUやRUが短時間に少なくなっていくということになる。
本実施形態では、このような問題点を解決する例を説明する。以下、各実施形態を説明する。
<第1の実施形態>
先ず、本第1の実施形態の概要を簡単に説明すると、次の通りである。本第1の実施形態では、撮像部を有する画像処理装置(撮像装置)に適用するものであり、所謂、デジタルカメラ、デジタルビデオカメラ、撮像機能を有する携帯端末に適用可能である。そして、この装置は、撮像部で撮像して得られた静止画像から静止画像ファイルを生成する生成部と、生成された静止画ファイルを前記記憶媒体に記録する記録制御部を有する。そしてこの記録制御部は、メモリカードにおけるファイルシステムの最小記録単位であるクラスタを複数内包し、少なくとも前記記憶媒体の記録単位である1ブロック分の容量のバッファメモリ(又はRAMなどのメモリにバッファ領域として確保する)を有する。そして、記録制御部は、撮像部により連続して静止画を撮像して静止画ファイルが生成されるたびに、その静止画ファイルのサイズ以下であってブロックの容量の最大整数倍のデータを、独立した中間ファイルとしてメモリカードに記録すると共に、その静止画ファイルの後端に位置しブロックのサイズに満たない端数データをバッファメモリ内(又はバッファ領域内)の該当するクラスタ領域に格納する。そして、記録制御部は、メモリカード内に中間ファイルを記録中に、バッファメモリ内(又はバッファ領域内)にブロック分のデータが格納された場合、当該ブロック内のデータを独立した端数データファイルとしてメモリカードに記録する。また、より確実性を増すため、予め設定した条件を満たす場合には、バッファメモリ内(又はバッファ領域内)にブロック分のデータが格納されてなくても、端数データファイルとしてメモリカードに記録する。この静止画の連続撮像の終了後、記録制御部は、メモリカードに記録された中間ファイルそれぞれに、端数データファイル内の該当する端数データを格納しているクラスタを結合することで、完成された静止画ファイルを生成する。以下、係る点の具体例を説明する。
先ず、本第1の実施形態の概要を簡単に説明すると、次の通りである。本第1の実施形態では、撮像部を有する画像処理装置(撮像装置)に適用するものであり、所謂、デジタルカメラ、デジタルビデオカメラ、撮像機能を有する携帯端末に適用可能である。そして、この装置は、撮像部で撮像して得られた静止画像から静止画像ファイルを生成する生成部と、生成された静止画ファイルを前記記憶媒体に記録する記録制御部を有する。そしてこの記録制御部は、メモリカードにおけるファイルシステムの最小記録単位であるクラスタを複数内包し、少なくとも前記記憶媒体の記録単位である1ブロック分の容量のバッファメモリ(又はRAMなどのメモリにバッファ領域として確保する)を有する。そして、記録制御部は、撮像部により連続して静止画を撮像して静止画ファイルが生成されるたびに、その静止画ファイルのサイズ以下であってブロックの容量の最大整数倍のデータを、独立した中間ファイルとしてメモリカードに記録すると共に、その静止画ファイルの後端に位置しブロックのサイズに満たない端数データをバッファメモリ内(又はバッファ領域内)の該当するクラスタ領域に格納する。そして、記録制御部は、メモリカード内に中間ファイルを記録中に、バッファメモリ内(又はバッファ領域内)にブロック分のデータが格納された場合、当該ブロック内のデータを独立した端数データファイルとしてメモリカードに記録する。また、より確実性を増すため、予め設定した条件を満たす場合には、バッファメモリ内(又はバッファ領域内)にブロック分のデータが格納されてなくても、端数データファイルとしてメモリカードに記録する。この静止画の連続撮像の終了後、記録制御部は、メモリカードに記録された中間ファイルそれぞれに、端数データファイル内の該当する端数データを格納しているクラスタを結合することで、完成された静止画ファイルを生成する。以下、係る点の具体例を説明する。
図1は、第1の実施形態に係る画像処理装置100の概略構成を示すブロック図である。画像処理装置100は、撮影した動画または静止画などのファイルをメモリカード110に記録するデジタルカメラ(撮像装置)でもある。
メモリカード110は、AUまたはRU単位でのアクセスが可能なスピードクラスモードとクラスタ単位でのアクセスが可能な通常モードの二つの機能を有し、脱着可能な半導体の不揮発性記録媒体である。
撮像素子101は、光電変換により入射光量に応じた電荷を生成して出力するCMOSセンサであり、全画素の信号を読み出す以外に、特定の画素の加算及び特定の行又は列おきに間引いて電荷を読み出すこともできる。撮像素子駆動回路102は、CPU(プロセッサ)114による制御に基づいて、動画モードまたは静止画モードで撮像素子101を駆動することができる。画像処理回路103は、撮像素子101からの画像信号をA/D変換し、ガンマ補正、色バランス調整及び色変換等の所定の画像処理を施す。画像メモリ104は、画像処理回路103からの動画または静止画の画像データを表示用及び記録処理用に一時記憶するのに使用される。
マイク105は、外部の音声を取り込み、音声信号を出力する。音声処理回路106は、マイク105からの音声信号をA/D変換し、PCM符号化方式で符号化する。PCMバッファ107は、音声処理回路106からのPCM音声データを記録処理用に一記記憶する。
画像変換回路115は、動画記録時には、画像メモリ104に格納される動画の画像データとPCMバッファ107に格納されるPCM音声データを圧縮符号化及び多重化し、所定形式のストリームデータを生成する。生成されたストリームデータは、ストリームバッファ108に格納する。また、画像変換回路115は、静止画記録時には、画像メモリ104に格納される静止画の画像データを圧縮符号化し、JPEG画像データを生成する。生成されたJPEG画像データは、静止画バッファ109に格納する。更に、画像変換回路115は、再生モードで、メモリカード110から読み出されたストリームデータの圧縮画像データ及び圧縮音声データを伸長(復号)する。
静止画バッファ109は、少なくとも一つ以上のJPEG画像データを格納するメモリ領域を持つ。ストリームバッファ108は、一定期間のストリームデータを格納することができるだけのメモリ領域を持つ。記録媒体制御回路111は、メモリカード110の接続状態の監視とメモリカード110へのアクセスを制御する。操作部112は、レリーズボタン、動画記録ボタン、静止画連続撮影モードと動画記録モードなどを切り替えるモード切り換えダイヤルなどを有し、ユーザが種々の指示を画像処理装置100に入力ために使用される。表示部113は、液晶表示パネルからなり、記録時は撮像素子101によって撮像される画像を表示し、再生時には再生画像を表示する。表示部113はまた、画像処理装置100に対する設定メニュー等、記録時間、及びバッテリ残量等の情報を表示する。
CPU114は、中央演算処理装置であり、画像処理装置100の各部を制御する。メモリ118は、CPU114、ファイルシステム116、書込み管理部117の作業領域として使用する。ファイルシステム116は、メモリカード110へのファイルの書込みと読出しに必要な情報を提供する。書込み管理部117は、ファイルシステム116と連携して、メモリカード110への書込みを管理し、記録シーケンス決定手段として機能する。具体的には、メモリカード110の断片化の状態およびメモリカード110の性能情報からメモリカード110内の各領域の書込み可能速度を算出する。また、書込み管理部117は、データ書込み要求に対し、データのビットレートや静止画連続時の連続撮影可能枚数に応じてメモリカード110上の書込み領域を決定する。なお、画像メモリ104、PCMバッファ107、ストリームバッファ108、静止画バッファ109、メモリ118はRAMで構成される。
[静止画連続撮影処理の概要]
次に、後述する本実施形態の静止画連続撮影処理における、静止画ファイル書込みの概要を、図4を用いて説明する。
次に、後述する本実施形態の静止画連続撮影処理における、静止画ファイル書込みの概要を、図4を用いて説明する。
CPU114は、RUと同一サイズ以上のメモリ領域を、図4に示す端数クラスタ格納バッファとしてメモリ118に確保する。図4に示す例では、RUのサイズは3クラスタ分のサイズであり、端数クラスタ格納バッファのサイズはRUサイズと同じ例である。
操作部112から静止画連続撮影の要求がなされると、CPU114は、撮像素子駆動回路102、画像処理回路103を制御し、撮像して得た静止画の画像データを画像メモリ104に格納させる。画像変換回路115は、CPU114の制御の下、画像メモリ104の画像データを圧縮符号化し、JPEG画像データやサムネイル画像を静止画バッファ109に格納する。CPU114は、静止画バッファ109のJPEG画像データに、サムネイル画像やヘッダ情報などのファイル情報を付加し、静止画ファイルを生成する。本実施形態では、静止画の連続撮影処理においては、静止画データをスピードクラスに従ってメモリカード110に書き込む。即ち、CPU114は、メモリカード110における、RUの先頭クラスタのアドレスを指定し、静止画データの書き込みを指示する。記録媒体制御回路111は、メモリカード110における、RUの先頭クラスタのアドレスを指定し、静止画データの書き込みコマンドを送信する。
また、CPU114は、生成された静止画ファイルのサイズを、RUのサイズで除算して余ったサイズを求める。そして、その静止画ファイルの後端に位置する、「余り」分のデータを端数クラスタデータとして図4に示す端数クラスタ格納バッファに格納する。この端数クラスタデータは、この時点ではメモリカード110に書き込まれず、RUの整数倍のデータのみ中間ファイルとして、メモリカード110に記録する。
なお、RUが3個のクラスタで構成され、余り分のデータのサイズが、2クラスタサイズ以上である場合は、中間ファイルとして記録されるデータと合わせて、最終的な静止画ファイルとして記録される。即ち、この場合は、中間ファイル、端数ファイル共に記録されない。
また、各静止画ファイルの端数クラスタデータは、端数クラスタバッファにおけるクラスタの単位で記憶される。また、端数クラスタバッファに対し、次の静止画ファイルの端数クラスタデータが新たに記憶された結果、1RUサイズを超えた場合は、RUサイズ分のデータが端数ファイルとして記録される。そして、RUサイズを超える分の端数クラスタデータが、端数クラスタバッファに保持される。
続いて、次の静止画データが記録されるが、この静止画データの余り分のデータも、同様に端数クラスタ格納バッファに記憶される。このように静止画撮影が繰り返され、端数クラスタ格納バッファのデータがRUと同一サイズになると、CPU114は、端数クラスタ格納バッファ内のデータを、図4に示す端数クラスタファイルとして、メモリカード110に記録する。また、CPU114は、端数クラスタファイル内のクラスタが、実際はどのファイルの後端に位置するかを示す端数クラスタ情報をメモリ118に作成しておく。
静止画連続撮影が終了した時点で、CPU114は、端数クラスタ情報を参照して、後述するファイル結合によって、端数クラスタファイル内の端数クラスタデータと、各静止画の中間ファイルの結合を行い、静止画ファイルとして成立させる。このようにすることで、ファイルの断片化を回避することができる。また、全てを静止画ファイルとして成立させた場合には、端数クラスタファイル名が不要になるので、FAT管理領域からそのファイル名に関するデータを削除する。
[静止画ファイルフォーマット]
図7は一般的なDCF(Design rule for Camera File system)画像ファイルの構造を示した図である。DCF画像ファイル700は現在、最も多くのデジタルカメラが出力可能なファイルであり、DCFヘッダ部701、サムネイル画像部702、JPEG画像部703で構成されている。DCFヘッダ部701はDCFヘッダ情報を格納する領域であって、予め所定のデータサイズが与えられている。DCFヘッダ情報には、JPEG画像部703に格納される画像データに関連する撮影情報やパラメータなど符号704で示されるメタデータAが含まれると共に、サムネイル画像までの符号705で示されるオフセット値B、ならびに、符号706で示されるJPEG画像までのオフセット値Cが含まれる。このオフセット値B、Cにより各画像データの開始位置が特定されることになる。サムネイル画像部702は、表示部516に表示を行う際などにその画像の大まかなインデックスとして利用する画像を格納する領域であり、JPEG画像部703に格納されているJPEG画像などを間引いてリサイズしたサムネイル画像である。JPEG画像部703は、画像処理回路103で画像処理した後、画像変換回路115で圧縮して得られたJPEG画像を格納する領域であり、一般の多くのアプリケーションで扱うことが可能なデータである。EOI707は、DCF画像ファイルの終端を示すEOIマーカである。
図7は一般的なDCF(Design rule for Camera File system)画像ファイルの構造を示した図である。DCF画像ファイル700は現在、最も多くのデジタルカメラが出力可能なファイルであり、DCFヘッダ部701、サムネイル画像部702、JPEG画像部703で構成されている。DCFヘッダ部701はDCFヘッダ情報を格納する領域であって、予め所定のデータサイズが与えられている。DCFヘッダ情報には、JPEG画像部703に格納される画像データに関連する撮影情報やパラメータなど符号704で示されるメタデータAが含まれると共に、サムネイル画像までの符号705で示されるオフセット値B、ならびに、符号706で示されるJPEG画像までのオフセット値Cが含まれる。このオフセット値B、Cにより各画像データの開始位置が特定されることになる。サムネイル画像部702は、表示部516に表示を行う際などにその画像の大まかなインデックスとして利用する画像を格納する領域であり、JPEG画像部703に格納されているJPEG画像などを間引いてリサイズしたサムネイル画像である。JPEG画像部703は、画像処理回路103で画像処理した後、画像変換回路115で圧縮して得られたJPEG画像を格納する領域であり、一般の多くのアプリケーションで扱うことが可能なデータである。EOI707は、DCF画像ファイルの終端を示すEOIマーカである。
[端数クラスタ情報]
次に、本第1の実施形態の静止画連続撮影処理における、端数クラスタ情報を、図5を用いて説明する。
次に、本第1の実施形態の静止画連続撮影処理における、端数クラスタ情報を、図5を用いて説明する。
端数クラスタ情報は、静止画ファイルに対する中間ファイルと、端数クラスタデータの関連を示す情報であり、複数の端数クラスタファイル情報で構成される。また、端数クラスタファイル情報は、1つの端数クラスタファイルに対して1つ存在し、端数クラスタファイル名505と中間ファイル名506と使用クラスタ507から構成される。端数クラスタファイルに格納される、余り分のデータに対応した中間ファイルのファイル名の情報が、中間ファイル名506としては格納されている。
中間ファイル名は、端数クラスタファイル内に存在する1つ以上の中間ファイル名が格納されている。
中間ファイル名は、端数クラスタファイル内に存在する1つ以上の中間ファイル名が格納されている。
使用クラスタには、各中間ファイルに対する余り分のデータである端数クラスデータが、端数クラスタファイルのどのクラスタに格納されているかを示す情報が格納されている。具体的には、端数クラスデータが格納されている開始クラスタ番号と終了クラスタ番号が格納されている。
実施形態の場合、RUは3クラスタ分の容量を有するものであるから、端数クラスタファイル情報には、最大3個の中間ファイル名が記述可能である。これまでの説明からわかるように、静止画ファイルAをメモリカード110に格納する際に、静止画ファイルAのサイズを、RUのサイズで除算した余りが1クラスタのサイズ未満の場合、その静止画ファイルAは端数クラスタを1個利用することを意味する。余りが1クラスタのサイズより大きく2クラスタ分のサイズ未満の場合には、静止画ファイルAは端数クラスタを2個利用することを意味する。そして、余りが2クラスタ分のサイズより大きく3クラスタ分のサイズ未満の場合には、計算上は端数クラスタが3個あることになるが、実施形態の場合、RUは3クラスタ分のサイズであるので、端数クラスタを含まないと判断する。
上記のように端数クラスタ情報を生成することで、後述するファイル結合時に端数クラスタファイル内の端数クラスタデータと中間ファイルを結合することができる。上記実施形態は、端数クラスタ情報の一例であり、端数クラスタファイル内の端数クラスタデータと中間ファイルが結合できればよく、これに限られるものではない。
[ファイル結合]
次に、後述する本実施形態の静止画連続撮影処理における、ファイル結合に係る処理を、図6を用いて説明する。
次に、後述する本実施形態の静止画連続撮影処理における、ファイル結合に係る処理を、図6を用いて説明する。
図6(a)は、ファイル結合前のメモリカード110の状態を示す。図6(a)には、2つの静止画ファイルの中間ファイルと、それぞれの静止画ファイルに対応する端数クラスタデータが格納された1つの端数クラスタファイルが格納されているとを示している。つまり、連続撮影モードにて、2枚の画像を連写した場合である。それぞれのファイルの使用領域とクラスタチェーンの情報はメモリカード110の管理テーブル(File Allocation Table)に記述されている。
一方、図6(b)は、ファイル結合により、中間ファイルと端数クラスタデータが結合され、静止画ファイルとして成立させた状態を示す。端数ファイルに格納された、各静止画ファイルに対する端数クラスタデータは、クラスタの先頭アドレスから記録される。そのため、中間ファイルに後続して、端数クラスタデータが存在するように管理テーブルのクラスタチェーンの情報を変更することで、、中間ファイルに対して端数クラスタデータを結合することができる。例えば、図6(a)の状態では、端数クラスタ情報には、静止画ファイル1の後端に接続すべき端数クラスが1つ存在し、静止画ファイル2の後端に接続すべき端数クラスが2つ存在することが記述されている。従って、CPU114は、静止画ファイル1の中間データの最後の「クラスタ3」に、クラスタ7が後続し、そのクラスタ7で記録が終了していること示すように管理テーブルを更新する。同様に、CPU114は、静止画ファイル2の中間データの最後の「クラスタ6」に、クラスタ8,9が後続し、そのクラスタ9で記録が終了していること示すように管理テーブルを更新する。上記の結果、図6(b)に示すように、連写モードで撮影した場合に、RU内に無駄な空き領域を発生せず、静止画像ファイルを詰めて記録することが可能になる。なお、この際に、中間ファイルの拡張子を、“.JPG”等に変更することも行う。なお、拡張子の文字列は、符号化方式に依存して決めることになるので、必ずしも“.JPG”である必要はない。例えば、実施形態における符号化方式がJPEG2000の場合には、拡張子を“.J2K”とすることになる。
[マウント処理]
次に、第1の実施形態に係る画像処理装置100のメモリカード110のマウント処理について、図8のフローチャートを用いて具体的な処理を説明する。
次に、第1の実施形態に係る画像処理装置100のメモリカード110のマウント処理について、図8のフローチャートを用いて具体的な処理を説明する。
該フローチャートに対応する処理は、例えば画像処理装置100にメモリカード110の接続されている状態で、マウント開始指示に対応する制御信号をCPU114が受信し、書込み管理部117に対してマウント処理を要求したものとして説明する。
まずS801で、書込み管理部117は、メモリカード110から必要な情報を取得し、スピードクラスを適用可能な状態にする。次いで、S802で、書込み管理部117は、接続されたメモリカード110のファイルシステムをマウントする。次に、S803で、書込み管理部117は、メモリカード110からAUサイズを取得する。S804で、書込み管理部117は、RUサイズを決定する。RUサイズは、クラスタサイズ以上、AUサイズ未満であり、記録レートに応じて最小サイズが規格で定められているので、これを満たすように決定される。S805で、書込み管理部117は、メモリカード110から使用領域と未使用領域の管理テーブル(File Allocation Table)を読出し、FAT管理テーブルとして、メモリ118上に保持する。
FAT管理テーブルをメモリ118上に保持するのは、静止画連続撮影時にメモリカード110が通常書込みに移行するのを回避するためである。FAT管理テーブルは、RU未満のサイズとなりえる。また、FAT管理テーブルは、静止画ファイルなどのファイル保存時などに更新される可能性がある。即ち、通常モードによるクラスタ単位での書込みとなる可能性がある。
そのため、ファイル保存要求発生時、書込み管理部117はメモリ118上のFAT管理テーブルのみを更新し、FAT書込み要求が発生した場合のみ、メモリカード110の管理テーブルを更新するものとする。先に説明した、連写モードにおける管理テーブルも係る処理を経て行い、それが最終的に確定してから、実際に管理テーブルでメモリカード110を更新する処理を行う。また、ファイル保存時にクラスタ単位の書込みが発生する管理情報として、FAT管理テーブルとしたが、これに限られるものではなく、必要であればその他の管理情報もメモリカード110に保持するものとする。
[静止画連続撮影処理]
次に、第1の実施形態に係る画像処理装置100の静止画連続撮影処理について、図9のフローチャートを用いて具体的な処理を説明する。該フローチャートに対応する処理は、例えば前述したマウント処理が完了し、ユーザが操作部112を操作して、画像処理装置100が静止画連続撮影モードに設定させ、静止画連続撮影開始指示の入力を検知した場合にCPU114が実行するものである。
次に、第1の実施形態に係る画像処理装置100の静止画連続撮影処理について、図9のフローチャートを用いて具体的な処理を説明する。該フローチャートに対応する処理は、例えば前述したマウント処理が完了し、ユーザが操作部112を操作して、画像処理装置100が静止画連続撮影モードに設定させ、静止画連続撮影開始指示の入力を検知した場合にCPU114が実行するものである。
S901で、CPU114は、書込み管理部117が決定したRUサイズを取得し、メモリ118に、RUサイズ以上の端数クラスタ格納バッファの領域を確保する。次に、CPU114は、S902で、メモリ118に、端数クラスタ情報を格納するための領域を確保する。
S903で、操作部112からレリーズボタン押下の制御信号を検出したか否かを判断する。レリーズボタンの押下を示す制御信号を受信した場合は処理をS904に移し、なされていないと判断した場合は処理をS907に移す。S904で、1枚の静止画撮影を行う静止画撮影処理を実行する。そして、その撮影処理を終えると、ステップS905にて、緊急端数クラスタファイルの書き込み処理を行う。なお、このS905の詳細は後述するが、或る条件が満たされた場合に、端数クラスタ格納バッファに保持されているデータを、緊急端数クラスタファイルとしてメモリカード110に書き込む処理である。
ステップS906では、操作部112からレリーズボタン押下中の制御信号を検出したか否かを判断し、それ検出している限り、ステップS904、S905の処理を実行する。また、レリーズボタンが非押下状態にあると判断した場合は、連続撮影が終了したものと判断し、処理をS907に移す。
S907にて、CPU114は、操作部112から静止画連続撮影モードの制御信号を検出したか否かを判断する。静止画連続撮影モードである判断とした場合は処理をS903に処理を戻し、なされていない、すなわち、静止画連続撮影モードが解除された場合は処理をS908に移す。
S908で、記録媒体制御回路111を介して、メモリカード110を通常モードに移行させる。即ち、メモリカード110に対し、クラスタ単位での書込みを可能とする。そして、S909で、中間ファイルと、端数クラスタファイル内の端数クラスタとの結合処理である端数クラスタデータ結合処理を実行する。そして、S910で、記録媒体制御回路111を介して、メモリカード110をスピードクラスモードに移行させる。S911で、メモリ118に確保した端数クラスタ情報の領域を解放する。S912で、メモリ118に確保した端数クラスタ格納バッファの領域も解放する。
[静止画撮影処理]
ここで、S904で実行される静止画撮影処理について、図10のフローチャートを用いて詳述する。
ここで、S904で実行される静止画撮影処理について、図10のフローチャートを用いて詳述する。
まず、CPU114は、S1001にて、撮像素子駆動回路102、画像処理回路103を制御し、撮像した静止画に対して各種処理(ホワイトバランス処理等)を行い、画像データを画像メモリ104に格納させる。次いで、CPU114は、S1002にて、画像変換回路115を制御し、画像メモリ104にある画像データの符号化処理を行い、JPEG画像データやサムネイル画像を生成する。そして、CPU114は、S1003で、前述した静止画ファイルフォーマットの静止画ファイルを作成する。次いで、CPU114は、作成した静止画ファイルのファイルサイズを取得する。S1005で、取得したファイルサイズに、端数クラスタデータが存在するか否かを判断する。
端数クラスタデータが存在する判断した場合は、処理をS1006に移し、存在しないと判断された場合にはS1007に移す。具体的には、ファイルサイズがRUサイズの整数倍かどうかを調る。そして、整数倍でない場合は、ファイルサイズ以下で、RUサイズの整数倍の最大値となるサイズと、ファイルサイズとの差が、2クラスタ以上であるか否かを判別する。ファイルサイズ以下で、RUサイズの整数倍の最大値となるサイズと、ファイルサイズとの差分が、2クラスタ以上である場合は、端数クラスタデータが存在しないと判断する。ファイルサイズ以下で、RUサイズの整数倍の最大値となるサイズと、ファイルサイズとの差分が、2クラスタより小さい場合は、端数クラスタデータが存在すると判断する。
S1006に処理を進めた場合、CPU114は、静止画ファイルを中間ファイルと端数クラスタデータに分割する端数クラスタデータ処理を実行する。また、一方、S1007に進んだ場合、CPU114は、静止画ファイルをメモリカード110にファイル保存する。S1007での静止画ファイルはRUサイズの整数倍であるため、ファイル保存はスピードクラスで書き込むことができる。また、この場合、静止画ファイルの最後のデータが書き込まれるRUにおいて、空きとなるのは1クラスタ未満であるので、メモリカード110の記録領域を無駄にすることが無い。
[端数クラスタデータ処理]
ここで、S1006で実行される端数クラスタデータ処理について、図11のフローチャートを用いて詳述する。
ここで、S1006で実行される端数クラスタデータ処理について、図11のフローチャートを用いて詳述する。
CPU114は、S1101で、中間ファイルを保存する。具体的には、先に生成した画像ファイルの先頭から、ファイルサイズ以下で、RUサイズの整数倍の最大値で示される位置までを中間ファイルとし、メモリカード110に記録する。この中間ファイルの記録はスピードクラスで書き込むことができる。
次に、S1102には、CPU114は、端数クラスタデータを端数クラスタ格納バッファに格納する。端数クラスタデータは、中間ファイルとして保存されていない静止画ファイルの終端に位置する2クラスタ以下のデータである。また、端数クラスタ格納バッファは、端数クラスタデータをクラスタ単位毎に管理する。
S1103では、CPU114は、端数クラスタ格納バッファにRUサイズ分のデータが格納されたか否かを判断する。RUサイズ分のデータが格納されたと判断した場合は、処理をS1104に移し、なされていないと判断した場合は処理をS1105に移す。なお、実施形態では、端数クラスタ格納バッファは、3個のクラスタで構成されているので、3つのクラスタが全て利用されている場合、CPU114は、RUサイズ分のデータが格納されたと判断する。
S1104で、端数クラスタ格納バッファのRUサイズ分のデータを独立した端数クラスタファイルとしてメモリカード110に記録する。そして、S1105で、端数クラスタ情報を更新する。具体的には、端数クラスタ情報の端数クラスタデータに対する情報(中間ファイル名506、使用クラスタ507)を更新する。また、S1104で、端数クラスタ格納ファイルを記録したのであれば、端数クラスタファイル名505の情報も更新も行う。
[緊急端数クラスタ書き込み処理]
次に、図9のS905の緊急クラスタファイルの書き込み処理を、図16のフローチャートを用いて説明する。
次に、図9のS905の緊急クラスタファイルの書き込み処理を、図16のフローチャートを用いて説明する。
まず、CPU114は、S1601にて、現在の状況が緊急書き込み条件に一致するか否かを判断する。緊急書き込み条件に合致したと判断された場合は、処理はS1602に移し、合致しない場合にはS1605に移し、本処理を終える。
実施形態では、以下の(i)乃至(v)のいずれか1つでも満たす場合、緊急書き込み条件に一致すると判定する。
(i).連写動作が終了した場合
(ii).直前の静止画撮影から予め設定した所定時間が経過した場合
(iii).所定枚数撮影した場合
(iv).記録可能な静止画枚数が0になった場合(空きRUの個数が所定数以下の場合)
(v).バッテリ残量が所定残量以下(例えば、5%以下)になった場合
特に、所定枚数撮影に関しては、固定で例えば10枚毎としても良いし、撮影時の諸条件によりJPEGファイルがどれだけのサイズになるかを予測し、その予測サイズからRUサイズで割り切れる枚数、つまり端数が出なくなる枚数をあらかじめ計算しておき、その枚数撮影した場合としても良い。また、ユーザに設定メニュー画面を通じて、緊急書き込み条件の経過時間や枚数、バッテリ残量をあらかじめ設定させる構成にしても良い。
(i).連写動作が終了した場合
(ii).直前の静止画撮影から予め設定した所定時間が経過した場合
(iii).所定枚数撮影した場合
(iv).記録可能な静止画枚数が0になった場合(空きRUの個数が所定数以下の場合)
(v).バッテリ残量が所定残量以下(例えば、5%以下)になった場合
特に、所定枚数撮影に関しては、固定で例えば10枚毎としても良いし、撮影時の諸条件によりJPEGファイルがどれだけのサイズになるかを予測し、その予測サイズからRUサイズで割り切れる枚数、つまり端数が出なくなる枚数をあらかじめ計算しておき、その枚数撮影した場合としても良い。また、ユーザに設定メニュー画面を通じて、緊急書き込み条件の経過時間や枚数、バッテリ残量をあらかじめ設定させる構成にしても良い。
上記緊急書き込み条件が満たされていると判定した場合、CPU114は、S1602にて、端数クラスタ格納バッファに端数クラスタデータが存在するか否かを判断する。端数クラスタデータが存在すると判断した場合は、処理をS1603に移す。存在しない場合には、S1605に移し、本処理を終える。
S1603で、CPU114は、端数クラスタ格納バッファに存在するデータを、端数クラスタファイルとしてRUサイズでファイル保存する。このとき、端数クラスタ格納バッファに存在するデータが、RUサイズに満たない場合でも、スピードクラスに従って端数クラスタデータを書き込む。即ち、RUの先頭クラスタのアドレスを指定し、端数クラスタ格納バッファに格納された端数クラスタデータを端数クラスタファイルとしてメモリカード110に書き込む。この場合の端数クラスタ情報を示したものが、図17になる。図5と異なる点としては、クラスタ2に対しては、端数クラスタデータが記載されていない状態である。
S1604にて、CPU114は、端数クラスタ情報を更新する。具体的には、端数クラスタ情報の端数クラスタデータに対する情報(中間ファイル名506、使用クラスタ507)を更新する。また、端数クラスタファイル名505の情報も更新する。
[端数クラスタデータ結合処理]
ここで、S909で実行される端数クラスタデータ結合処理について、図12のフローチャートを用いて詳述する。
ここで、S909で実行される端数クラスタデータ結合処理について、図12のフローチャートを用いて詳述する。
先ず、S1202にて、CPU114は、メモリ118に端数クラスタ情報が存在するか否かを判断する。端数クラスタ情報が存在すると判断した場合は、処理をS1203に移し、存在しなければ、本端数クラスタデータ結合処理を完了する。
S1203に処理を進めた場合、CPU114は、端数クラスタ格納バッファに、端数クラスタデータが存在するか否かを判断する。端数クラスタデータが存在すると判断した場合は、処理をS1204に移し、存在しないと判断した場合は処理をS1206に移す。S1204では、端数クラスタ格納バッファの端数クラスタデータを端数クラスタファイルとしてメモリカード110に記録する。そして、S1205で、端数クラスタ情報を更新する。
CPU114は、S1206で、端数クラスタがどの中間ファイルと結合すべきなのかを調べるため、端数クラスタ情報から端数クラスタファイル情報を取得する。そして、S1207で、CPU114は、端数クラスタファイル情報内に格納された端数クラスタファイル名505を取得する。そして、S1208で、端数クラスタファイル情報にある中間ファイルの情報を取得する。具体的には、中間ファイル名506と使用クラスタ507を取得する。そして、CPU1209にて、S1209で、ファイル結合を実行する。具体的には、中間ファイルと、端数クラスタファイル内の中間ファイルに対応した端数クラスタデータを前述したファイル結合により、1つの静止画ファイルとして成立させる。また、中間ファイルに対応した端数クラスタデータの位置は、端数クラスタファイル情報の使用クラスタ507にある開始クラスタ番号と終了クラスタ番号によって特定する。なお、結合処理では、着目中間ファイルに後続して、端数クラスタファイルの該当するクラスタが接続されるように、メモリ118に用意されたFAT管理テーブルを更新する処理を行うものである。
S1210では、着目端数クラスタファイル情報にある全ての中間ファイルのファイル結合が完了した否かを判断する。完了したと判断した場合は、処理をS1211に移し、なされていないと判断した場合は処理をS1208に移す。
S1211にて、CPU114は、端数クラスタファイル情報に対する処理が完了した否かを判断する。完了したと判断した場合は、処理をS1212に移し、未処理の端数クラスタファイル情報があれば、処理をS1206に移す。S1212で、CPU114は、書込み管理部117にメモリ118内の更新後のFAT管理領域をメモリカード110に書込みするよう要求する。
[シャットダウン処理]
次に、操作部112の電源スイッチを操作された場合やオートパワーオフ時など画像処理装置の終了時の処理について、図18のフローチャートを用いて説明する。
次に、操作部112の電源スイッチを操作された場合やオートパワーオフ時など画像処理装置の終了時の処理について、図18のフローチャートを用いて説明する。
S1801にて、CPU114は、電源スイッチOFFの要求があったか否かを判断する。その要求があったと判断した場合は、処理をS1802に移し、なされていないと判断した場合は処理をS1801へ戻す。
S1802およびS1803は、図16のS1602およびS1603と同様であるため、その説明は省略する。S1804からS1806までは、S909およびS911、S912と同様であるため、その説明は省略する。
以上説明したように、本実施形態の画像処理装置は、静止画連続撮影時において、ファイルの断片化を回避したスピードクラスによる静止画の書込みを実現することができる。具体的には、生成した静止画ファイルのサイズ以下であって、RUサイズの最大整数倍のデータを中間ファイル、RUサイズに満たないデータを端数クラスタデータとして分割し、先に中間ファイルのみファイル保存し、端数クラスタデータについてはRUサイズになった際に端数クラスタファイルとしてファイル保存する。そして静止画連続撮影終了時に中間ファイルと端数クラスタデータをファイル結合することで静止画ファイルとして成立させる。
また、所定のタイミングで端数クラスタファイルを保存することで、画像処理装置に何らかの異常が発生した場合に、メモリカード110上で静止画ファイルとして未成立な中間ファイルのままとなってしまうことを防ぐことも可能である。
[第2の実施形態]
上記第1の実施形態では、画像処理装置100は、静止画連続撮影時において、ファイルの断片化を回避したスピードクラスによる静止画の書込みについて説明した。本第2の実施形態では、動画像記録中に静止画撮影が実行されても、記録媒体内に断片化の発生することを抑制し、動画のストリームデータをスピードクラスで書込み続けることを特徴とする画像処理装置について説明する。
上記第1の実施形態では、画像処理装置100は、静止画連続撮影時において、ファイルの断片化を回避したスピードクラスによる静止画の書込みについて説明した。本第2の実施形態では、動画像記録中に静止画撮影が実行されても、記録媒体内に断片化の発生することを抑制し、動画のストリームデータをスピードクラスで書込み続けることを特徴とする画像処理装置について説明する。
なお、本第2の実施形態において画像処理装置100の構成は第1の実施形態(図1参照)と同様であるため、その説明を省略する。
[動画記録中の静止画記録処理]
第2の実施形態に係る動画記録中の静止画記録処理について、図13のフローチャートを用いて詳述する。なお、このフローチャートに対応する処理は、例えば前述したメモリカード110のマウント処理が完了し、画像処理装置100が動画モードに設定されている状態で、動画記録開始指示に対応する制御信号をCPU114が操作部112から受信した際に開始されるものとして説明する。また、図13中のステップS1306、S1314の処理は、第1の実施形態で説明した図10、図12と同様であるため、その説明を省略する。
第2の実施形態に係る動画記録中の静止画記録処理について、図13のフローチャートを用いて詳述する。なお、このフローチャートに対応する処理は、例えば前述したメモリカード110のマウント処理が完了し、画像処理装置100が動画モードに設定されている状態で、動画記録開始指示に対応する制御信号をCPU114が操作部112から受信した際に開始されるものとして説明する。また、図13中のステップS1306、S1314の処理は、第1の実施形態で説明した図10、図12と同様であるため、その説明を省略する。
先ずS1301にて、CPU114は、書込み管理部117が決定したRUサイズを取得し、メモリ118内に、RUサイズ以上の端数クラスタ格納バッファの領域を確保する。次いで、S1302で、CPU114は、メモリ118に、端数クラスタ情報を格納するための領域を確保する。そして、S1303にて、動画記録を開始する。具体的には、CPU114が、撮像素子駆動回路102、画像処理回路103を制御し、動画データである画像データを画像メモリ104に格納するように要求する。また、CPU114は、音声処理回路106を制御し、PCMバッファ107にPCM音声データを記録するように要求する。更に、CPU114は、画像変換回路115を制御し、符号化された動画像と音声とを多重化したストリームデータの生成を要求する。この結果、生成されたストリームデータはストリームバッファ108に一時的に格納され、記録媒体制御回路111によりメモリカード110に動画像ファイルとして記録処理が行われる。
S1304で、操作部112から、静止画の記録を指示するためのレリーズボタン押下(記録指示)の制御信号を検出したか否かを判断する。レリーズボタンが押下されていると判断した場合は処理をS1305に移し、なされていないと判断した場合は処理をS1309に移す。
S1305では、CPU114は動画記録を停止する。具体的には、CPU114が、撮像素子駆動回路102、画像処理回路103を制御し、動画の画像データの取得を停止する。また、音声処理回路106を制御し、PCM音声データの記録を停止する。更に、画像変換回路115を制御し、ストリームデータの生成を停止させる。そして、CPU114は、S1306にて静止画撮影処理を実行し、S1307にて緊急端数クラスタ書き込み処理を実行する。そして、S1307にて動画記録を再開する。また、S1309に処理が進んだ場合には、ストリームデータ書込み処理を継続する。
S1310では、CPU114は操作部112から動画記録停止ボタンの制御信号を検出したか否かを判断する。動画記録停止ボタンが押下されていると判断した場合は処理をS1311に移し、なされていないと判断した場合は処理をS1304に移す。ステップS1311に移行した場合、CPU114は動画記録を停止する。そして、S1312で、CPU114は、記録媒体制御回路111を介して、メモリカード110を通常モードに移行させる。そして、S1313にて、動画ファイル保存処理を実行する。ステップ1314では、CPU114は、端数クラスタデータ結合処理を実行する。この端数クラスタデータ結合処理は第1の実施形態の説明を参照されたい。そして、S1315で、記録媒体制御回路111を介して、メモリカード110をスピードクラスモードに移行させる。そして、CPU114は、S1316にて、端数クラスタ情報の領域を解放し、S1317で、端数クラスタ格納バッファの領域を解放する。
[緊急端数クラスタ書き込み処理]
ここで、S1307で実行される緊急クラスタ書き込み処理について、図16のフローチャートを用いて再度説明する。
ここで、S1307で実行される緊急クラスタ書き込み処理について、図16のフローチャートを用いて再度説明する。
まず、CPU114は、S1601で、緊急書き込み条件に一致するか否かを判断する。緊急書き込み条件に合致したと判断された場合は、処理をS1602に移し、合致しないと判断した場合は処理をS1605に移し、本処理を終える。
なお、緊急書き込み条件とは、先に説明した第1の実施形態の条件項目(i)乃至(v)のいずれか1つでも満たす場合とした。
端数クラスタファイルをメモリカードに保存する際に要する期間をT,動画像の符号化ビットレートをTr、ストリームバッファ108の容量をCと定義したとき、以下の条件項目(vi)を追加しても良い。
(vi)Tr×T<Cを満たす場合
上記式を満たす場合というのは、端数クラスタファイルをメモリカードに保存したとしても、ストリームバッファ108に破綻なく動画像の符号化データを格納できることを意味する。
(vi)Tr×T<Cを満たす場合
上記式を満たす場合というのは、端数クラスタファイルをメモリカードに保存したとしても、ストリームバッファ108に破綻なく動画像の符号化データを格納できることを意味する。
また、スピードクラス移行中でも動画書き込みが破綻なく継続できる場合を条件にしても構わない。この場合、S1307内にて、メモリカード110を通常モードに移行させ、端数クラスタファイルをクラスタ単位で書き込んで、スピードクラスモードへ移行させても良い。
S1602からS1605までは、上述の第1の実施形態にて説明しているので、ここでは説明を省略する。
[ストリームデータ書込み処理]
ここで、S1309で実行されるストリームデータ書込み処理について、図14のフローチャートを用いて詳述する。
ここで、S1309で実行されるストリームデータ書込み処理について、図14のフローチャートを用いて詳述する。
CPU114は、S1401にて、ストリームバッファに格納されているデータサイズを取得し、S1402にて取得したデータサイズがRUサイズ以上か否かを判定する。データサイズがRUサイズ以上と判断した場合は処理をS1403に移し、データサイズがRUサイズ未満と判断した場合はストリームデータ書込み処理を終える。
S1403にて、CPU114は、書込みサイズを算出する。具体的には、ストリームバッファ108に格納されているデータのうち、RUサイズの整数倍(最大整数倍で良い)のサイズを書込みサイズとする。S1404にて、CPU114は、ストリームバッファのデータをS1403で算出した書込みサイズだけ、ファイル書込みする。なお、ストリームバッファのデータ書込みが完了した時点で、ストリームバッファに格納されているデータサイズを書込みサイズだけ、減算することとする。例えば、RUサイズのN倍のサイズを1回の書き込み対象のサイズとした場合、記録媒体制御回路111は、N個の空きRUを指定して、書き込みコマンドを送信する。
[動画ファイル保存処理]
ここで、S1313で実行される動画ファイル保存処理について、図15のフローチャートを用いて詳述する。
ここで、S1313で実行される動画ファイル保存処理について、図15のフローチャートを用いて詳述する。
CPU114は、S1501にて、記録媒体制御回路111を介して、メモリカード110を通常モードに移行させる。そして、CPU114は、S1502にて、ストリームバッファに格納されている未記録のデータをファイル書込みする。次いで、CPU114は、S1503にて、ストリームデータに動画記録情報などを付加して、動画ファイルを生成する。そして、S1504にて、動画ファイルとしてメモリカード110に記録する。
以上説明したように、本第2の実施形態の画像処理装置は、動画撮影において、動画記録中に静止画の記録を行う場合に、ファイルの断片化を回避し、動画のストリームデータをスピードクラスで書込み続けることができる。具体的には、動画記録中に静止画撮影が実行された場合、静止画ファイルのRUサイズの整数倍のデータを中間ファイル、RUサイズに満たないデータを端数クラスタデータとして分割し、先に中間ファイルを記録する。そして、動画記録中に、複数回、静止画記録が指示され、端数クラスタデータが1RUのサイズに達した時点で端数クラスタファイルがメモリカード110に記録される。また、動画像記録撮影終了時に中間ファイルと端数クラスタデータをファイル結合することで静止画ファイルとして成立させる。
また、所定の条件を満たした場合に、端数クラスタファイルを保存することで、画像処理装置に何らかの異常が発生した場合に、メモリカード110上で静止画ファイルとして未成立な中間ファイルのままとなってしまうことを防ぐが可能となる。特に、動画像符号化のビットレートが低くなったタイミングで端数クラスタファイルを保存することで、動画の書き込みを破綻させることなく、端数クラスタファイルの書き込み漏れを防ぐことが可能となる。
(その他の実施例)
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。
100…画像処理装置、101…撮像素子、102…撮像素子駆動回路、103…画像処理回路、104…画像メモリ、105…マイク、106…音声処理回路、107…PCMバッファ、108…ストリームバッファ、109…静止画バッファ、110…メモリカード、111…記録媒体制御回路、112…操作部、113…表示部、114…CPU、115…画像変換回路、116…ファイルシステム、117…書込み管理部、118…メモリ
Claims (9)
- 撮像手段と、
前記撮像手段により得られた静止画データを含む静止画ファイルを、所定のファイルシステムに従って記録媒体に書き込む記録手段と、
前記記録媒体における、前記所定のファイルシステムに規定された記録単位の整数倍のサイズを書き込み単位として前記静止画ファイルの書き込みを行うように、前記記録手段を制御する制御手段と、
メモリとを備え、
前記制御手段は、連続して複数の画面の静止画データを前記記録媒体に記録する所定の記録モードにおいて、一つの前記静止画ファイルについて、前記静止画ファイルのサイズ以下で、前記書き込み単位の整数倍の最大値となる第1のデータと、前記静止画ファイルのうち前記第1のデータを除いた第2のデータとを生成し、前記第1のデータを含む第1のファイルを前記記録媒体に書き込むように前記記録手段を制御するとともに、前記第2のデータを前記メモリに記憶し、前記所定の記録モードにおける静止画データの記録中に、前記メモリに記憶された、複数の前記静止画ファイルから生成された前記第2のデータのサイズが前記書き込みサイズに達したことに応じて、複数の前記静止画ファイルから生成された前記第2のデータを含む第2のファイルを記録するように前記記録手段を制御し、
前記所定の記録モードにおける静止画データの記録が終了した後、複数の前記第1のファイルそれぞれに対し、前記第2のファイルに格納された前記第2のデータを結合することにより、複数の静止画ファイルを生成する制御を行い、
更に、予め設定した所定の条件を満たした場合には、前記メモリ内の前記第2のデータのサイズが前記書き込みサイズに達したか否かにか関わらず、当該メモリ内のデータを前記第2のファイルとして前記記憶媒体に記録する
ことを特徴とする撮像装置。 - 撮像手段と、
前記撮像手段により得られた静止画データを含む静止画ファイルと、前記撮像手段により得られた動画データを含む動画ファイルとを、所定のファイルシステムに従って記録媒体に書き込む記録手段と、
前記記録媒体における、前記所定のファイルシステムに規定された記録単位の整数倍のサイズを書き込み単位として書き込みを行うように、前記記録手段を制御する制御手段と、
メモリとを備え、
前記制御手段は、前記動画データの記録中における静止画の記録指示に応じて、前記記録指示に応じて記録する一つの静止画ファイルについて、前記静止画ファイルのサイズ以下で、前記書き込み単位の整数倍の最大値となる第1のデータと、前記静止画ファイルのうち前記第1のデータを除いた第2のデータとを生成し、前記動画ファイルの書き込みを停止して前記第1のデータを含む第1のファイルを前記記録媒体に書き込み、前記第1のファイルの書き込み終了後に前記動画ファイルの書き込みを再開するように前記記録手段を制御するとともに、前記第2のデータを前記メモリに記憶し、前記動画データの記録中に前記メモリに記憶された、複数の前記静止画ファイルから生成された前記第2のデータのサイズが前記書き込みサイズに達したことに応じて、複数の前記静止画ファイルから生成された前記第2のデータを含む第2のファイルを記録するように前記記録手段を制御し、
前記動画データの記録が終了した後、複数の前記第1のファイルそれぞれに対し、前記第2のファイルに格納された前記第2のデータを結合することにより、複数の静止画ファイルを生成する制御を行い、
更に、予め設定した所定の条件を満たした場合には、前記メモリ内の前記第2のデータのサイズが前記書き込みサイズに達したか否かにか関わらず、当該メモリ内のデータを前記第2のファイルとして前記記憶媒体に記録することを特徴とする撮像装置。 - 前記第2のファイルを前記記録媒体に記録する際に要する期間をT,動画像の符号化ビットレートをTr、動画像のストリームを一時的に保存するバッファの容量をCとしたとき、
Tr×T<Cを満たす場合
を前記所定の条件とすることを特徴とする請求項2に記載の撮像装置。 - 前記所定の条件は、以下のいずれかの条件項目が満たされる場合である
(i).連写動作が終了した場合、
(ii).直前の静止画撮影から予め設定した所定時間が経過した場合、
(iii).所定枚数撮影した場合
(iv).記録可能な静止画枚数が0になった場合
(v).バッテリ残量が所定残量以下になった場合
ことを特徴とする請求項1乃至3の何れか1項に記載の撮像装置。 - 前記記憶媒体はメモリカードであることを特徴とする請求項1乃至4のいずれか1項に記載の撮像装置。
- 撮像装置におけるプロセッサに読み込ませ実行させることで、前記撮像装置を請求項1乃至5のいずれか1項に記載の撮像装置として機能させるためのプログラム。
- 請求項6に記載のプログラムを格納した、コンピュータが読み取り可能な記憶媒体。
- 撮像手段と、前記撮像手段により得られた静止画データを含む静止画ファイルを、所定のファイルシステムに従って記録媒体に書き込む記録手段と、メモリとを備える撮像装置の制御方法であって、
制御手段が、前記記録媒体における、前記所定のファイルシステムに規定された記録単位の整数倍のサイズを書き込み単位として前記静止画ファイルの書き込みを行うように、前記記録手段を制御する制御工程とを有し、
当該制御工程は、
連続して複数の画面の静止画データを前記記録媒体に記録する所定の記録モードにおいて、一つの前記静止画ファイルについて、前記静止画ファイルのサイズ以下で、前記書き込み単位の整数倍の最大値となる第1のデータと、前記静止画ファイルのうち前記第1のデータを除いた第2のデータとを生成し、前記第1のデータを含む第1のファイルを前記記録媒体に書き込むように前記記録手段を制御するとともに、前記第2のデータを前記メモリに記憶し、前記所定の記録モードにおける静止画データの記録中に、前記メモリに記憶された、複数の前記静止画ファイルから生成された前記第2のデータのサイズが前記書き込みサイズに達したことに応じて、複数の前記静止画ファイルから生成された前記第2のデータを含む第2のファイルを記録するように前記記録手段を制御し、
前記所定の記録モードにおける静止画データの記録が終了した後、複数の前記第1のファイルそれぞれに対し、前記第2のファイルに格納された前記第2のデータを結合することにより、複数の静止画ファイルを生成する制御を行い、
更に、予め設定した所定の条件を満たした場合には、前記メモリ内の前記第2のデータのサイズが前記書き込みサイズに達したか否かにか関わらず、当該メモリ内のデータを前記第2のファイルとして前記記憶媒体に記録する
ことを特徴とする撮像装置の制御方法。 - 撮像手段と、前記撮像手段により得られた静止画データを含む静止画ファイルと、前記撮像手段により得られた動画データを含む動画ファイルとを所定のファイルシステムに従って記録媒体に書き込む記録手段と、メモリとを備える撮像装置の制御方法であって、
制御手段が、前記記録媒体における、前記所定のファイルシステムに規定された記録単位の整数倍のサイズを書き込み単位として書き込みを行うように、前記記録手段を制御する制御工程とを有し、
当該制御工程は、
前記動画データの記録中における静止画の記録指示に応じて、前記記録指示に応じて記録する一つの静止画ファイルについて、前記静止画ファイルのサイズ以下で、前記書き込み単位の整数倍の最大値となる第1のデータと、前記静止画ファイルのうち前記第1のデータを除いた第2のデータとを生成し、前記動画ファイルの書き込みを停止して前記第1のデータを含む第1のファイルを前記記録媒体に書き込み、前記第1のファイルの書き込み終了後に前記動画ファイルの書き込みを再開するように前記記録手段を制御するとともに、前記第2のデータを前記メモリに記憶し、前記動画データの記録中に前記メモリに記憶された、複数の前記静止画ファイルから生成された前記第2のデータのサイズが前記書き込みサイズに達したことに応じて、複数の前記静止画ファイルから生成された前記第2のデータを含む第2のファイルを記録するように前記記録手段を制御し、
前記動画データの記録が終了した後、複数の前記第1のファイルそれぞれに対し、前記第2のファイルに格納された前記第2のデータを結合することにより、複数の静止画ファイルを生成する制御を行い、
更に、予め設定した所定の条件を満たした場合には、前記メモリ内の前記第2のデータのサイズが前記書き込みサイズに達したか否かにか関わらず、当該メモリ内のデータを前記第2のファイルとして前記記憶媒体に記録する
ことを特徴とする撮像装置の制御方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2014098890A JP2015216539A (ja) | 2014-05-12 | 2014-05-12 | 撮像装置及びその制御方法及びプログラム及び記憶媒体 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2014098890A JP2015216539A (ja) | 2014-05-12 | 2014-05-12 | 撮像装置及びその制御方法及びプログラム及び記憶媒体 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2015216539A true JP2015216539A (ja) | 2015-12-03 |
Family
ID=54753032
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2014098890A Pending JP2015216539A (ja) | 2014-05-12 | 2014-05-12 | 撮像装置及びその制御方法及びプログラム及び記憶媒体 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2015216539A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2018133618A (ja) * | 2017-02-13 | 2018-08-23 | キヤノン株式会社 | 記録装置およびその制御方法 |
-
2014
- 2014-05-12 JP JP2014098890A patent/JP2015216539A/ja active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2018133618A (ja) * | 2017-02-13 | 2018-08-23 | キヤノン株式会社 | 記録装置およびその制御方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7379097B2 (en) | Method and apparatus for providing live view and instant review in an image capture device | |
JP4913085B2 (ja) | マルチ画像ファイル編集装置、マルチ画像ファイル編集プログラム、マルチ画像ファイル編集方法 | |
JP2010154506A (ja) | 画像ファイル生成装置、カメラ、および画像ファイル生成プログラム | |
JP5268569B2 (ja) | 記録装置及び記録方法 | |
US20100045823A1 (en) | Recording apparatus, control method, and program | |
RU2518173C2 (ru) | Устройство записи данных изображения | |
JP5021546B2 (ja) | マルチ画像ファイル作成装置、マルチ画像ファイル作成プログラム、マルチ画像ファイル作成方法 | |
JP2005109648A (ja) | 撮像装置及び動画生成方法 | |
JP4492535B2 (ja) | 記録装置、記録制御方法 | |
JP2015216539A (ja) | 撮像装置及びその制御方法及びプログラム及び記憶媒体 | |
JP6278353B2 (ja) | 記録装置、記録方法、プログラム、ならびに撮像装置 | |
JP2014036402A (ja) | 記録装置及び記録方法 | |
JP2012080361A (ja) | 記録装置、撮像記録装置、記録方法及びプログラム | |
US8929723B2 (en) | Recording apparatus, imaging and recording apparatus, recording method, and program | |
US8134607B2 (en) | Recording apparatus | |
JP2007166553A (ja) | 動画像処理装置及び動画像処理方法 | |
JP2015216538A (ja) | 撮像装置及びその制御方法及びプログラム及び記憶媒体 | |
US8446491B2 (en) | Image capture device, method of controlling the same, and image capture system | |
JP4576941B2 (ja) | 情報処理装置および方法、プログラム、並びに画像処理装置 | |
JP4298583B2 (ja) | 撮像装置および携帯電話 | |
JP5396760B2 (ja) | 記録制御装置及び撮像装置 | |
JP2010009205A (ja) | 記録制御装置 | |
JP6566826B2 (ja) | 画像処理装置、およびその制御方法、および制御プログラム | |
JP2005333437A (ja) | 画像撮影機器 | |
JP6504927B2 (ja) | 記録装置及び記録装置の制御方法 |