(57)【要約】【課題】  動画撮影中に同時に取得される静止画データをファイルに効率よく書き込むことができるようにする。【解決手段】  動画データを格納する動画バッファと静止画データを格納する静止画バッファとにそれぞれ格納されている画像データを、１つのファイルに選択的に記録できるようにして、動画データの書き込み処理の合間に静止画データの記録処理を行い、動画データと静止画データとを１つのファイルに混在させて記録するようにすることによって、動画撮影中の静止画撮影において、静止画用バッファの容量により制限される枚数よりも多くの枚数の静止画ファイルを撮影可能にする。【選択図】  図１
2006303641.tif 000002
【特許請求の範囲】
【請求項１】
動画撮影を行う動画撮影手段と、
前記動画撮影手段により動画撮影中に静止画撮影を行うことが可能な動画静止画撮影手段と、
前記動画静止画撮影手段によって撮影された静止画データを静止画バッファに格納する静止画格納手段と、
前記動画静止画撮影手段によって撮影された動画データを動画バッファに格納する動画格納手段と、
前記静止画格納手段及び動画格納手段によって格納された画像データを、前記静止画バッファ及び動画バッファから所定のファイルへ選択的に記録するデータ記録手段とを有することを特徴とする撮像装置。
【請求項２】
前記データ記録手段は、前記動画データを記録する合間に、前記静止画データを分割して記録することを特徴とする請求項１に記載の撮像装置。
【請求項３】
前記データ記録手段は、前記静止画データを記録する際に、書き込み開始データ位置をクラスタ境界に合わせるとともに、書き込む画像データのサイズをクラスタサイズの整数倍に合わせることを特徴とする請求項１または２に記載の撮像装置。
【請求項４】
前記データ記録手段は、前記静止画バッファまたは前記動画バッファのうち、予め指定されたバッファから優先的に画像データを記録するデータ優先書き込み手段と、
前記データ優先書き込み手段による画像データの記録が行われていない場合に、他方のデータ書き込みを行うように切り替える書き込みデータ切り替え手段とを有することを特徴とする請求項１に記載の撮像装置。
【請求項５】
前記動画静止画撮影手段による撮影中に、動画の撮影時間と静止画の撮影可能枚数とを同時に表示する表示手段を有することを特徴とする請求項１に記載の撮像装置。
【請求項６】
前記動画データを動画ファイルとして認識することができない領域であって、前記静止画データを記録することが可能な記録領域と、前記記録領域に記録した静止画データ領域についてのインデックス情報を管理する静止画データインデックス情報管理部とを備えた管理ファイルを有することを特徴とする請求項１〜５の何れか１項に記載の撮像装置。
【請求項７】
前記管理ファイルに記録された前記動画データと前記静止画データとが混在するファイルと、動画ファイルと、静止画ファイルとを再生するファイル再生手段を有することを特徴とする請求項６に記載の撮像装置。
【請求項８】
前記ファイル再生手段が、前記動画データと前記静止画データとが混在するファイルを再生するときに、前記動画データと前記静止画データとが混在するファイルであることを表示する表示手段を有することを特徴とする請求項７に記載の撮像装置。
【請求項９】
前記管理ファイルに記録された動画データと静止画データとが混在するファイルから静止画データを分離する静止画データ分離手段を有することを特徴とする請求項６〜８の何れか１項に記載の撮像装置。
【請求項１０】
前記静止画データ分離手段によって分離した静止画データから静止画ファイルを作成する静止画ファイル作成手段を有することを特徴とする請求項９に記載の撮像装置。
【請求項１１】
前記静止画ファイル作成手段は、前記動画データと前記静止画データとが混在していた動画データファイルのヘッダ情報を参照して前記静止画ファイルのヘッダ情報を作成することを特徴とする請求項１０に記載の撮像装置。
【請求項１２】
前記静止画ファイル作成手段は、前記静止画データからサムネイル画像データを作成することを特徴とする請求項１０または１１に記載の撮像装置。
【請求項１３】
動画撮影を行う動画撮影工程と、
前記動画撮影工程により動画撮影中に静止画撮影を行うことが可能な動画静止画撮影工程と、
前記動画静止画撮影工程によって撮影された静止画データを静止画バッファに格納する静止画格納工程と、
前記動画静止画撮影工程によって撮影された動画データを動画バッファに格納する動画格納工程と、
前記静止画格納工程及び動画格納工程によって格納された画像データを、前記静止画バッファ及び動画バッファから所定のファイルへ選択的に記録するデータ記録工程とを有することを特徴とする撮像装置の制御方法。
【請求項１４】
前記データ記録工程は、前記動画データを記録する合間に、前記静止画データを分割して記録することを特徴とする請求項１３に記載の撮像装置の制御方法。
【請求項１５】
前記データ記録工程は、前記静止画データを記録する際に、書き込み開始データ位置をクラスタ境界に合わせるとともに、書き込む画像データのサイズをクラスタサイズの整数倍に合わせることを特徴とする請求項１３または１４に記載の撮像装置の制御方法。
【請求項１６】
前記データ記録工程は、前記静止画バッファまたは前記動画バッファのうち、予め指定されたバッファから優先的に画像データを記録するデータ優先書き込み工程と、
前記データ優先書き込み工程による画像データの記録が行われていない場合に、他方のデータ書き込みを行うように切り替える書き込みデータ切り替え工程とを有することを特徴とする請求項１３に記載の撮像装置の制御方法。
【請求項１７】
前記動画静止画撮影工程による撮影中に、動画の撮影時間と静止画の撮影可能枚数とを同時に表示する表示工程を有することを特徴とする請求項１３に記載の撮像装置の制御方法。
【請求項１８】
前記動画データを動画ファイルとして認識することができない領域であって、前記静止画データを記録することが可能な記録領域と、前記記録領域に記録した静止画データ領域についてのインデックス情報を管理する静止画データインデックス情報管理部とを備えた管理ファイルを有することを特徴とする請求項１３〜１７の何れか１項に記載の撮像装置の制御方法。
【請求項１９】
前記管理ファイルに記録された前記動画データと前記静止画データとが混在するファイルと、動画ファイルと、静止画ファイルとを再生するファイル再生工程を有することを特徴とする請求項１８に記載の撮像装置の制御方法。
【請求項２０】
前記ファイル再生工程が、前記動画データと前記静止画データとが混在するファイルを再生するときに、前記動画データと前記静止画データとが混在するファイルであることを表示する表示工程を有することを特徴とする請求項１９に記載の撮像装置の制御方法。
【請求項２１】
前記管理ファイルに記録された動画データと静止画データとが混在するファイルから静止画データを分離する静止画データ分離工程を有することを特徴とする請求項１８〜２０の何れか１項に記載の撮像装置の制御方法。
【請求項２２】
前記静止画データ分離工程によって分離した静止画データから静止画ファイルを作成する静止画ファイル作成工程を有することを特徴とする請求項２１に記載の撮像装置の制御方法。
【請求項２３】
前記静止画ファイル作成工程は、前記動画データと前記静止画データとが混在していた動画データファイルのヘッダ情報を参照して前記静止画ファイルのヘッダ情報を作成することを特徴とする請求項２２に記載の撮像装置の制御方法。
【請求項２４】
前記静止画ファイル作成工程は、前記静止画データからサムネイル画像データを作成することを特徴とする請求項２２または２３に記載の撮像装置の制御方法。
【請求項２５】
動画撮影を行う動画撮影工程と、
前記動画撮影工程により動画撮影中に静止画撮影を行うことが可能な動画静止画撮影工程と、
前記動画静止画撮影工程によって撮影された静止画データを静止画バッファに格納する静止画格納工程と、
前記動画静止画撮影工程によって撮影された動画データを動画バッファに格納する動画格納工程と、
前記静止画格納工程及び動画格納工程によって格納されたデータを、前記静止画バッファ及び動画バッファから所定のファイルへ選択的に記録するデータ記録工程とを有する撮像装置の制御方法をコンピュータに実行させることを特徴とするコンピュータプログラム。
【請求項２６】
前記請求項２５に記載のコンピュータプログラムを記録したことを特徴とするコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は撮像装置、撮像装置の制御方法、コンピュータプログラム及び記録媒体に関し、特に、動画撮影中に静止画撮影するために用いて好適な技術に関する。
【背景技術】
【０００２】
近年、静止画撮影機能に加えて動画撮影機能を備えるデジタルカメラが提案されている。このようなデジタルカメラは、ＣＦ（登録商標：Compact Flash）カードなどの外部記録媒体に、動画像データをＡＶＩ（Audio Video Interleaving）などのビデオフォーマットで記録する機能を有している。また、デジタルカメラの中には、動画撮影と同時に静止画撮影を行う製品が提案されている。
【０００３】
さらに、デジタルカメラに関する動画撮影中に静止画を取得する技術としては以下のものが提案されている。例えば特許文献１に記載の撮像装置においては、動画撮影中に同時に取得された静止画データを静止画用のバッファに格納しておき、動画撮影終了後に静止画ファイルとして構築する機能を有するものが提案されている。また、特許文献２に記載の撮像装置においては、動画撮影中に同時に静止画撮影がなされた場合に、取得した静止画データをリサイズして動画データの１コマとして適用するとともに、静止画ファイルとして構築する機能を有するものが提案されている。
【０００４】
【特許文献１】特開平０８−３３１４９６号公報
【特許文献２】特開２００３−２１９３４１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、動画データと静止画データを１つのファイルに記録する場合に、従来技術を利用すると以下の課題があった。例えば、特許文献１に記載の撮像装置の場合は、デジタルカメラの有する静止画バッファサイズを使い切ってしまうと、以降に静止画撮影することが不可能になってしまう問題点があった。また、特許文献２に記載の撮像装置の場合は、動画撮影中に静止画撮影の処理が集中して行われると、静止画データのファイルを書き込むための処理が連続的に発生するため、動画データを書き込むためのバンド幅を十分に得ることができなくなり、その結果としてコマ落ちが生じたり、動画撮影が中断したりしてしまう可能性があった。
【０００６】
本発明は前述の問題点にかんがみ、動画撮影中に同時に取得された静止画データをファイルに効率よく書き込むことができるようにすることを目的としている。
【課題を解決するための手段】
【０００７】
本発明の撮像装置は、動画撮影を行う動画撮影手段と、前記動画撮影手段により動画撮影中に静止画撮影を行うことが可能な動画静止画撮影手段と、前記動画静止画撮影手段によって撮影された静止画データを静止画バッファに格納する静止画格納手段と、前記動画静止画撮影手段によって撮影された動画データを動画バッファに格納する動画格納手段と、前記静止画格納手段及び動画格納手段によって格納された画像データを、前記静止画バッファ及び動画バッファから所定のファイルへ選択的に記録するデータ記録手段とを有することを特徴とする。
【０００８】
本発明の撮像装置の制御方法は、動画撮影を行う動画撮影工程と、前記動画撮影工程により動画撮影中に静止画撮影を行うことが可能な動画静止画撮影工程と、前記動画静止画撮影工程によって撮影された静止画データを静止画バッファに格納する静止画格納工程と、前記動画静止画撮影工程によって撮影された動画データを動画バッファに格納する動画格納工程と、前記静止画格納工程及び動画格納工程によって格納された画像データを、前記静止画バッファ及び動画バッファから所定のファイルへ選択的に記録するデータ記録工程とを有することを特徴とする。
【０００９】
本発明のコンピュータプログラムは、動画撮影を行う動画撮影工程と、前記動画撮影工程により動画撮影中に静止画撮影を行うことが可能な動画静止画撮影工程と、前記動画静止画撮影工程によって撮影された静止画データを静止画バッファに格納する静止画格納工程と、前記動画静止画撮影工程によって撮影された動画データを動画バッファに格納する動画格納工程と、前記静止画格納工程及び動画格納工程によって格納されたデータを、前記静止画バッファ及び動画バッファから所定のファイルへ選択的に記録するデータ記録工程とを有する撮像装置の制御方法をコンピュータに実行させることを特徴とする。
【００１０】
本発明記録媒体は、前記に記載のコンピュータプログラムを記載したことを特徴とする。
【発明の効果】
【００１１】
本発明によれば、動画データと静止画データとを選択的に所定のファイルに書き込むことができるようにしたので、動画撮影中の静止画撮影において、静止画用バッファの容量により制限される枚数よりも多くの枚数の静止画を撮影することが可能となり、ユーザーにとって利便性の高い撮像装置を実現できる。
【００１２】
また、本発明の他の特徴によれば、動画データを格納したバッファと静止画データを格納したバッファのうち、どちらか一方から優先的にデータを書き込むことができるようにしたので、動画撮影中に行う静止画記録処理のために、動画撮影が中断する問題が発生しないようにすることができる。
【００１３】
また、本発明のその他の特徴によれば、撮影中には動画撮影時間と静止画撮影可能枚数とを表示できるようにしたので、ユーザーが時間経過とともに変化する静止画撮影可能枚数を随時確認することができる。
【００１４】
また、本発明のその他の特徴によれば、動画データと静止画データとが混在するファイルを再生する際に、動画データと静止画データとが混在するファイルであることを表示手段上に表示するようにしたので、動画データと静止画データとが混在するファイルをユーザーが容易に選択することができる。
【００１５】
また、本発明のその他の特徴によれば、動画データと静止画データとが混在するファイルを、動画再生可能なファイルとして作成することができるようにしたので、データをファイルに効率よく書き込むことができる。
【００１６】
また、本発明のその他の特徴によれば、静止画データの記録領域をクラスタ単位で扱えるため、静止画ファイルの分離をファイル内でのデータ移動を行うことなくクラスタチェーンのつなぎ変えで実現し、静止画ファイルの分離に掛かる時間を大幅に改善することができる。
【００１７】
また、本発明のその他の特徴によれば、動画撮影中に静止画撮影を行う場合に、ヘッダ情報やサムネイル情報を含めた静止画データを記録するよりも、ファイルのデータサイズを小さくすることができるようにしたので、より多くの枚数の静止画ファイルを撮影することができる。
【発明を実施するための最良の形態】
【００１８】
（第１の実施の形態）
以下に、本発明による動画データ及び静止画データを１つのファイルに記録する撮像装置、及び静止画ファイルの分離方法の実施の形態について、図面を参照しながら説明する。
図１は、本実施の形態を示し、ファイル形式で撮像データの記録を行う撮像装置の一例を示すブロック図である。
【００１９】
図１において、１０１はレンズであり、図示していない被写体像を結像する。１０２は絞り機構であり、レンズ１０１からの入射光量を調節する。１０３は撮像素子あり、レンズ１０１から絞り機構１０２を通って入射した光信号を電気信号に変換する。１０４はアナログ・デジタル変換器（Ａ／Ｄ変換器）であり、撮像素子１０３によるアナログ信号をデジタル信号に変換する。１０５はカメラ信号処理回路であり、Ａ／Ｄ変換器１０４のデジタル信号に対して設定されたホワイトバランス（ＷＢ）などの処理を施す。
【００２０】
１０６は画像圧縮回路であり、画像データをＪＰＥＧなどの圧縮アルゴリズムを用いて圧縮する。１０７は内部記憶装置（ＲＡＭ）であり、動画データ用の動画バッファ領域と静止画用の静止画バッファ領域とを備えていて、撮影時にカメラ信号処理回路１０５から出力されたデータを一時的に記憶する。
【００２１】
１０８はコントローラであり、図示していないメモリ（ＲＯＭ）に記録されたソフトウェアに従い装置の各回路を制御する。１０９は記録媒体であり、ＲＡＭ１０７上に一時的に記憶されているデータをファイル形式で保存するメモリカードやディスクなどである。１１０は書き込み処理部であり、外部記録媒体１０９へのデータ書き込みを行う。本実施の形態では、外部記録媒体１０９に動画データと静止画データとを混在させたファイル形式で記録する。
【００２２】
この外部記録媒体１０９にはＣＦ（Compact Flash）カードを用いる。本実施の形態では、外部記録媒体１０９の記憶領域は、５１２バイトを１セクタとして各セクタに対して論理ブロックアドレス（ＬＢＡ（Logical Block Address））が割り当てられているものとする。
【００２３】
ファイルシステムにはＦＡＴ（File Allocation Table）を使用し、複数のセクタからなるクラスタ単位でデータを管理する。また、動画撮影中に静止画撮影する場合の記録は、RIFF（Resource Interchange File Format）に準拠したファイル形式で記録する。
【００２４】
図２は、本実施の形態における撮像装置の正面と背面の一例を示す図である。
図２において、動画撮影ＳＷ２０１は、動画撮影用に設けられたスイッチであって、半押しで動画撮影準備を開始し、全押しで動画撮影を開始する。また、静止画撮影ＳＷ２０２は、静止画撮影用に設けられたスイッチである。本実施の形態において、動画撮影ＳＷ２０１、及びこの動画撮影ＳＷ２０１に応じて動作する各機能を動画撮影手段と称する。また、静止画撮影ＳＷ２０２、及びこの静止画撮影ＳＷ２０２に応じて動作する各機能を動画静止画撮影手段と称する。
【００２５】
２０３はレンズ鏡胴である。２０４はモードスイッチであり、動画・静止画撮影モードを設けてもよいし、動画撮影モードでは静止画撮影を可能とするように設定してもよい。２０５は十字キーボタンであり、モニタに表示されるメニューを操作するのに用いる。２０６はメニューボタンであり、撮像装置に備えられたアプリケーションを起動するのに用いる。
【００２６】
２０７は決定ボタン、２０８はキャンセルボタンであり、これらのボタン２０７及び２０８は、いずれもモニタに表示されるメニューを操作するのに用いる。２０９はモニタであり、撮影結果やメニューを表示する。
【００２７】
図３は、図２に示した本実施の形態の撮像装置を用いて動画撮影と静止画撮影を同時に行う際の操作イメージの一例を示す図である。
図３において、３０１は、撮影中の被写体を表示するモニタである。３０２は、動画撮影中であることを示す動画アイコンである。また、３０３は動画撮影経過時間を示す経過時間アイコンである。
【００２８】
３０４は、静止画撮影可能な枚数を示す枚数アイコンであり、静止画バッファサイズの余裕分から算出される撮影可能枚数と、記憶媒体に撮影可能な枚数のうち少ない方の値を表示する。前者の場合は静止画撮影の間隔をおけばバッファ内のデータ処理が行われ撮影可能枚数が増加する。そこで、本実施の形態においては前者の場合と後者の場合で表示色を変えるなど、どちらの状況であるかユーザーが識別できるようにしている。３０５は静止画撮影用のスイッチであり、枚数アイコン３０４で残り撮影枚数が０でなければ静止画撮影が行われる。
【００２９】
図４は、本実施の形態における撮像装置で、動画データと静止画データとをファイルへ記録した場合のイメージの一例を示す図である。
図４において、動画バッファ４０１、静止画バッファ４０２は撮像装置の内部メモリ領域であって、内部記憶装置（ＲＡＭ）１０７に存在する。
【００３０】
動画バッファ４０１には、オーディオデータ４０３とビデオフレームデータ４０４とからなる動画データを格納する。また、静止画バッファ４０２には、静止画データを格納する。本実施の形態では、静止画データはヘッダ部４０５、ボディ部４０６、サムネイル部４０７で構成するExif形式で格納されるものとする。
【００３１】
RIFF（Resource Interchange File Format）ファイル４０８は、動画データと静止画データとを混在させて記録するファイルである。RIFFファイル形式とは、さまざまなリソースを１つのファイルで管理するためのファイル形式である。このRIFFファイル形式は、新しいフォーマットのリソースができても基本構造の互換性が保たれる構造を特徴としている。本実施の形態で利用するRIFFファイルはヘッダ部４０９、データ部４１０、動画用のＩＮＤＥＸ部４１１、静止画用のＩＮＤＥＸ部４１２から構成される。
【００３２】
４１３は動画データであり、動画バッファ４０１からRIFFファイル４０８に記録されていることを示す。４１４は静止画データであり、静止画バッファ４０２からRIFFファイル４０８に記録されていることを示す。
【００３３】
図５は、一般的なRIFFファイル形式の階層的なチャンク構造の一例を示す図である。
図５において、RIFFファイル形式は、RIFFチャンク５０１、LISTチャンク５０２、サブチャンク５０３を構成要素として有し、各チャンクはＩＤ部５０４、サイズ部５０５、データ部５０６を有している。
【００３４】
ＩＤ部５０４は、チャンクのタイプを識別するための４byte領域（FOURCCコード）である。RIFFチャンクであればフォームタイプ（例えば、図７における'AVI'チャンク７０１）が、LISTチャンクであればリストタイプ（例えば、図７における'movi'チャンク７０４）が格納される。サイズ部５０５は、チャンクのデータサイズを示す４byte領域である。
【００３５】
データ部５０６には、データまたは階層化されるチャンクが格納される。ここには、任意のLISTチャンク及びサブチャンクを格納することができる。この構造により、RIFFファイルは、ＩＤ、サイズ、タイプを順次検索することにより、目的とするデータを取得することが可能となっている。
【００３６】
図６は、本実施の形態で利用するAVIファイルを拡張したRIFFファイル形式におけるチャンク構造の一例を示す図である。
図６において、RIFFチャンク６０１のフォームタイプは'AVI'で、この下にLIST(hdrl)チャンク６０２(リストタイプ'hdrl')、ダミーサブチャンク６０３(タイプ'JUNK')、LIST(movi)チャンク６０４(リストタイプ'movi')、動画インデックスサブチャンク(idx1)６０５(タイプ'idx1')、静止画インデックスサブチャンク(idxP)６０６（タイプ'idxP'）の各ブロックがある。
【００３７】
LIST(hdrl)チャンク６０２には、AVIファイルのヘッダ部分が記録され、'avih'サブチャンク６０７や、'strl'サブチャンク６０８などをもつ。'avih'サブチャンク６０７は、AVIファイル全体の情報を管理する構造体(AVIMAINHEADER)を格納する。'strl'サブチャンク６０８は、ストリーム情報を管理する構造体(AVISTREAMHEADER)とビデオフレームデータ、オーディオデータなどを管理する構造体(BITMAPINFO WAVEFORMATEX)とを格納する。
【００３８】
JUNKサブチャンク６０３には、データ格納領域をファイルシステムのクラスタ境界に合わせるために、ダミーデータが記録される。LIST(movi)チャンク６０４には、撮影した動画を構成するオーディオデータ６０９、ビデオフレームデータ６１０が格納される。さらに本実施の形態のLIST(movi)チャンク６０４には、動画ファイルとしての非認識領域に静止画データチャンク６１１を記録する。
【００３９】
静止画データチャンク６１１は、同一の静止画ファイルのデータであっても複数のチャンクに分割して記録されていることもある。動画インデックスサブチャンク（idx1）６０５には、LIST(movi)チャンク６０４に格納されたオーディオデータ６０９、ビデオフレームデータ６１０のデータ位置、データサイズ、再生データ順序の情報が記録される。
【００４０】
静止画インデックスサブチャンク（idxP）６０６には、静止画データチャンク６１１についての属性情報テーブル６１２が記録される。
【００４１】
属性情報テーブル６１２には、静止画ファイル番号情報６１３と、このファイル番号に対応する静止画データチャンクのデータ記録位置及びデータサイズの情報６１４とが管理される。データ記録位置としては、例えばLIST(movi)チャンク６０４からのオフセット値を用いる。
【００４２】
図７は、本実施の形態の記録方法により静止画データを記録した場合の一例を示し、記録状況の結果の一例を示す図である。
図７において、データ先頭部７０１は、LIST(movi)チャンク６０４の先頭を示す。動画データ７０２は、オーディオデータチャンクまたはビデオフレームデータチャンクで構成される動画データを示す。
【００４３】
クラスタ境界７０３は、本実施の形態で利用するＦＡＴファイルシステムのクラスタ境界を示す。記録データはクラスタ単位（例えば１クラスタが１２８セクタ、１セクタが５１２byteであれば、６４Kbyteの領域サイズ）で管理される。ところが、動画データの大きさはセクタ・クラスタ単位を意識したものではないため、各動画データの先頭はほとんどの場合、クラスタ境界と一致しない。
【００４４】
第１の静止画データＡ７０４、第２の静止画データＡ７０５は、１枚の静止画ファイルのデータを分割して記録したデータチャンクを示す。これら静止画データＡ７０４、７０５のデータサイズはクラスタサイズの整数倍に合わせる。
【００４５】
ダミーデータ７０６は、静止画データを記録する直前のクラスタ領域内の非記録領域に記録するダミーデータを示す。これにより、静止画データの記録位置はクラスタ境界に合わせることができる。また、ダミーデータ７０６は、静止画データ記録後の動画データの記録位置をクラスタ境界に合わせるためのダミーデータでもある。
【００４６】
以上のように静止画データが記録されれば、静止画ファイルの分離はＦＡＴテーブルを操作することによるクラスタチェーンのつなぎ換えで実現することができる。
【００４７】
以上に説明した記録状況を実現するための、動画バッファと静止画バッファとからデータを書き込む方法を説明する。本実施の形態では、一定の秒数分の動画データ（以降、動画書き込み単位と呼ぶ）のデータ書き込みを行った後に、一定サイズの静止画データ（以降、静止画書き込み単位と呼ぶ）の書き込みを行う。
【００４８】
そして、本実施の形態では、すでにメディアに対するデータ記録履歴があってデータ書き込み速度が既知である状況を想定する。したがって、静止画書き込み単位データサイズは、静的に定まる動画書き込み単位データの取り得る最大データサイズ（最悪値）と、動画データ書き込み間隔と、データ書き込み速度とから以下のように算出される。
（静止画書き込み単位データサイズ [byte]）
＝（動画データ書き込み間隔[sec]）＊（書き込み速度[byte/sec]）−（動画書き込み単位の最大データサイズ[byte]）。
【００４９】
図８は、書き込み処理部１１０の構成例を示すブロック図である。
図８において、入力キーコントローラ８０１は、動画撮影ボタンや静止画撮影ボタンなどからの入力イベントを処理し、撮影タスク８０２へ通知する。撮影タスク８０２は、動画撮影コントローラ８０３、静止画撮影コントローラ８０４を制御する。また、撮影開始時には、動画バッファ８０５、静止画バッファ８０６、インデックスバッファ８０７、動画バッファ監視タスク８０８、書き込みタスク８０９を初期化する。撮影終了時には、書き込みタスク８０９へバッファフラッシュを指示する。
【００５０】
動画撮影コントローラ８０３は、撮影タスク８０２からの指示を受け、動画撮影による信号処理を行う。信号処理により得られたオーディオデータとビデオフレームデータは動画バッファ８０５に格納し、動画バッファ監視タスク８０８へオーディオデータ生成完了イベントとビデオフレームデータ生成完了イベントを通知する。
【００５１】
静止画撮影コントローラ８０４は、撮影タスク８０２からの指示を受け静止画撮影による信号処理を行う。この信号処理により得られた静止画データは静止画バッファ８０６に格納する。動画バッファ８０５は、動画撮影コントローラ８０３により生成される動画データが格納される。静止画バッファ８０６は、静止画撮影コントローラ８０４により生成される静止画データが格納される。
【００５２】
インデックスバッファ８０７は、書き込みタスク８０９により書き込まれる動画データチャンク及び静止画データチャンクのデータ位置やサイズなどの属性情報が格納される。動画バッファ監視タスク８０８は、動画撮影コントローラ８０３からのデータ生成完了イベントを受けて動画バッファ８０５をチェックする。動画バッファ内に一定フレーム数のデータが存在すれば、書き込みタスク８０９へ動画データ書き込み要求イベントを通知する。
【００５３】
書き込みタスク８０９は、動画バッファ監視タスク８０８から動画データ書き込み要求イベントを受けて、ファイルシステム８１０への動画データ及び静止画データのチャンク書き込み処理を行う。書き込んだデータチャンクに関するインデックス情報はインデックスバッファ８０７に格納する。このインデックス情報は、撮影終了時にファイルの構成要素である動画用インデックス部と静止画用インデックス部の作成のために参照される。ファイルシステム８１０では、ファイルへの書き込み処理を行う。
【００５４】
次に、図９−１〜９−６のフローチャートを用いて、本実施の形態での一連の動画データ・静止画データの書き込み処理手順を説明する。
図９−１は、撮影タスク８０２の動画・静止画の同時撮影処理手順の一例を示すフローチャートである。
図９−１において、ステップＳ１０１は、ユーザーによる撮影を待つ撮影待ち状態である。ステップＳ１０２では、入力キーコントローラ８０１から動画撮影準備キーイベントを受信する。
【００５５】
ステップＳ１０３では、撮影時のメディアの空き容量をチェックする。ステップＳ１０４では、ピント固定処理（ＡＦ処理）を行い、ピントが固定されたらステップＳ１０５に遷移する。ステップＳ１０５は、動画撮影準備を行う動画撮影準備中状態である。
【００５６】
ステップＳ１０６では、入力キーコントローラ８０１から動画撮影開始キーイベントを受信する。ステップＳ１０７では、動画バッファ８０５と静止画バッファ８０６とインデックスバッファ８０７とを初期化する。
【００５７】
ステップＳ１０８では、書き込みタスク８０９へ初期化イベントを通知する。ステップＳ１０９では、動画撮影コントローラ８０３を制御して動画キャプチャを開始する。ステップＳ１１０では、動画バッファ監視タスク８０８へ初期化イベントを通知して、ステップＳ１１１へ遷移する。
【００５８】
ステップＳ１１１は、動画撮影を行う動画撮影中状態である。ステップＳ１１２では、動画撮影が継続されるかチェックする。このチェックの結果、動画撮影を継続ならばステップＳ１１３に進み、動画撮影中状態において入力キーコントローラ８０１から静止画撮影キーイベントを受信する。
【００５９】
ステップＳ１１４では、静止画バッファ８０６に静止画撮影のための空き領域があるか否かをチェックする。このチェックの結果、空き領域があるならばステップＳ１１５に進み、静止画撮影コントローラ８０４を制御して静止画キャプチャを開始し、ステップＳ１１１へ遷移する。一方、ステップＳ１１４のチェックの結果、空き領域が無ければステップＳ１１６に進み、静止画バッファに空きが無いため静止画撮影ができないことをワーニング表示してステップＳ１１１へ遷移する。
【００６０】
また、ステップＳ１１２のチェックの結果、動画撮影を継続しないならばステップＳ１１７に進み、動画撮影中状態において入力キーコントローラ８０１から動画撮影終了キーイベントを受信する。次に、ステップＳ１１８に進み、動画撮影コントローラ８０３を制御して動画キャプチャを終了する。その後、ステップＳ１１９に進み、書き込みタスク８０９へバッファフラッシュ指示イベントを通知し、ステップＳ１０１へ遷移する。
【００６１】
図９−２は、動画バッファ監視タスク８０８の処理手順の一例を示すフローチャートである。
図９−２において、ステップＳ２０１は、タスク初期化待ち状態である。初期化処理が開始されるとステップＳ２０２に進み動画バッファ監視タスク初期化イベントを受信すると、ステップＳ２０３へ遷移し、動画撮影コントローラ８０３による動画書き込み単位のデータ生成を待つ、動画書き込み単位データ生成待ち状態となる。
【００６２】
動画書き込み単位データ生成処理が開始されると、ステップＳ２０４に進み、動画撮影コントローラ８０３からビデオフレームデータ生成完了イベントと、オーディオデータ生成完了イベントとを受信する。
【００６３】
次に、ステップＳ２０５に進み、動画書き込み単位データがバッファに格納されているか否かをチェックする。このチェックの結果、単位データがあるならば、ステップＳ２０６に進み、書き込みタスク８０９へ動画データ書き込み要求イベントを通知して、その後ステップＳ２０３の状態へ遷移する。一方、ステップＳ２０５のチェックの結果、単位データが無ければステップＳ２０６の処理をジャンプしてステップＳ２０３の状態へ直接遷移する。
【００６４】
図９−３は、書き込みタスク８０９の処理手順の一例を示すフローチャートである。
図９−３において、ステップＳ３０１は、タスク初期化待ち状態である。
タスク初期化処理が開始されると、ステップＳ３０２で撮影タスク８０２から書き込みタスク初期化イベントを受信する。次に、ステップＳ３０３に進み、書き込みタスクの初期化処理を行う。この初期化処理に関しては、図９−６のフローチャートを参照しながら後で詳細に説明する。次のステップＳ３０４は、書き込み待ち状態である。
【００６５】
書き込みが行われた場合にはステップＳ３０５に進み、動画撮影中かどうか否かをチェックする。このチェックの結果、動画撮影中ならば、ステップＳ３０６に進み、書き込みタスク８０９から動画データ書き込み要求イベントを受信する。本実施の形態では、まず動画データの書き込みから優先的に行うものとする。次に、ステップＳ３０７に進み、動画書き込み単位のフレーム数を指定して動画データの書き込み処理を行う。この動画データ書き込み処理に関しては、図９−４のフローチャートを参照しながら後で詳細に説明する。
【００６６】
次に、ステップＳ３０８に進み、静止画バッファ８０６内にデータがあるか否かをチェックする。このチェックの結果、データが無ければ、ステップＳ３０４へ遷移する。一方、ステップＳ３０８のチェックの結果、静止画バッファ８０６内にデータがあれば、ステップＳ３０９に進み、静止画書き込み単位のデータが書き込み対象の静止画ファイルの終端を含むか否かをチェックする。本実施の形態では、静止画書き込み単位はファイルシステムのクラスタサイズの整数倍となるように設定している。
【００６７】
このチェックの結果、静止画ファイルの終端を含むならば、ステップＳ３１０に進み、静止画ファイル終端部までのデータを取得する。一方、ステップＳ３０９のチェックの結果、静止画ファイルの終端を含まないならばステップＳ３１１に進み、静止画書き込み単位のデータを取得する。
【００６８】
ステップＳ３１０またはステップＳ３１１の処理を終了したら、次にステップＳ３１２に進み、ステップＳ３１０またはステップＳ３１１で取得した静止画データの書き込み処理を行い、ステップＳ３０４へ遷移する。この静止画データ書き込み処理に関しては、図９−５のフローチャートを参照しながら、後で詳細に説明する。
【００６９】
一方、ステップＳ３０５のチェックの結果、動画撮影中でなかったらステップＳ３１３に進み、撮影タスク８０２からバッファフラッシュ指示イベントを受信する。次に、ステップＳ３１４に進み、動画バッファ８０５に格納されたすべての動画フレーム数を取得する。次に、ステップＳ３１５に進み、ステップ３１４で取得した動画フレーム数を指定して動画データの書き込み処理を行う。
【００７０】
次に、ステップＳ３１６に進み、静止画バッファ８０６内にデータがあるか否かをチェックする。このチェックの結果、データが無ければ、ステップＳ３０１へ遷移する。一方、ステップＳ３１６のチェックの結果、データがあれば、ステップＳ３１７に進み、静止画バッファ８０６内の静止画ファイルデータについて、ファイル終端までのデータを取得する。本実施の形態においては、バッファフラッシュ処理の開始時には、フラッシュ処理以前に書き込みを行っていた静止画ファイルデータについて、ファイル終端までの残りのサイズを取得することになる。
【００７１】
次に、ステップＳ３１８に進み、ステップＳ３１７で取得したデータの書き込み処理を行う。その後、ステップＳ３１９に進み、静止画バッファ内にデータが残っているか否かをチェックする。このチェックの結果、データが残っていればステップＳ３１７に進み、次の静止画ファイルの書き込み処理を行う。
【００７２】
一方、ステップＳ３１９のチェックの結果、データが残っていなければ、すべての静止画ファイルデータ書き込みが終了したため、ステップＳ３２０に進んで書き込みタスク終了処理を行い、その後ステップＳ３０１へ遷移して初期化待ちとなる。ステップＳ３２０で行う終了処理に関しては、図９−６のフローチャートを参照しながら後で詳細に説明する。
【００７３】
図９−４（ａ）、（ｂ）は、ステップＳ３０６で行われる動画データ書き込み処理手順の一例を示すフローチャートである。
図９−４（ａ）に示したように、処理が開始されると、先ずステップＳ４０１では、動画フレームデータを書き込みためのインデックス値を初期化する。次に、ステップＳ４０２では、動画フレームデータの書き込み処理を行う。ステップＳ４０２の処理の詳細については、図９−４（ｂ）のフローチャートで説明する。次に、ステップＳ４０３では、前記インデックス値を更新する。
【００７４】
次に、ステップＳ４０４に進み、指定された動画フレーム数を書き込んだか否かをチェックする。ここで、指定された動画フレーム数とは、動画撮影時では動画書き込み単位のフレーム数であり、バッファフラッシュ時ではバッファ内のすべてのフレーム数となる。このチェックの結果、指定された動画フレーム数を書き込んでいなければ、ステップＳ４０２の処理へ戻り、ステップＳ４０４のチェックの結果、指定された動画フレーム数を書き込んでいれば、終了となる。
【００７５】
次に、図９−４（ｂ）を参照しながらステップＳ４０２のフレーム書き込み処理について詳細を説明する。
処理が開始されると、先ずステップＳ４０５において、動画バッファから１秒分のオーディオデータを取得する。次に、ステップＳ４０６に進み、ステップＳ４０５で取得したオーディオデータをチャンクに書き込む。
【００７６】
次に、ステップＳ４０７に進み、書き込んだオーディオデータチャンクの属性情報（データ位置、サイズ）をインデックスバッファ８０７へ記録する。次に、ステップＳ４０８に進み、動画バッファ８０５からフレームレートに相当するビデオフレームデータを取得する。
【００７７】
次に、ステップＳ４０９に進み、ビデオフレームデータ書き込みのためのインデックス値を初期化する。その後、ステップＳ４１０に進み、ステップＳ４０８で取得したビデオフレームデータをチャンクに書き込む。その後、ステップＳ４１１に進み、書き込んだビデオフレームデータチャンクの属性情報（データ位置、サイズ）をインデックスバッファ８０７へ記録する。
【００７８】
次に、ステップＳ４１２に進み、前記インデックス値を更新する。その後、ステップＳ４１３において、１秒分のビデオフレームデータの書き込みが終了したか否かをチェックする。このチェックの結果、終了していなければ、ステップＳ４１０の処理へ戻る。また、ステップＳ４１３のチェックの結果、終了していれば、フレーム書き込み処理は終了する。
【００７９】
図９−５は、ステップＳ３０８の静止画データ書き込み処理手順の一例を示すフローチャートである。
図９−５に示したように、処理が開始されると、先ずステップＳ５０１では、ダミーチャンクの書き込みを行う。本実施の形態では、静止画データの書き込み以前に動画データチャンクの書き込み処理を行っている。
【００８０】
ところが、図８に示したように、動画データチャンクの書き込み終了位置はクラスタ境界に合っていない。そこで、このステップＳ５０１では、静止画データチャンクの書き込み開始位置をファイルシステムのクラスタ境界に合わせるためにダミーチャンクの書き込みを行っている。
【００８１】
次に、ステップＳ５０２に進み、書き込み指定された静止画データが静止画ファイルの終端を含むか否かをチェックする。このチェックの結果、静止画ファイルの終端を含むならば、ステップＳ５０３に進み、書き込み指定された静止画ファイル終端までの静止画データをチャンクに書き込む。一方、ステップＳ５０２のチェックの結果、静止画ファイルの終端を含まなければ、ステップＳ５０５に進んで書き込み指定された静止画データをチャンクに書き込む。
【００８２】
ステップＳ３０５で説明したように、書き込み指定された静止画データはクラスタサイズの整数倍となっているので、本ステップでの書き込み後にはダミーチャンクを書き込む必要は無い。
【００８３】
次に、ステップＳ５０４に進み、ダミーチャンクの書き込みを再び行う。ステップＳ５０３で書き込みを行った静止画データチャンクは、ファイルシステムのクラスタサイズとは無関係なデータサイズとなっている。そこで、このステップＳ５０４で、静止画データの記録領域をファイルシステムのクラスタサイズの整数倍に合わせるためにダミーチャンクの書き込みを行っている。
【００８４】
次に、ステップＳ５０６に進み、書き込んだ静止画データチャンクの属性情報（静止画ファイル番号、データ位置、サイズ）をインデックスバッファ８０７へ記録する。
【００８５】
図９−６（ａ）は、図９−３におけるステップＳ３０３の書き込みタスク初期化処理の一例を示すフローチャートであり、図９−６（ｂ）は、ステップＳ３１９の書き込みタスク終了処理の一例を示すフローチャートである。
図９−６（ａ）に示したように、処理が開始されると、先ずステップＳ６０１では、撮影データを書き込むRIFFファイルをオープンする。次に、ステップＳ６０２に進み、ファイルのヘッダを生成する。次に、ステップＳ６０３に進み、動画データ、静止画データを書き込む'movi'チャンクをオープンする処理を行い、書き込みタスク初期化処理を終了する。
【００８６】
図９−６（ｂ）に示したように、処理が開始されると、先ずステップＳ６０４では、'movi'チャンクをクローズする。次に、ステップＳ６０５に進み、インデックスバッファ８０７に記録された動画データチャンクと静止画データチャンクの属性情報を読み込む。次に、ステップＳ６０６に進み、動画用インデックスと静止画用インデックスとを作成して、ステップＳ６０５で読み込んだ属性情報を書き込む。その後、ステップＳ６０７に進み、ファイルをクローズする処理を行い、書き込みタスク終了処理を終了する。
【００８７】
以上に説明した処理によって、動画データと静止画データをファイルへ書き込んだ場合のバッファ利用状況を図１０に例示する。
図１０は、本実施の形態における動画データと静止画データをファイルへ書き込んだ場合のバッファ利用状況を示す図である。
図１０において、線図１００１は、撮影中の動画バッファ内のデータ状況を示す。１００２は、動画バッファの最大バッファサイズ[byte]を示す。
【００８８】
１００３は動画書き込み単位データであり、動画書き込み単位のフレーム数に相当する動画データを示している。この動画書き込み単位データ１００３が動画バッファ内に格納されると、書き込みタスクへ動画データ書き込みイベントが通知される。１００４は動画書き込みタイミングであり、書き込みタスクへ動画データ書き込みイベントを通知されるタイミングを示している。
【００８９】
線図１００５は、撮影中の静止画バッファ内のデータ状況を示す。１００６は、静止画バッファの最大バッファサイズ[byte]を示す。１００７は生成静止画データであり、動画撮影中の静止画撮影により静止画バッファに静止画データが生成された様子を示している。１００８は静止画書き込みタイミングであり、書き込みタスクが動画データ書き込み処理を終え、静止画データ書き込み処理を開始するタイミングを示している。
【００９０】
１００９は書き込み静止画データであり、動画データ書き込み後にファイルへ書き込まれる静止画書き込み単位のデータを示す。以上に説明した処理を行うことによって、本実施の形態においては動画データ書き込みの合間に静止画データの書き込みを実現できるようにしている。
【００９１】
次に、本実施の形態で記録したファイルから静止画ファイルを分離する方法について説明する。
図１１は、本実施の形態における記録ファイルから静止画ファイルを分離するアプリケーションのユーザーインタフェースの一例を示す図である。
【００９２】
図１１において、画像１１０１は、記録ファイルを代表するレビュー画像を示す。アイコン１１０２は、記録ファイル内に静止画データが混在していることを示す。メニュー１１０３は、記録ファイルから静止画ファイルを分離するかどうか否かをユーザーに問い合わせるメニュー項目である。ユーザーは、十字キーと決定ボタンにより分離することを決定する。
【００９３】
図１２は、本実施の形態におけるファイル内に記録されている静止画データを分離して静止画ファイルを分離する手順の一例を示す図である。
図１２において、ファイル１２０１は、本実施の形態の記録方法により得られる動画データと静止画データとが混在するファイルである。テーブル１２０２は、ファイル内の静止画データチャンクの属性情報として、静止画番号と静止画データチャンク位置とデータサイズを管理しているテーブルである。
【００９４】
イメージ１２０３は、ファイル内に記録されている静止画データチャンクから作成される静止画ファイルのイメージ図である。本実施の形態では、静止画番号"PICT０００２"のファイルは、データサイズがｂ１[byte]の静止画データ格納領域とデータサイズがｂ２[byte]の静止画データ格納領域から構成されている。
【００９５】
テーブル１２０４は、ファイルシステムのディレクトリ・ファイル管理テーブルである。ファイル１２０１から静止画ファイルを分離する場合には、このテーブル１２０４に分離対象の静止画ファイル（例えばPICT０００２.JPG）を登録する。このとき、１２０５に示す開始クラスタには、静止画データが格納されているデータチャンクの先頭のクラスタ番号を指定する。そして、以降のデータ格納領域は１２０６に示すＦＡＴテーブルで管理させる。
【００９６】
矢印１２０７は、クラスタチェーンのつなぎ換えによって２つの静止画データ記録クラスタ領域を結合している様子を示す。クラスタ領域とは、動画データと静止画データとを無関係に順次格納した場合には、静止画ファイルを分離するために、ファイルデータの読み書きを繰り返し行わなければならない。そのため、ファイルサイズが大きくなると分離のために多くの処理時間が必要となってしまう問題点が生じる。
【００９７】
しかし、以上に説明した本実施の形態では、ファイル内に記録された静止画データチャンクはクラスタ境界とクラスタサイズに合わせている。そのため、ファイル内でのデータ移動を行うことなく、クラスタチェーンのつなぎ換えによって静止画ファイルを作成することができるため、静止画ファイルを高速に分離することができる。
【００９８】
（第２の実施の形態）
以下に、動画データ書き込みの合間に行う静止画データ書き込みのデータサイズを、書き込み履歴からの予測に基づいて動的に決定する方法について説明する。本実施の形態では、動画書き込み単位のデータ書き込みを行った後に、次の動画書き込みタイミングまでに書き込めるデータサイズの予測を行い、静止画データを書き込む。
【００９９】
動画書き込み要求イベントは動画書き込み単位の秒数の動画データが生成されるごとに発行されるため、動画データ書き込みタイミングはほぼ指定秒数に従う。したがって、予測される静止画書き込み可能データサイズは、動画書き込みに要した動画データ書き込み時間とデータ書き込み速度の実測値を用いて、以下のように算出される。
（静止画書き込み可能データサイズ [byte]）
＝｛（動画書き込み単位秒数[sec]）−（動画データ書き込み時間[sec]）｝＊（書き込み速度[byte/sec]）。
【０１００】
このとき、書き込み速度には直前の動画データ書き込み処理で得られる値を利用してもよいし、書き込み履歴の平均値を用いてもよい。書き込み処理部の構成及び、撮影タスク、動画バッファ監視タスクの処理は第１の実施の形態と同様である。
【０１０１】
図１３は、本実施の形態における、静止画データサイズを予測して書き込みを行う書き込みタスク８０９の処理手順の一例を示すフローチャートである。
図１３に示したように、ステップＳ１３０１はタスク初期化待ち状態である。そして、処理が開始されるとステップＳ１３０２に進み、撮影タスク８０２から書き込みタスク初期化イベントを受信する。次に、ステップＳ１３０３に進み、書き込みタスクの初期化処理を行う。この初期化処理は第１の実施の形態と同様である。その後、ステップＳ１３０４へ遷移する。ステップＳ１３０４は、書き込み待ち状態である。
【０１０２】
ステップＳ１３０４の書き込み待ち状態において、書き込みが発生するとステップＳ１３０５に進み、動画の撮影中か否かをチェックする。このチェックの結果、動画撮影中ならば、ステップＳ１３０６に進み、書き込み待ち状態において書き込みタスク８０２から動画データ書き込み要求イベントを受信する。
【０１０３】
次に、ステップＳ１３０７に進み、静止画バッファ８０６内に静止画データがあるか否かをチェックする。このチェックの結果、静止画データがあればステップＳ１３０８に進み、書き込めるデータサイズの予測処理を行う。一方、ステップＳ１３０７のチェックの結果、静止画データが無ければ、ステップＳ１３１６に進み、動画バッファ内にあるすべてのデータフレーム数を指定して動画データ書き込み処理を行い、その後、ステップＳ１３０４の書き込み待ち状態へ遷移する。
【０１０４】
前記ステップＳ１３０８の予測処理では、動画書き込み単位データの書き込み処理に要する時間と、書き込み速度の計測を開始する。その後、ステップＳ１３０９に進み、動画バッファ内にあるすべてのデータフレーム数を指定して動画データ書き込み処理を行う。ステップＳ１３０９で行う動画データの書き込み処理は、第１の実施の形態と同様である。次に、ステップＳ１３１０に進み、ステップＳ１３０８で開始した動画データ書き込みの計測を終了する。
【０１０５】
次に、ステップＳ１３１１に進み、次の動画データ書き込みタイミングまでに書き込むことができる静止画データサイズの予測値を前述の式により算出する。次に、ステップＳ１３１２において、ステップＳ１３１１で取得したサイズの静止画データが静止画ファイルの終端を含むか否かをチェックする。このチェックの結果、静止画ファイルの終端を含むならば、ステップＳ１３１３に進み、静止画ファイル終端部までのデータを取得する。
【０１０６】
一方、ステップＳ１３１２のチェックの結果、静止画ファイルの終端を含まないならば、ステップＳ１３１４に進み、ステップＳ１３１１で算出した予測書き込みサイズに収まる範囲でファイルシステムのクラスタサイズの整数倍となる最大のサイズの静止画データを取得する。
【０１０７】
ステップＳ１３１３またはステップＳ１３１４の処理を終了したら、ステップＳ１３１５に進む。ステップＳ１３１５では、ステップＳ１３１３またはステップＳ１３１４で取得した静止画データの書き込み処理を行う。そして、この静止画データの書き込み処理を終了したら、ステップＳ１３０４の書き込み待ち状態に戻る。
【０１０８】
一方、ステップＳ１３０５のチェックの結果、動画撮影中でなかったら、ステップＳ１３１７に進み、書き込み待ち状態において撮影タスク８０２からバッファフラッシュ指示イベントを受信する。次に、ステップＳ１３１８に進み、動画バッファ８０５に格納されたすべての動画フレーム数を取得する。その後、ステップＳ１３１９に進み、ステップＳ１３１８で取得した動画フレーム数を指定して動画データの書き込み処理を行う。
【０１０９】
次に、ステップＳ１３２０において、静止画バッファ８０６内に静止画データがあるか否かをチェックする。このチェックの結果、データが無ければ、ステップＳ１３０１の初期化待ち状態へ遷移する。また、ステップＳ１３２０のチェックの結果、静止画データがあれば、ステップＳ１３２１に進み、静止画バッファ８０６内の静止画ファイルデータについて、ファイル終端までのデータを取得する。バッファフラッシュ処理の開始時には、フラッシュ処理以前に書き込みを行っていた静止画ファイルデータについて、ファイル終端までの残りのサイズを取得することになる。
【０１１０】
次に、ステップＳ１３２２に進み、ステップＳ１３２１で取得した静止画データの書き込み処理を行う。次に、ステップＳ１３２３に進み、静止画バッファ内に静止画データが残っているか否かをチェックする。このチェックの結果、静止画データが残っていればステップＳ１３２１へ戻り、次の静止画ファイルの書き込み処理を行う。
【０１１１】
一方、ステップＳ１３２３のチェックの結果、静止画データが残っていなければ、すべての静止画ファイルデータ書き込みが終了したため、ステップＳ１３２４へ遷移して書き込みタスクの終了処理を行う。この終了処理は第１の実施の形態と同様である。
【０１１２】
以上に説明したように、本実施の形態によれば、動画データ書き込み後に次の動画データ書き込みタイミングまでに書き込むことができる静止画データサイズの予測を行い、予測値に従う静止画データ書き込みを行う。静止画書き込みデータサイズが実際の書き込み可能サイズよりも多めに予測された場合は、次の動画書き込みタイミングで動画バッファ内の全ての動画データを書き込むので、この場合に対応できるだけの動画バッファサイズを確保しておけばバッファオーバーフローは発生しない。この処理によって、データ書き込み処理を行わない時間帯を減らした効率的な書き込み処理を実現することができる。
【０１１３】
（第３の実施の形態）
以下に、動画撮影中に静止画撮影を行う際にExifファイルのボディ部のみをファイルに記録する場合の、静止画ファイルの分離方法について図面を参照しながら説明する。
図１４は、本実施の形態における、ファイル内に記録されている静止画データを分離してExif形式の静止画ファイルを分離する手順の一例を示す図である。
【０１１４】
図１４において、１４０１は、第１の実施の形態で説明した記録方法により得られる動画データと静止画データとが混在するファイルである。１４０２は、日付情報などを含むRIFFファイルのヘッダ部である。１４０３は、ファイル内の静止画データチャンクの属性情報として、静止画番号と静止画データチャンク位置とデータサイズとを管理しているテーブルである。
【０１１５】
イメージ１４０４は、ファイル内に記録されている静止画データチャンクから作成される静止画ファイルのイメージ図である。イメージ図１４０４内の１４０５は、ファイル１４０１から分離するExif静止画ファイルのボディ部である。イメージ図１４０４内のサムネイル部１４０６は、静止画ファイル分離時にボディ部１４０５から作成する。イメージ図１４０４内のExifヘッダ１４０７は、ファイル１４０１のヘッダ部１４０２から流用するヘッダ情報とサムネイル部１４０６とから作成する。
【０１１６】
テーブル１４０８は、ファイルシステムのディレクトリ・ファイル管理テーブルである。ファイル１４０１から静止画ファイルを分離する場合には、このテーブルに分離対象の静止画ファイル（例えばPICT０００２.JPG）を登録する。このとき、１４０９に示す開始クラスタには、作成したExifヘッダ１４０６のクラスタ番号を指定する。そして、以降のデータ格納領域は１４１０に示すＦＡＴテーブルで管理させる。
【０１１７】
ＦＡＴテーブル内の第１の要素１４１１は、作成したExifヘッダ１４０７が記録されているデータ領域である。第２の要素１４１２は、ファイル１４０１から分離した静止画ファイルボディ部１４０５が記録されているデータ領域である。矢印１４１３は、クラスタチェーンのつなぎ換えによって、別々のデータ領域に記録されている第１の要素１４１１と第２の要素１４１２のExifヘッダ部１４０７とボディ部１４０５とを結合している様子を示す。
【０１１８】
以上に説明したように本実施の形態では、静止画ファイルのボディ部のみをファイルに記録して、ヘッダ情報、サムネイル情報は静止画ファイル分離時に作成する。そのため、ファイル内にヘッダ情報やサムネイル情報を含む静止画データを記録する場合よりも、記録するファイルのデータサイズを小さくすることができる。
【０１１９】
（本発明に係る他の実施の形態）
前述した本発明の実施の形態における撮像装置を構成する各手段、並びに画像記録方法の各ステップは、コンピュータのＲＡＭやＲＯＭなどに記憶されたプログラムが動作することによって実現できる。このプログラム及び前記プログラムを記録したコンピュータ読み取り可能な記録媒体は本発明に含まれる。
【０１２０】
また、本発明は、例えば、システム、装置、方法、プログラムもしくは記録媒体等としての実施の形態も可能であり、具体的には、複数の機器から構成されるシステムに適用してもよいし、また、一つの機器からなる装置に適用してもよい。
【０１２１】
なお、本発明は、前述した実施の形態の機能を実現するソフトウェアのプログラム（実施の形態では図９−１〜図９−６、図１３に示すフローチャートに対応したプログラム）を、システムあるいは装置に直接、あるいは遠隔から供給し、そのシステムあるいは装置のコンピュータが前記供給されたプログラムコードを読み出して実行することによっても達成される場合を含む。
【０１２２】
したがって、本発明の機能処理をコンピュータで実現するために、前記コンピュータにインストールされるプログラムコード自体も本発明を実現するものである。つまり、本発明は、本発明の機能処理を実現するためのコンピュータプログラム自体も含まれる。
【０１２３】
その場合、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより実行されるプログラム、ＯＳに供給するスクリプトデータ等の形態であってもよい。
【０１２４】
プログラムを供給するための記録媒体としては、例えば、フロッピー（登録商標）ディスク、ハードディスク、光ディスク、光磁気ディスク、ＭＯ、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷ、磁気テープ、不揮発性のメモリカード、ＲＯＭ、ＤＶＤ（ＤＶＤ−ＲＯＭ、ＤＶＤ−Ｒ）などがある。
【０１２５】
その他、プログラムの供給方法としては、クライアントコンピュータのブラウザを用いてインターネットのホームページに接続し、前記ホームページから本発明のコンピュータプログラムそのもの、もしくは圧縮され自動インストール機能を含むファイルをハードディスク等の記録媒体にダウンロードすることによっても供給できる。
【０１２６】
また、本発明のプログラムを構成するプログラムコードを複数のファイルに分割し、それぞれのファイルを異なるホームページからダウンロードすることによっても実現可能である。つまり、本発明の機能処理をコンピュータで実現するためのプログラムファイルを複数のユーザーに対してダウンロードさせるＷＷＷサーバも、本発明に含まれるものである。
【０１２７】
また、本発明のプログラムを暗号化してＣＤ−ＲＯＭ等の記録媒体に格納してユーザーに配布し、所定の条件をクリアしたユーザーに対し、インターネットを介してホームページから暗号化を解く鍵情報をダウンロードさせ、その鍵情報を使用することにより暗号化されたプログラムを実行してコンピュータにインストールさせて実現することも可能である。
【０１２８】
また、コンピュータが、読み出したプログラムを実行することによって、前述した実施の形態の機能が実現される他、そのプログラムの指示に基づき、コンピュータ上で稼動しているＯＳなどが、実際の処理の一部または全部を行い、その処理によっても前述した実施の形態の機能が実現され得る。
【０１２９】
さらに、記録媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行い、その処理によっても前述した実施の形態の機能が実現される。
【図面の簡単な説明】
【０１３０】
【図１】本発明の第１の実施の形態における、撮像装置の全体構成の一例を示すブロック図である。
【図２】本発明の第１の実施の形態における、撮像装置の正面と背面の一例を示す図である。
【図３】本発明の第１の実施の形態における、動画撮影と静止画撮影を同時に行う際の操作イメージの一例を示す図である。
【図４】本発明の第１の実施の形態の撮像装置で、ファイルに動画データと静止画データとを書き込むイメージの一例を示す図である。
【図５】一般的なRIFFファイル形式の階層的なチャンク構造の一例を示す図である。
【図６】本発明の第１の実施の形態で利用するAVIファイルを拡張したRIFFファイル形式におけるチャンク構造の一例を示す図である。
【図７】本発明の第１の実施の形態における、クラスタ境界に合わせた静止画データの記録状況の一例を示す図である。
【図８】本発明の第１の実施の形態における、書き込み処理部の構成例を示すブロック図である。
【図９−１】本発明の第１の実施の形態における、撮像タスクの動画・静止画の同時撮影処理手順の一例を示すフローチャートである。
【図９−２】本発明の第１の実施の形態における、動画バッファ監視タスクの処理手順の一例を示すフローチャートである。
【図９−３】本発明の第１の実施の形態における、書き込みタスクの処理手順の一例を示すフローチャートである。
【図９−４】本発明の第１の実施の形態における、書き込みタスクの動画データ書き込み処理手順の一例を示すフローチャートである。
【図９−５】本発明の第１の実施の形態における、書き込みタスクの静止画データ書き込み処理手順の一例を示すフローチャートである。
【図９−６】本発明の第１の実施の形態における、書き込みタスクの初期化・終了処理手順の一例を示すフローチャートである。
【図１０】本発明の第１の実施の形態における、動画データと静止画データの書き込み時のバッファ利用状況を示す図である。
【図１１】本発明の第１の実施の形態における、静止画ファイルを分離するアプリケーションのユーザーインタフェースの一例を示す図である。
【図１２】本発明の第１の実施の形態における、記録ファイルから静止画ファイルを分離する手順の一例を示す図である。
【図１３】本発明の第２の実施の形態における、書き込み制御タスクの処理手順の一例を示すフローチャートである。
【図１４】本発明の第３の実施の形態における、静止画ファイルの分離方法の一例を示す図である。
【符号の説明】
【０１３１】
１０１  レンズ
１０２  絞り機構
１０３  撮像素子
１０４  Ａ／Ｄ
１０５  信号処理回路
１０６  圧縮回路
１０７  メモリ
１０８  ＭＰＵ
１０９  外部記録媒体
１１０  書き込み処理部
【図１】
2006303641.tif 000003
【図２】
2006303641.tif 000004
【図３】
2006303641.tif 000005
【図４】
2006303641.tif 000006
【図５】
2006303641.tif 000007
【図６】
2006303641.tif 000008
【図７】
2006303641.tif 000009
【図８】
2006303641.tif 000010
【図９−１】
2006303641.tif 000011
【図９−２】
2006303641.tif 000012
【図９−３】
2006303641.tif 000013
【図９−４】
2006303641.tif 000014
【図９−５】
2006303641.tif 000015
【図９−６】
2006303641.tif 000016
【図１０】
2006303641.tif 000017
【図１１】
2006303641.tif 000018
【図１２】
2006303641.tif 000019
【図１３】
2006303641.tif 000020
【図１４】
2006303641.tif 000021