(57)【要約】【課題】画像データのコピー処理を要することなく、より過去の画像データまで記憶しておくことができるようにする。【解決手段】先ずＥＭＰＴＹの値により示される番号のフレームバッファのフレーム寿命ＬＩＦＥ［ＥＭＰＴＹ］に、寿命番号ＳＴＰ＿ＮＵＭで示される寿命初期値ＳＴＡＭＰ［ＳＴＰ＿ＮＵＭ］を設定する（Ｓ１０８）。４種類の寿命初期値は「１９→７→１１→７」と変化し、寿命番号ＳＴＰ＿ＮＵＭの値は１〜Ｎ＿ＳＴＡＭＰ（＝４）の間で変化する。よって、Ｓ１０８の処理が繰り返し実行された際、新たに画像が格納されたフレームバッファは、寿命番号ＳＴＰ＿ＮＵＭが［１］である場合には、寿命初期値ＳＴＡＭＰ［１］＝「１９」、［２］である場合にはＳＴＡＭＰ［２］＝「７」、［３］である場合にはＳＴＡＭＰ［３］＝「１１」、［４］である場合にはＳＴＡＭＰ［４］＝「７」の寿命初期値が設定される。【選択図】図３
2008236467.tif 000002
【特許請求の範囲】
【請求項１】
被写体像を順次撮像する撮像手段と、
この撮像手段により撮像される各々被写体像を記憶する複数の記憶領域を有する記憶手段と、
この記憶手段において上書きを許可された記憶領域に、前記撮像手段により撮像された被写体像を上書き記憶させる記憶制御手段と、
この記憶制御手段により前記被写体像が記憶された記憶領域毎に寿命を設定する寿命設定手段と、
この寿命設定手段により設定された寿命を漸次変化させる寿命制御手段と、
この寿命制御手段の制御に伴って変化した寿命が満了したか否かを判断する判断手段と、
この判断手段により寿命が満了したと判断された場合に、当該記憶領域への上書きを許可する許可手段と
を備えることを特徴とする画像記憶装置。
【請求項２】
前記寿命制御手段は、所定の周期で前記寿命を漸次変化させることを特徴とする請求項１記載の画像記憶装置。
【請求項３】
前記記憶制御手段による前記被写体像の上書き記憶と、前記寿命制御手段による前記寿命の変化とが同期することを特徴とする請求項１又は２記載の画像記憶装置。
【請求項４】
前記許可手段は、前記寿命が所定の値となっている記憶領域を所定の時間間隔で検索し、この検索した記憶領域への上書きを許可する手段を更に備えることを特徴とする請求項１、２又は３記載の画像記憶装置。
【請求項５】
前記寿命制御手段は、前記寿命の値をカウントダウン又はカウントアップさせ、
前記判断手段は、前記寿命制御手段によりカウントダウン又はカウントアップされた寿命の値が所定値となった否かを判断し、
前記許可手段は、前記判断手段により前記寿命の値が所定値となったと判断された場合に、前記記憶領域への上書きを許可することを特徴とする請求項１から４にいずれか記載の画像記憶装置。
【請求項６】
前記許可手段は、所定の時間間隔で前記寿命の値を強制的に前記所定値にして、前記記憶領域への上書き許可する手段を備えることを特徴とする請求項５記載の画像記憶装置。
【請求項７】
前記寿命制御手段が前記寿命の値をカウントダウンさせる場合において、
前記寿命設定手段は、前記記憶領域に記憶された被写体像の記憶タイミングに応じて異なる初期値を前記寿命の値として設定することを特徴とする請求項５又は６記載の画像記憶装置。
【請求項８】
前記寿命制御手段が前記寿命の値をカウントアップさせる場合において、
前記寿命設定手段は、満了値を前記記憶領域毎に設定することを特徴とする請求項５又は６記載の画像記憶装置。
【請求項９】
前記寿命制御手段が前記寿命の値をカウントアップさせる場合において、
前記判断手段は、前記記憶領域に記憶された被写体像の記憶タイミングに応じて異なる値を満了値として、前記寿命が満了したか否かを判断することを特徴とする請求項５又は６記載の画像記憶装置。
【請求項１０】
トリガー発生時に前記記憶手段の各記憶領域に記憶されている被写体像を記録手段に記録させる記録制御手段を備えることを特徴とする請求項１から９にいずれか記載の画像記憶装置。
【請求項１１】
被写体像を順次撮像する撮像手段と、この撮像手段により撮像される各々被写体像を記憶する複数の記憶領域を有する記憶手段とを備える画像記憶装置が有するコンピュータを、
前記記憶手段において上書きを許可された記憶領域に、前記撮像手段により撮像された被写体像を上書き記憶させる記憶制御手段と、
この記憶制御手段により前記被写体像が記憶された記憶領域毎に寿命を設定する寿命設定手段と、
この寿命設定手段により設定された寿命を漸次変化させる寿命制御手段と、
この寿命制御手段の制御に伴って変化した寿命が満了したか否かを判断する判断手段と、
この判断手段により寿命が満了したと判断された場合に、当該記憶領域への上書きを許可する許可手段と
して機能させることを特徴とする画像記憶制御プログラム。
【請求項１２】
被写体像を順次撮像する撮像手段と、この撮像手段により撮像される各々被写体像を記憶する複数の記憶領域を有する記憶手段を備える画像記憶装置における画像記憶方法であって、
前記記憶手段において上書きを許可された記憶領域に、前記撮像手段により撮像された被写体像を上書き記憶させる記憶制御ステップと、
この記憶制御ステップにより前記被写体像が記憶された記憶領域毎に寿命を設定する寿命設定ステップと、
この寿命設定ステップにより設定された寿命を漸次変化させる寿命制御ステップと、
この寿命制御ステップでの制御に伴って変化した寿命が満了したか否かを判断する判断ステップと、
この判断ステップにより寿命が満了したと判断された場合に、当該記憶領域への上書きを許可する許可ステップと
を含むことを特徴とする画像記憶方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、シャッター操作等のトリガーが発生した時点から過去の連写画像を記憶する画像記憶装置、及びこの画像記憶装置に用いられる画像記憶制御プログラム及び画像記憶方法に関する。
【背景技術】
【０００２】
従来、過去の連写画像を記録する撮像装置が提案されている。この撮像装置は、所定のフレームレートで撮像された画像データをバッファメモリに順次記憶する。そして、トリガーが発生すると、記憶されている複数枚分の画像データをバッファメモリから読み出して、画像メモリに記録する。これにより、画像メモリにトリガー発生時点から過去に撮影された連写画像データを記録することができる。
【０００３】
また、バッファメモリに画像データを記憶する際には、第１バッファと第２バッファとを設け、新しい画像データを順次第１バッファに記憶していく。第１バッファが満杯になると、最も古い画像データの複数枚に１枚を第２バッファにコピーし、第１バッファの古い画像データを消去する。これにより、バッファメモリの限られた容量内において、より過去の画像データまでバッファメモリに記憶しておくことができるようにしている。なお、第２バッファが満杯になった場合には、最も古い画像データを順次消去していく。（例えば、特許文献１参照。）。
【特許文献１】特開２００４−３０４４１８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、従来においてはこのように第１バッファから間引きしながら第２のバッファに画像データをコピーすることにより、第１バッファに新たな画像データの記憶領域を確保するようにしている。したがって、画像データのコピー処理が不可欠となり、ＣＰＵの処理負担を増大させたり、他の処理を遅延させる一因となってしまう。
【０００５】
本発明は、かかる従来の課題に鑑みてなされたものであり、画像データのコピー処理を要することなく、より過去の画像データまで記憶しておくことができるようにした撮像装置、画像表示制御プログラム及び画像表示制御方法を提供することを目的とするものである。
【課題を解決するための手段】
【０００６】
前記課題を解決するために請求項１記載の発明に係る画像記憶装置にあっては、被写体像を順次撮像する撮像手段と、この撮像手段により撮像される各々被写体像を記憶する複数の記憶領域を有する記憶手段と、この記憶手段において上書きを許可された記憶領域に、前記撮像手段により撮像された被写体像を上書き記憶させる記憶制御手段と、この記憶制御手段により前記被写体像が記憶された記憶領域毎に寿命を設定する寿命設定手段と、この寿命設定手段により設定された寿命を漸次変化させる寿命制御手段と、この寿命制御手段の制御に伴って変化した寿命が満了したか否かを判断する判断手段と、この判断手段により寿命が満了したと判断された場合に、当該記憶領域への上書きを許可する許可手段とを備えることを特徴とする。
【０００７】
また、請求項２記載の発明に係る画像記憶装置にあっては、前記寿命制御手段は、所定の周期で前記寿命を漸次変化させることを特徴とする。
【０００８】
また、請求項３記載の発明に係る画像記憶装置にあっては、前記記憶制御手段による前記被写体像の上書き記憶と、前記寿命制御手段による前記寿命の変化とが同期することを特徴とする。
【０００９】
また、請求項４記載の発明に係る画像記憶装置にあっては、前記許可手段は、前記寿命が所定の値となっている記憶領域を所定の時間間隔で検索し、この検索した記憶領域への上書きを許可する手段を更に備えることを特徴とする。
【００１０】
また、請求項５記載の発明に係る画像記憶装置にあっては、前記寿命制御手段は、前記寿命の値をカウントダウン又はカウントアップさせ、前記判断手段は、前記寿命制御手段によりカウントダウン又はカウントアップされた寿命の値が所定値となった否かを判断し、前記許可手段は、前記判断手段により前記寿命の値が所定値となったと判断された場合に、前記記憶領域への上書きを許可することを特徴とする。
【００１１】
また、請求項６記載の発明に係る画像記憶装置にあっては、前記許可手段は、所定の時間間隔で前記寿命の値を強制的に前記所定値にして、前記記憶領域への上書き許可する手段を備えることを特徴とする。
【００１２】
また、請求項７記載の発明に係る画像記憶装置にあっては、前記寿命制御手段が前記寿命の値をカウントダウンさせる場合において、前記寿命設定手段は、前記記憶領域に記憶された被写体像の記憶タイミングに応じて異なる初期値を前記寿命の値として設定することを特徴とする。
【００１３】
また、請求項８記載の発明に係る画像記憶装置にあっては、前記寿命制御手段が前記寿命の値をカウントアップさせる場合において、前記寿命設定手段は、満了値を前記記憶領域毎に設定することを特徴とする。
【００１４】
また、請求項９記載の発明に係る画像記憶装置にあっては、前記寿命制御手段が前記寿命の値をカウントアップさせる場合において、前記判断手段は、前記記憶領域に記憶された被写体像の記憶タイミングに応じて異なる値を満了値として、前記寿命が満了したか否かを判断することを特徴とする。
【００１５】
また、請求項１０記載の発明に係る画像記憶装置にあっては、トリガー発生時に前記記憶手段の各記憶領域に記憶されている被写体像を記録手段に記録させる記録制御手段を備えることを特徴とする。
【００１６】
また、請求項１１記載の発明に係る画像記憶制御プログラムにあっては、被写体像を順次撮像する撮像手段と、この撮像手段により撮像される各々被写体像を記憶する複数の記憶領域を有する記憶手段とを備える画像記憶装置が有するコンピュータを、前記記憶手段において上書きを許可された記憶領域に、前記撮像手段により撮像された被写体像を上書き記憶させる記憶制御手段と、この記憶制御手段により前記被写体像が記憶された記憶領域毎に寿命を設定する寿命設定手段と、この寿命設定手段により設定された寿命を漸次変化させる寿命制御手段と、この寿命制御手段の制御に伴って変化した寿命が満了したか否かを判断する判断手段と、この判断手段により寿命が満了したと判断された場合に、当該記憶領域への上書きを許可する許可手段として機能させることを特徴とする。
【００１７】
また、請求項１２記載の発明に係る画像記憶方法にあっては、被写体像を順次撮像する撮像手段と、この撮像手段により撮像される各々被写体像を記憶する複数の記憶領域を有する記憶手段を備える画像記憶装置における画像記憶方法であって、前記記憶手段において上書きを許可された記憶領域に、前記撮像手段により撮像された被写体像を上書き記憶させる記憶制御ステップと、この記憶制御ステップにより前記被写体像が記憶された記憶領域毎に寿命を設定する寿命設定ステップと、この寿命設定ステップにより設定された寿命を漸次変化させる寿命制御ステップと、この寿命制御ステップでの制御に伴って変化した寿命が満了したか否かを判断する判断ステップと、この判断ステップにより寿命が満了したと判断された場合に、当該記憶領域への上書きを許可する許可ステップとを含むことを特徴とする。
【発明の効果】
【００１８】
本発明によれば、画像データのコピー処理を要することなく、より過去の画像データまで記憶しておくことができる。
【発明を実施するための最良の形態】
【００１９】
以下、本発明の一実施の形態を図にしたがって説明する。
（第１の実施の形態）
図１は、本発明の各実施の形態に共通するデジタルカメラ１の回路構成を示すブロック図であり、静止画撮影機能と連写（動画撮影）機能とを備える。このデジタルカメラ１は、ＣＣＤ２とＤＳＰ／ＣＰＵ３とを備えており、ＣＣＤ２は、感光部にベイヤー配列の原色フィルターが設けられたものである。ＤＳＰ／ＣＰＵ３は、画像データの圧縮・伸張処理を含む各種のデジタル信号処理機能を有するとともにデジタルカメラ１の各部を制御するワンチップマイコンである。
【００２０】
ＤＳＰ／ＣＰＵ３には、ＣＣＤ２を所定のフレームレートで駆動するＴＧ（Timing Generator）４が接続されており、ＴＧ４には、ＣＣＤ２から出力される被写体の光学像に応じたアナログの撮像信号が入力するユニット回路５が接続されている。ユニット回路５は、ＣＣＤ２から出力された撮像信号に含まれるＣＣＤ２の駆動ノイズを減少させる相関二重サンプリング回路（ＣＤＳ回路）と、ノイズ低減後における信号のゲインを調整する自動利得制御回路（ＡＧＣ回路）、ゲイン調整後の信号をデジタル信号に変換するＡ／Ｄ変換器を含み、ＣＣＤ２から入力したアナログの撮像信号をデジタルの画像信号に変換し、デジタル化したベイヤーデータをＤＳＰ／ＣＰＵ３に送る。
【００２１】
ＤＳＰ／ＣＰＵ３には、表示装置６、キー入力部７が接続されるとともに、アドレス・データバス１０を介してバッファメモリ（ＤＲＡＭ）１１、ＲＯＭ１２、保存メモリ１３、及び入出力インターフェース１４が接続されている。バッファメモリ１１は、前記ベイヤーデータ等を一時保存するバッファであるとともに、ＤＳＰ／ＣＰＵ３のワーキングメモリ等としても使用される。
【００２２】
すなわち、ＤＳＰ／ＣＰＵ３は、ユニット回路５から送られてきた前記ベイヤーデータに、ペデスタルクランプ等の処理を施した後、ＲＧＢデータに変換し、更にＲＧＢデータを輝度（Ｙ）信号及び色差（ＵＶ）信号に変換する。このＤＳＰ／ＣＰＵ３で変換されたＹＵＶデータは、１フレーム分のデータがバッファメモリ１１に格納される。バッファメモリ１１に格納された１フレーム分のＹＵＶデータは表示装置６へ送られ、そこでビデオ信号に変換された後、スルー画像として表示される。
【００２３】
また、静止画撮影モードにおいて使用者によるシャッターキー操作が検出されると、ＣＣＤ２及びユニット回路５をスルー画像撮像時とは異なる静止画撮影用の駆動方式や駆動タイミングに切り替えることにより静止画撮影処理を実行し、この静止画撮影処理によりバッファメモリ１１に格納された１フレーム分のＹＵＶデータは、ＤＳＰ／ＣＰＵ３でＪＰＥＧ方式等によるデータ圧縮後コード化され、バッファメモリ１１内でファイル化された後、アドレス・データバス１０を介して保存メモリ１３に静止画データ（静止画ファイル）として記録される。
【００２４】
また、通常連写（動画撮影）モードにおいて使用者による１回目のシャッターキー操作により連写開始指示が検出されると、連写処理を開始し、２回目のシャッターキー操作により連写終了指示が検出されるまでの複数フレーム分のＹＵＶデータをバッファメモリ１１に格納する。また、パスト撮影モードにおいては、モード設定に伴って連写（動画撮影）処理を開始し、シャッターキー操作により連写終了指示が検出されるまでの複数フレーム分のＹＵＶデータをバッファメモリ１１に格納する。
【００２５】
このバッファメモリ１１に格納された複数フレーム分のＹＵＶデータは順次ＤＳＰ／ＣＰＵ３へ送られ、ＪＰＥＧ方式等（動画撮影の場合は所定のＭＰＥＧのコーデック）によりデータ圧縮後コード化されて、バッファメモリ１１及びアドレス・データバス１０を介してフレームデータとしファイル名を付されて保存メモリ１３に書き込まれる。また、ＤＳＰ／ＣＰＵ３は、静止画又は連写画像（動画）の再生時には保存メモリ１３から読み出された静止画や連写（動画）のデータを伸張し、静止画データや連写画像（動画像）のフレームデータとしてバッファメモリ１１の画像データ作業領域に展開する。
【００２６】
表示装置６は、カラーＬＣＤとその駆動回路とを含み、撮影待機状態にあるときにはＣＣＤ２によって撮像された被写体画像をスルー画像として表示し、記録画像の再生時には保存メモリ１３から読み出されて伸張された記録画像を表示する。キー入力部７は、シャッターキー、モード設定キー、電源キー等の複数の操作キーを含み、使用者によるキー操作に応じたキー入力信号をＤＳＰ／ＣＰＵ３に出力する。なお、シャッターキーは連写撮影モード時には連写開始／終了ボタンとしても機能し、パスト撮影モード時には連写終了ボタンとして機能する。
【００２７】
また、ＲＯＭ１２には静止画撮影時、連写時、スルー画像撮影時等の各撮影時における適正な露出値（ＥＶ）に対応する絞り値（Ｆ）とシャッタースピードとの組み合わせを示すプログラム線図を構成するプログラムＡＥデータや、ＥＶ値表も格納されている。そして、ＤＳＰ／ＣＰＵ３がプログラム線図により設定されるシャッタースピードに基づき設定した電荷蓄積時間はシャッターパルスとして、ＴＧ４を介してＣＣＤ２に供給され、これに従いＣＣＤ２が動作することにより電荷蓄積時間すなわち露光時間が制御される。つまりＣＣＤ２は電子シャッターとして機能する。さらに、ＲＯＭ１２には、後述するフローチャートに示すプログラム及びデジタルカメラとして機能するに必要な各種プログラムが格納されている
【００２８】
なお、このデジタルカメラ１は、前記入出力インターフェース１４を備えており、よって、この入出力インターフェース１４を介してプリンタやパソコンやＴＶ受像機等の外部機器に接続することが可能である。
【００２９】
前記バッファメモリ１１には、図２に示すように、バッファ番号「１」〜「１２」までの１２個のフレームバッファが設けられている。これらフレームバッファは、パスト撮影モードにおいてフレームレート「４ｆ／ｓ」で生成されるフレーム画像データを記憶する記憶領域である。
【００３０】
次に、以上の構成に係る本実施の形態の動作について、図３に示すフローチャートに従って説明する。
【００３１】
なお、このフローチャートにおける符号は下記事項を示す。
Ｎ＿ＢＵＦＦＥＲ；フレームバッファ数；フレームバッファの数であって、本実施の形態                  においては前述のように「１２」である。
ＬＩＦＥ［］    ；フレーム寿命；フレームバッファが「空き」と判断されるまでの数値                  であって、「１９」〜「０」の値が格納され、「０」で当該フレーム                  バッファが「空き」と判断される。
ＥＭＰＴＹ      ；空きフレーム番号；空きと判断されるフレームバッファの番号であっ                  て、バッファ番号「１」〜「１２」のいずれかが設定される。
Ｎ＿ＳＴＡＭＰ  ；寿命初期値数；寿命初期値の数を示す固定値であり本実施の形態にお                  いては「４」である。
ＳＴＡＭＰ［］  ；寿命初期値；４種類の値「１９→７→１１→７」が繰り返し設定され                  る各フレームバッファの寿命初期値であり、ＳＴＡＭＰ［１］＝１９                  、ＳＴＡＭＰ［２］＝７、ＳＴＡＭＰ［３］＝１１、ＳＴＡＭＰ［４                  ］＝７である。また、この寿命初期値が４種類であることから、前記                  寿命初期値数Ｎ＿ＳＴＡＭＰは、前述のように「４」である。
ＳＴＰ＿ＮＵＭ  ；寿命番号；４種類の寿命初期値ＳＴＡＭＰ［］の値を変化させるため                  の変数であり、よって、「１〜４」が設定される。
【００３２】
キー入力部７に設けられているモード設定キーが操作されてパスト撮影モードが設定されると、ＤＳＰ／ＣＰＵ３はＴＧ４を制御してＣＣＤ２をフレームレート「４ｆ／ｓ」で駆動する撮影を開始するとともに、前記プログラムに従ってこのフローチャートに示すように処理を実行する。このフローチャートにおいて、ステップＳ１０１〜Ｓ１０４はパラメータの初期化処理、ステップＳ１０８〜Ｓ１１１は寿命設定処理、ステップＳ１１３〜Ｓ１１６は寿命の更新処理である。
【００３３】
すなわち、ステップＳ１０１〜Ｓ１０４でパラメータ初期化処理を行うべく、カウンタｉに初期値１をセットする（ステップＳ１０１）。次に、このカウンタｉの値がＮ＿ＢＵＦＦＥＲ（＝１２）以下であるか否かを判断する（ステップＳ１０２）。ｉ≦Ｎ＿ＢＵＦＦＥＲであるならば、カウンタｉの値で示されるフレームバッファｉのフレーム寿命ＬＩＦＥ［ｉ］を初期値「０」に設定する（ステップＳ１０３）。引き続き、カウンタｉの値をインクリメントし（ステップＳ１０４）、ステップＳ１０２からの処理を繰り返す。したがって、本実施の形態においては、ステップＳ１０２〜Ｓ１０４の処理が１２回繰り返され、図２に示したバッファ番号１〜１２の各フレームバッファには、全て「０」がセットされる。
【００３４】
また、カウンタｉ＝１３となると、ステップＳ１０２の判断「ｉ≦Ｎ＿ＢＵＦＦＥＲ」がＮＯとなり、ステップＳ１０２からステップＳ１０５に進み、寿命番号ＳＴＰ＿ＮＵＭに初期値「１」を設定する（ステップＳ１０５）。次に、空きフレーム検索、上書き処理を実行する（ステップＳ１０６）。
【００３５】
このステップＳ１０６の処理は、図４に示すフローチャートに従って実行され、１２個のフレームバッファにおいて、フレーム寿命ＬＩＦＥ［］が「０」となっている空きフレームを検索する（ステップＳ１１）。そして、この検索した空きフレームのバッファ番号（１〜１２のいずれか１つ）をレジスタＥＭＰＴＹに格納する（ステップＳ１２）。さらに、レジスタＥＭＰＴＹに格納したバッファ番号のフレームバッファに、ＣＣＤ２により撮像された画像を上書きするとともに、その時の時刻情報も上書きする（ステップＳ１３）。
【００３６】
したがって、図２（Ａ）に示すように、バッファ番号「１」のフレームバッファが寿命「０」となっている場合には、ＥＭＰＴＹには、バッファ番号「１」が格納されることとなる。そして、このＥＭＰＴＹにより示されるバッファ番号のフレームバッファに画像が転送されて、時刻情報とともに上書きされる。
【００３７】
一方、図３のフローチャートにおけるステップＳ１０７では、前述の図４に示したフローによる１フレーム分の画像及び時刻情報の上書きが完了するまで待機する。このとき、前述のように本実施の形態においては、パスト撮影モードが設定されると、ＤＳＰ／ＣＰＵ３はＴＧ４を制御してＣＣＤ２をフレームレート「４ｆ／ｓ」で駆動し、したがって、１／４秒の待機によりＥＭＰＴＹにより示されるバッファ番号のフレームバッファに画像が転送されて上書きされる。そして、画像が転送されて上書きされたならば、ステップＳ１０７からステップＳ１０８に進み寿命の設定処理を開始する。
【００３８】
この寿命の設定に際しては、先ずＥＭＰＴＹの値により示される番号のフレームバッファのフレーム寿命ＬＩＦＥ［ＥＭＰＴＹ］に、寿命番号ＳＴＰ＿ＮＵＭで示される寿命初期値ＳＴＡＭＰ［ＳＴＰ＿ＮＵＭ］を設定する（ステップＳ１０８）。ここで、寿命番号ＳＴＰ＿ＮＵＭは先ほどのステップＳ１０５で設定された「１」であるから、ＳＴＰ＿ＮＵＭ＝１であり、寿命初期値ＳＴＡＭＰ［ＳＴＰ＿ＮＵＭ］は、ＳＴＡＭＰ［１］となる。また、４種類の寿命初期値「１９→７→１１→７」において、１番目の値は「１９」であることから、ＳＴＡＭＰ［１］＝１９である。したがって、このステップＳ１０８での処理により、図２（Ｂ）に示すように、前記バッファ番号「１」のフレームバッファには、そのフレーム寿命ＬＩＦＥ［１］として、「１９」が設定されることとなる。
【００３９】
次に、寿命番号ＳＴＰ＿ＮＵＭをインクリメントし（ステップＳ１０９）、このインクリメントした寿命番号ＳＴＰ＿ＮＵＭが寿命初期値数Ｎ＿ＳＴＡＭＰ（＝４）となったか否かを判断する（ステップＳ１１０）、ＳＴＰ＿ＮＵＭ＝Ｎ＿ＳＴＡＭＰとなっていない場合には、ステップＳ１１１の処理を実行することなくステップＳ１１２に進む。また、ＳＴＰ＿ＮＵＭ＝Ｎ＿ＳＴＡＭＰとなった場合には、ＳＴＰ＿ＮＵＭに初期値「１」を設定して（ステップＳ１１１）、ステップＳ１１２に進む。
【００４０】
したがって、寿命番号ＳＴＰ＿ＮＵＭの値は１〜Ｎ＿ＳＴＡＭＰまでの間、つまり１〜４の間で変化する。よって、ステップＳ１０８の処理が繰り返し実行された際、新たに画像が格納された（空き）フレームバッファは、寿命番号ＳＴＰ＿ＮＵＭが［１］である場合には、寿命初期値ＳＴＡＭＰ［１］＝「１９」となり、寿命番号ＳＴＰ＿ＮＵＭが［２］である場合には寿命初期値ＳＴＡＭＰ［２］＝「７」となり、寿命番号ＳＴＰ＿ＮＵＭが［３］である場合には寿命初期値ＳＴＡＭＰ［３］＝「１１」となり、寿命番号ＳＴＰ＿ＮＵＭが［４］である場合には寿命初期値ＳＴＡＭＰ［４］＝「７」となる。
【００４１】
したがって、図２（Ａ）に示すように、バッファ番号「１」のフレームバッファが寿命「０」で空きフレームＥＭＰＴＹ＝１であり、このときＳＴＰ＿ＮＵＭが［１］あったとすると、ステップＳ１０８の処理は、ＬＩＦＥ［１］＝ＳＴＡＭＰ［ＳＴＰ＿ＮＵＭ］＝ＳＴＡＭＰ［１］＝１９となる。よって、図２（Ｂ）に示すように、バッファ番号「１」のフレームバッファには、ＳＴＡＭＰ［１］の値であるフレーム寿命「１９」が設定されることとなる。
【００４２】
また、図２（Ｂ）に示すように、バッファ番号「６」のフレームバッファが寿命「０」で空きフレームＥＭＰＴＹ＝６であり、このときＳＴＰ＿ＮＵＭが［２］あったとすると、ステップＳ１０８の処理は、ＬＩＦＥ［６］＝ＳＴＡＭＰ［ＳＴＰ＿ＮＵＭ］＝ＳＴＡＭＰ［２］＝７となる。よって、図２（Ｃ）に示すように、バッファ番号「６」のフレームバッファには、ＳＴＡＭＰ［２］の値であるフレーム寿命「７」が設定されることとなる。
【００４３】
また、図２（Ｃ）に示すように、バッファ番号「４」のフレームバッファが寿命「０」で空きフレームＥＭＰＴＹ＝４であり、このときＳＴＰ＿ＮＵＭが［３］あったとすると、ステップＳ１０８の処理は、ＬＩＦＥ［４］＝ＳＴＡＭＰ［ＳＴＰ＿ＮＵＭ］＝ＳＴＡＭＰ［３］＝１１となる。よって、図２（Ｄ）に示すように、バッファ番号「４」のフレームバッファには、ＳＴＡＭＰ［３］の値であるフレーム寿命「１１」が設定されることとなる。
【００４４】
また、図２（Ｄ）に示すように、バッファ番号「８」のフレームバッファが寿命「０」で空きフレームＥＭＰＴＹ＝８であり、このときＳＴＰ＿ＮＵＭが［４］あったとすると、ステップＳ１０８の処理は、ＬＩＦＥ［８］＝ＳＴＡＭＰ［ＳＴＰ＿ＮＵＭ］＝ＳＴＡＭＰ［４］＝７となる。よって、図２（Ｅ）に示すように、バッファ番号「８」のフレームバッファには、ＳＴＡＭＰ［４］の値であるフレーム寿命「７」が設定されることとなる。
【００４５】
そして、ステップＳ１１０とステップＳ１１１のいずれかに続くステップＳ１１２では、カウンタｉの値に初期値「１」を設定して、ステップＳ１１３〜Ｓ１１６で寿命更新処理を実行する。この寿命更新処理に際しては、先ずカウンタｉの値がＮ＿ＢＵＦＦＥＲ（＝１２）以下であるか否かを判断する（ステップＳ１１３）。ｉ≦Ｎ＿ＢＵＦＦＥＲであるならば、カウンタｉの値で示されるフレームバッファｉのフレーム寿命ＬＩＦＥ［ｉ］が「０」でないか否かを判断する（ステップＳ１１４）。フレームバッファｉのフレーム寿命ＬＩＦＥ［ｉ］が「０」となっている場合には（ステップＳ１１４；ＮＯ）、ステップＳ１１５の処理を実行することなくステップＳ１１６に進む。
【００４６】
また、フレームバッファｉのフレーム寿命ＬＩＦＥ［ｉ］が「０」となっていない場合には（ステップＳ１１４；ＹＥＳ）、フレーム寿命ＬＩＦＥ［ｉ］の値をデクリメントする（ステップＳ１１５）。次に、カウンタｉの値をインクリメントし（ステップＳ１１６）、ステップＳ１１３からの処理を繰り返す。したがって、本実施の形態においては、ステップＳ１１３〜Ｓ１１６の処理が連続して１２回繰り返され、寿命が「０」でない各フレームバッファの寿命がデクリメントされる。
【００４７】
また、カウンタｉ＝１３となると、ステップＳ１１３の判断「ｉ≦Ｎ＿ＢＵＦＦＥＲ」がＹＥＳとなり、ステップＳ１１３からステップＳ１１７に進み、撮影終了指示があったか否かを判断する。撮影終了指示がない場合には、ステップＳ１０６に戻る。したがって、ステップＳ１０８〜Ｓ１１１の寿命の設定処理及びステップＳ１１３〜Ｓ１１６の寿命の更新処理は、撮影終了指示があるまで繰り返し実行される。
【００４８】
よって、ステップＳ１０８〜Ｓ１１１の寿命の設定処理が繰り返されることにより、前述のように空きバッファに画像が上書きされて、寿命初期値が設定される。また、ステップＳ１１３〜Ｓ１１６の寿命の更新処理が繰り返されることにより、例えば図２におけるバッファ番号「２」のフレームバッファの寿命は、「４」「３」「２」「１」「０」と減少していく。
【００４９】
そして、シャッターキーが操作されることにより、撮影終了指示があると、このフローに従った処理を終了する。したがって、例えば図２（Ｅ）の状態で撮影終了指示があると、１２個のフレームバッファに画像とその時刻情報とが記憶された状態で処理を終了する。つまり、図４のステップＳ１３で実行される処理は、上書き処理であることから、寿命が「０」になっている、バッファ番号「２」のフレームバッファにも画像は保存されており、バッファ番号「２」を含む全てのフレームバッファに、計１２個の画像が時刻情報とともに記憶されている。
【００５０】
このとき、本実施の形態においては４ｆｐｓのフレームレートで撮像を行い、フレームバッファ数は「１２」であるから、順次古い画像を消去して画像を記憶させていくと、最大３秒前まで過去の画像を記憶することができるにすぎない。しかし、本実施の形態においては、寿命初期値の最大値が「１９」であり寿命「０」まで、１／４秒毎に寿命減算と画像上書きがなされることから、最大４．７５秒前まで過去の画像を記憶することできる。
【００５１】
よって、本実施の形態によれば、画像データのコピー処理を要することなく、より過去の画像データまで記憶しておくことができる。
【００５２】
しかも、フレームバッファ毎に設定した寿命をカウントダウンさせる簡単な処理により、画像データのコピー処理を要することなく、より過去の画像データまで記憶しておくことができる。
【００５３】
また、寿命をカウントダウンさせれば、寿命が「０」となったことにより、上書き可能であることが判別できることから、後述する第３の実施の形態のように、上書き許可フラグを用いる必要もなく、また、上書き許可フラグを書き込むための記憶領域を設ける必要もない。よって、簡単な処理内容やメモリ構成で、より過去の画像データまで記憶しておくことができる。
【００５４】
しかし、これら画像の時系列はバッファ番号とは無関係であることから、フレームバッファに記憶された複数のフレーム画像からなる連写（動画）データに最終的にファイル名を付して保存メモリ１３に記録する際には、フレーム画像毎に記憶されている時刻情報に基づく時系列に従って、各フレーム画像を配列して記録すればよい。このとき、寿命が「０」となっているフレームバッファを除いて、寿命が所定値以上のフレームバッファのみから画像を読み出して連写データを生成することもできる。
【００５５】
無論、フレーム画像を時系列に配列することなく、各フレームバッファのフレーム画像をそのまま保存メモリ１３に記録し、再生時にフレーム画像とともに記憶されている時刻情報に基づく時系列に従って、保存メモリ１３からフレーム画像を順次読み出して再生するようにしてもよい。
【００５６】
また、本実施の形態においては、キー入力部７に設けられているモード設定キーが操作されてパスト撮影モードが設定されると、ステップＳ１０１からの処理を開始し、撮影終了指示があった時点（ステップＳＳ１１７；ＹＥＳ）で処理を終了するようにしたが、シャッターキーの半押しによりステップＳ１０１からの処理を開始し、シャッターキーの全押しにより処理終了するようにしてもよい。
【００５７】
（第２の実施の形態）
図５は、本発明の第２の実施の形態における処理手順を示すフローチャートである。なお、このフローチャートにおける符号の意味は図３に示した第１の実施の形態のフローチャートと同様である。また、ステップＳ２０１〜Ｓ２０４のパラメータ初期化処理も、第１の実施の形態のステップＳ１０１〜１０４の処理と同一であり、したがって、図６に示したバッファ番号１〜１２の各フレームバッファには、全て「０」がセットされる。
【００５８】
また、カウンタｉ＝１３となると、ステップＳ２０２の判断「ｉ≦Ｎ＿ＢＵＦＦＥＲ」がＹＥＳとなり、ステップＳ２０２からステップＳ２０５に進み、空きフレーム登録タイマーをスタートさせる。この空き登録タイマーは、予めユーザがキー入力部７での操作により設定した時間間隔でタイムアップとリセットをと繰り返すタイマーである。
【００５９】
次に、寿命番号ＳＴＰ＿ＮＵＭに初期値「１」を設定し（ステップＳ２０６）、空きフレーム検索、上書き処理を実行する（ステップＳ２０７）。
【００６０】
このステップＳ２０７の処理は、図８に示すフローチャートに従って実行され、前記空きフレーム登録タイマーがタイムアップとなって、空き登録タイマー指定時間となったか否かを判断する（ステップＳ２１）。登録タイマー指定時間が経過していなければ、ステップＳ２１の判断はＮＯとなる。この場合には、ステップＳ２２及びステップＳ２３の処理を実行することなく、ステップＳ２４に進む。
【００６１】
また、登録タイマー指定時間となった場合には（ステップＳ２１；ＹＥＳ）、寿命が既に「０」となっているものは除いて、寿命が「３」以下となっているフレームバッファを検索する（ステップＳ２２）。したがって、図６（Ａ）の状態でステップＳ２２の処理が実行されたとすると、同図に○印を付して示したように、寿命が「２」であるバッファ番号「４」、寿命が「１」であるバッファ番号「６」、寿命が「３」であるバッファ番号「８」の各フレームバッファが検索されることとなる。更に、この検索されたフレームバッファの寿命を「０」に設定する（ステップＳ２３）。このステップＳ２３での処理より、図６（Ｂ）に示すように、バッファ番号「４」、「６」、「８」の各フレームバッファの寿命が「０」に設定される。
【００６２】
また、ステップＳ２１又はステップＳ２３に続くステップＳ２４では、フレーム寿命ＬＩＦＥ［］が「０」となっている空きフレームを検索する。そして、この検索した空きフレームのバッファ番号（本例においては、「１」、「４」、「６」、「８」のいずれか１つ）をレジスタＥＭＰＴＹに格納する（ステップＳ２５）。さらに、レジスタＥＭＰＴＹに格納したバッファ番号のフレームバッファに、ＣＣＤ２により撮像された画像を上書きするとともに、その時の時刻情報も上書きする（ステップＳ２６）。
【００６３】
したがって、図６（Ｂ）に示すように、バッファ番号「１」、「４」、「６」、「８」のフレームバッファが寿命「０」となっている場合には、ＥＭＰＴＹには、例えばバッファ番号「１」が格納されることとなる。そして、このＥＭＰＴＹにより示されるバッファ番号のフレームバッファに画像が転送されて、時刻情報とともに上書きされる。また、空きフレーム登録タイマーをリセットしてスタートさせる（ステップＳ２７）
【００６４】
一方、図５のフローチャートにおけるステップＳ２０８では、前述の図８に示したフローによる１フレーム分の画像及び時刻情報の上書きが完了するまで待機する。このとき、前述のように本実施の形態においては、パスト撮影モードが設定されると、ＤＳＰ／ＣＰＵ３はＴＧ４を制御してＣＣＤ２をフレームレート「４ｆ／ｓ」で駆動し、したがって、１／４秒の待機によりＥＭＰＴＹにより示されるバッファ番号のフレームバッファに画像が転送されて上書きされる。そして、画像が転送されて上書きされたならば、ステップＳ２０８からステップＳ２０９に進み寿命の設定処理を開始する。
【００６５】
この寿命の設定処理は、前述した図３のフローチャートにおけるステップＳ１０８〜Ｓ１１１の処理と同一である。先ずＥＭＰＴＹの値により示される番号のフレームバッファのフレーム寿命ＬＩＦＥ［ＥＭＰＴＹ］に、寿命番号ＳＴＰ＿ＮＵＭで示される寿命初期値ＳＴＡＭＰ［ＳＴＰ＿ＮＵＭ］を設定する（ステップＳ２０９）。ここで、寿命番号ＳＴＰ＿ＮＵＭは先ほどのステップＳ２０６で設定された「１」であるから、ＳＴＰ＿ＮＵＭ＝１であり、寿命初期値ＳＴＡＭＰ［ＳＴＰ＿ＮＵＭ］は、ＳＴＡＭＰ［１］となる。また、４種類の寿命初期値「１９→７→１１→７」において、１番目の値は「１９」であることから、ＳＴＡＭＰ［１］＝１９である。したがって、このステップＳ２０９での処理により、図６（Ｃ）に示すように、前記バッファ番号「１」のフレームバッファには、そのフレーム寿命ＬＩＦＥ［１］として、「１９」が設定されることとなる。
【００６６】
次に、寿命番号ＳＴＰ＿ＮＵＭをインクリメントし（ステップＳ２１０）、このインクリメントした寿命番号ＳＴＰ＿ＮＵＭが寿命初期値数Ｎ＿ＳＴＡＭＰ（＝４）となったか否かを判断する（ステップＳ２１１）、ＳＴＰ＿ＮＵＭ＝Ｎ＿ＳＴＡＭＰとなっていない場合には、ステップＳ２１２の処理を実行することなくステップＳ２１３に進む。また、ＳＴＰ＿ＮＵＭ＝Ｎ＿ＳＴＡＭＰとなった場合には、ＳＴＰ＿ＮＵＭに初期値「１」を設定して（ステップＳ２１２）、ステップＳ２１３に進む。
【００６７】
したがって、寿命番号ＳＴＰ＿ＮＵＭの値は１〜Ｎ＿ＳＴＡＭＰまでの間、つまり１〜４の間で変化する。よって、ステップＳ２０９の処理が繰り返し実行された際、新たに画像が格納された空きフレームバッファは、寿命番号ＳＴＰ＿ＮＵＭが［１］である場合には、寿命初期値ＳＴＡＭＰ［１］＝「１９」となり、寿命番号ＳＴＰ＿ＮＵＭが［２］である場合には寿命初期値ＳＴＡＭＰ［２］＝「７」となり、寿命番号ＳＴＰ＿ＮＵＭが［３］である場合には寿命初期値ＳＴＡＭＰ［３］＝「１１」となり、寿命番号ＳＴＰ＿ＮＵＭが［４］である場合には寿命初期値ＳＴＡＭＰ［４］＝「７」となる。
【００６８】
したがって、図６（Ｂ）に示すように、バッファ番号「１」のフレームバッファが寿命「０」で空きフレームＥＭＰＴＹ＝１とした場合、このときＳＴＰ＿ＮＵＭが［１］あったとすると、ステップＳ２０９の処理は、ＬＩＦＥ［１］＝ＳＴＡＭＰ［ＳＴＰ＿ＮＵＭ］＝ＳＴＡＭＰ［１］＝１９となる。よって、図６（Ｃ）に示すように、バッファ番号「１」のフレームバッファには、ＳＴＡＭＰ［１］の値であるフレーム寿命「１９」が設定されることとなる。
【００６９】
また、図６（Ｃ）に示すように、バッファ番号「６」のフレームバッファが寿命「０」で空きフレームＥＭＰＴＹ＝６とした場合、このときＳＴＰ＿ＮＵＭが［２］あったとすると、ステップＳ２０９の処理は、ＬＩＦＥ［６］＝ＳＴＡＭＰ［ＳＴＰ＿ＮＵＭ］＝ＳＴＡＭＰ［２］＝７となる。よって、図６（Ｄ）に示すように、バッファ番号「６」のフレームバッファには、ＳＴＡＭＰ［２］の値であるフレーム寿命「７」が設定されることとなる。
【００７０】
また、図６（Ｄ）に示すように、バッファ番号「４」のフレームバッファが寿命「０」で空きフレームＥＭＰＴＹ＝４とした場合、このときＳＴＰ＿ＮＵＭが［３］あったとすると、ステップＳ２０９の処理は、ＬＩＦＥ［４］＝ＳＴＡＭＰ［ＳＴＰ＿ＮＵＭ］＝ＳＴＡＭＰ［３］＝１１となる。よって、図６（Ｅ）に示すように、バッファ番号「４」のフレームバッファには、ＳＴＡＭＰ［３］の値であるフレーム寿命「１１」が設定されることとなる。
【００７１】
また、図６（Ｅ）に示すように、バッファ番号「８」のフレームバッファが寿命「０」で空きフレームＥＭＰＴＹ＝８とした場合、このときＳＴＰ＿ＮＵＭが［４］あったとすると、ステップＳ２０９の処理は、ＬＩＦＥ［８］＝ＳＴＡＭＰ［ＳＴＰ＿ＮＵＭ］＝ＳＴＡＭＰ［４］＝７となる。よって、図７（Ｆ）に示すように、バッファ番号「８」のフレームバッファには、ＳＴＡＭＰ［４］の値であるフレーム寿命「７」が設定されることとなる。
【００７２】
そして、ステップＳ２１１とステップＳ２１２のいずれかに続くステップＳ２１３では、カウンタｉの値に初期値「１」を設定して、ステップＳ２１４〜Ｓ２１７で寿命更新処理を実行する。この寿命更新処理に際しては、先ずカウンタｉの値がＮ＿ＢＵＦＦＥＲ（＝１２）以下であるか否かを判断する（ステップＳ２１４）。ｉ≦Ｎ＿ＢＵＦＦＥＲであるならば、カウンタｉの値で示されるフレームバッファｉのフレーム寿命ＬＩＦＥ［ｉ］が「０」でないか否かを判断する（ステップＳ２１５）。フレームバッファｉのフレーム寿命ＬＩＦＥ［ｉ］が「０」となっている場合には（ステップＳ２１５；ＮＯ）、ステップＳ２１６の処理を実行することなくステップＳ２１７に進む。
【００７３】
また、フレームバッファｉのフレーム寿命ＬＩＦＥ［ｉ］が「０」となっていない場合には（ステップＳ２１５；ＹＥＳ）、フレーム寿命ＬＩＦＥ［ｉ］の値をデクリメントする（ステップＳ２１６）。次に、カウンタｉの値をインクリメントし（ステップＳ２１７）、ステップＳ２１４からの処理を繰り返す。したがって、本実施の形態においては、ステップＳ２１４〜Ｓ２１７の処理が連続して１２回繰り返され、寿命が「０」でない各フレームバッファの寿命がデクリメントされる。
【００７４】
また、カウンタｉ＝１３となると、ステップＳ２１４の判断「ｉ≦Ｎ＿ＢＵＦＦＥＲがＹＥＳとなり、ステップＳ２１４からステップＳ２１８に進み、撮影終了指示があったか否かを判断する。撮影終了指示がない場合には、ステップＳ２０７に戻る。したがって、ステップＳ２０９〜Ｓ２１２の寿命の設定処理及びステップＳ２１４〜Ｓ２１７の寿命の更新処理は、撮影終了指示があるまで繰り返し実行される。
【００７５】
したがって、ステップＳ２０９〜Ｓ２１２の寿命の設定処理が繰り返されることにより、前述のように空きバッファに画像が上書きされて、寿命初期値が設定される。また、ステップＳ２１４〜Ｓ２１７の寿命の更新処理が繰り返されることにより、例えば図６におけるバッファ番号「２」のフレームバッファの寿命は、「４」から「３」「２」「１」「０」と減少していく。
【００７６】
また、この間に空きフレーム登録タイマーがタイムアップとなることから、ステップＳ２１の判断がＹＥＳとなる。したがって、寿命が既に「０」となっているものは除いて、寿命が「３」以下となっているフレームバッファを検索する（ステップＳ２２）。したがって、図７（Ｆ）の状態でステップＳ２２の処理が実行されたとすると、同図に○印を付して示したように、寿命が「２」であるバッファ番号「７」、寿命が「１」であるバッファ番号「１０」、寿命が「３」であるバッファ番号「１２」の各フレームバッファが検索されることとなる。更に、この検索されたフレームバッファの寿命を「０」に設定する（ステップＳ２３）。このステップＳ２３での処理より、図７（Ｇ）に示すように、バッファ番号「７」、「１０」、「１２」の各フレームバッファの寿命が「０」に設定されて、前述したステップＳ２４〜ステップＳ２７の処理が実行され、さらにステップＳ２０８〜ステップＳ２１８の処理が実行される。
【００７７】
そして、シャッターキーが操作されることにより、撮影終了指示があると、このフローに従った処理を終了する。したがって、例えば図７（Ｇ）の状態で撮影終了指示があると、１２個のフレームバッファに画像とその時刻情報とが記憶された状態で処理を終了する。つまり、図８のステップＳ２６で実行される処理は、上書き処理であることから、寿命が「０」になっている、バッファ番号「２」、「７」、「１０」、「１２」のフレームバッファにも画像は保存されており、これらバッファ番号「２」、「７」、「１０」、「１２」を含む全てのフレームバッファに、計１２個の画像が時刻情報とともに記憶されている。
【００７８】
このとき、本実施の形態においては４ｆｐｓのフレームレートで撮像を行い、フレームバッファ数は「１２」であるから、順次古い画像を消去して画像を記憶させていくと、最大３秒前まで過去の画像を記憶することができるにすぎない。しかし、本実施の形態においては、寿命初期値の最大値が「１９」であり寿命「０」まで、１／４秒毎に寿命減算と画像上書きがなされることから、最大４．７５秒前まで過去の画像を記憶することできる。
【００７９】
よって、本実施の形態によれば、画像データのコピー処理を要することなく、より過去の画像データまで記憶しておくことができる。
【００８０】
しかも、本実施の形態によれば、指定時間毎に寿命が所定値以下となったフレームバッファの寿命を強制的に満了値に設定して書き込み可能とすることから、簡易な処理により余裕をもってかつ確実に書き込み可能なフレームバッファを確保することができる。
【００８１】
（第３の実施の形態）
図９は、本発明の第３の実施の形態における処理手順を示すフローチャートであり、第１の実施の形態とは異なり、寿命の値をカウントアップさせるようにしたものである。したがって、このフローチャートにおける符号の意味は、下記事項に関して図３に示した第１の実施の形態のフローチャートと異なる。
ＬＩＦＥ［］    ；フレーム寿命；フレームバッファが「空き」と判断されるまでの数値                  であって、「０」〜「１９」の値が格納され、基本的には「１９」で                  当該フレームバッファが「空き」と判断されるが、「１１」                  、「７」でも当該フレームバッファが「空き」と判断される場合があ                  る。
Ｎ＿ＳＴＡＭＰ  ；寿命最終値数；寿命最終値の数を示す固定値であり本実施の形態にお                  いては「４」である。
ＳＴＡＭＰ［］  ；寿命最終値；４種類の値「１９→７→１１→７」が繰り返し設定され                  る各フレームバッファの寿命最終値であり、ＳＴＡＭＰ［１］＝１９                  、ＳＴＡＭＰ［２］＝７、ＳＴＡＭＰ［３］＝１１、ＳＴＡＭＰ［４                  ］＝７である。また、この寿命最終値が４種類であることから、前記                  寿命最終値数Ｎ＿ＳＴＡＭＰは、前述のように「４」である。
【００８２】
また、本実施の形態においては、前記符号に加えて上書き許可フラグを用いている。この上書き許可フラグは、フレームバッファ毎に設けられ、ＯＮにより当該フレームバッファへの上書きを許可することを示し、ＯＦＦにより当該フレームバッファへの上書きを禁止することを示す。
【００８３】
フローチャートに示すように、ステップＳ３０１〜Ｓ３０５でパラメータ初期化処理を行うべく、カウンタｉに初期値１をセットする（ステップＳ３０１）。次に、このカウンタｉの値がＮ＿ＢＵＦＦＥＲ（＝１２）以下であるか否かを判断する（ステップＳ３０２）。ｉ≦Ｎ＿ＢＵＦＦＥＲであるならば、カウンタｉの値で示されるフレームバッファｉのフレーム寿命ＬＩＦＥ［ｉ］を初期値「０」に設定するとともに（ステップＳ３０３）、当該フレームバッファｉの上書き許可フラグをＯＮにする（ステップＳ３０４）。次に、カウンタｉの値をインクリメントし（ステップＳ３０５）、ステップＳ３０２からの処理を繰り返す。したがって、本実施の形態においては、ステップＳ３０２〜Ｓ３０５の処理が１２回繰り返され、図１０に示したバッファ番号１〜１２の各フレームバッファには、全て「０」がセットされるとともに、各フレームバッファの上書き許可フラグがＯＮにされる。
【００８４】
また、カウンタｉ＝１３となると、ステップＳ３０２の判断「ｉ≦Ｎ＿ＢＵＦＦＥＲ」がＹＥＳとなり、ステップＳ３０２からステップＳ３０６に進み、寿命番号ＳＴＰ＿ＮＵＭに初期値「１」を設定する（ステップＳ３０６）。次に、空きフレーム検索、上書き処理を実行する（ステップＳ３０７）。
【００８５】
このステップＳ３０７の処理は、図１１に示すフローチャートに従って実行され、１２個のフレームバッファにおいて、上書き許可フラグがＯＮとなっている空きフレームを検索する（ステップＳ３１）。そして、この検索した空きフレームのバッファ番号（１〜１２のいずれか１つ）をレジスタＥＭＰＴＹに格納する（ステップＳ３２）。さらに、レジスタＥＭＰＴＹに格納したバッファ番号のフレームバッファに、ＣＣＤ２により撮像された画像を上書きするとともに、その時の時刻情報も上書きする（ステップＳ３３）。
【００８６】
したがって、図１０（Ａ）に示すように、バッファ番号「１」と「７」のフレームバッファの上書き許可フラグがＯＮとなっている場合には、ＥＭＰＴＹには、いずれか一方の例えばバッファ番号「７」が格納されることとなる。そして、このＥＭＰＴＹにより示されるバッファ番号のフレームバッファに画像が転送されて、時刻情報とともに上書きされる。
【００８７】
一方、図９のフローチャートにおけるステップＳ３０８では、前述の図１１に示したフローによる１フレーム分の画像及び時刻情報の上書きが完了するまで待機する。このとき、前述のように本実施の形態においては、パスト撮影モードが設定されると、ＤＳＰ／ＣＰＵ３はＴＧ４を制御してＣＣＤ２をフレームレート「４ｆ／ｓ」で駆動し、したがって、１／４秒の待機によりＥＭＰＴＹにより示されるバッファ番号のフレームバッファに画像が転送されて上書きされる。そして、画像が転送されて上書きされたならば、ステップＳ３０８からステップＳ３０９に進み寿命の設定処理を開始する。
【００８８】
この寿命の設定に際しては、先ずＥＭＰＴＹの値により示される番号のフレームバッファのフレーム寿命ＬＩＦＥ［ＥＭＰＴＹ］に、「０」を設定するとともに（ステップＳ３０９）、ＥＭＰＴＹの値により示される番号のフレームバッファの上書き許可フラグをＯＦＦにして上書きを禁止する（ステップＳ３１０）。
【００８９】
次に、寿命番号ＳＴＰ＿ＮＵＭをインクリメントし（ステップＳ３１１）、このインクリメントした寿命番号ＳＴＰ＿ＮＵＭが寿命最終値数Ｎ＿ＳＴＡＭＰ（＝４）となったか否かを判断する（ステップＳ３１２）。ＳＴＰ＿ＮＵＭ＝Ｎ＿ＳＴＡＭＰとなっていない場合には、ステップＳ３１３の処理を実行することなくステップＳ３１４に進む。また、ＳＴＰ＿ＮＵＭ＝Ｎ＿ＳＴＡＭＰとなった場合には、ＳＴＰ＿ＮＵＭに初期値「１」を設定して（ステップＳ３１３）、ステップＳ３１４に進む。したがって、寿命番号ＳＴＰ＿ＮＵＭの値は１〜Ｎ＿ＳＴＡＭＰまでの間、つまり１〜４の間で変化する。
【００９０】
そして、ステップＳ３１２とステップＳ３１３のいずれかに続くステップＳ３１４では、カウンタｉの値に初期値「１」を設定して、ステップＳ３１５〜Ｓ３２１で寿命更新処理を実行する。この寿命更新処理に際しては、先ずカウンタｉの値がＮ＿ＢＵＦＦＥＲ（＝１２）以下であるか否かを判断する（ステップＳ３１５）。ｉ≦Ｎ＿ＢＵＦＦＥＲであるならば、カウンタｉの値で示されるフレームバッファｉのフレーム寿命ＬＩＦＥ［ｉ］が「１９」でないか否かを判断する（ステップＳ３１６）。フレームバッファｉのフレーム寿命ＬＩＦＥ［ｉ］が「１９」となっている場合には（ステップＳ３１６；ＮＯ）、フレームバッファｉの上書き許可フラグをＯＮにする（ステップＳ３１８）。
【００９１】
また、フレームバッファｉのフレーム寿命ＬＩＦＥ［ｉ］が「１９」となっていない場合には（ステップＳ３１６；ＹＥＳ）、フレームバッファｉのフレーム寿命ＬＩＦＥ［ｉ］が寿命番号ＳＴＰ＿ＮＵＭで示される寿命最終値ＳＴＡＭＰ［ＳＴＰ＿ＮＵＭ］となっていないか否かを判断する（ステップＳ３１７）。
【００９２】
ここで、前記ステップＳ３１１の処理で１〜４の寿命番号ＳＴＰ＿ＮＵＭが繰り返し設定された際、寿命番号ＳＴＰ＿ＮＵＭが［１］である場合には、寿命最終値ＳＴＡＭＰ［１］＝「１９」となり、寿命番号ＳＴＰ＿ＮＵＭが［２］である場合には寿命最終値ＳＴＡＭＰ［２］＝「７」となり、寿命番号ＳＴＰ＿ＮＵＭが［３］である場合には寿命最終値ＳＴＡＭＰ［３］＝「１１」となり、寿命番号ＳＴＰ＿ＮＵＭが［４］である場合には寿命最終値ＳＴＡＭＰ［４］＝「７」となる。
【００９３】
したがって、ステップＳ３１７においては、Ｓ３１１の処理で設定された１〜４の寿命番号ＳＴＰ＿ＮＵＭに応じて、フレームバッファｉのフレーム寿命ＬＩＦＥ［ｉ］が「１９」、「７」、「１１」、「７」でないか否か判断する。この判断の結果、フレームバッファｉのフレーム寿命ＬＩＦＥ［ｉ］が、寿命番号ＳＴＰ＿ＮＵＭに応じて変化した「１９」、「７」、「１１」、「７」である場合には（ステップＳ３１７；ＮＯ）、上書き許可フラグをＯＮにする（ステップＳ３１８）。
【００９４】
しかし、フレームバッファｉのフレーム寿命ＬＩＦＥ［ｉ］が、寿命番号ＳＴＰ＿ＮＵＭに応じて変化した「１９」、「７」、「１１」、「７」でない場合には（ステップＳ３１７；ＹＥＳ）、フレームバッファｉの上書き許可フラグがＯＮとなっているか否かを判断する（ステップＳ３１９）。フレームバッファｉの上書き許可フラグがＯＮとなっている場合には、ステップＳ３２０の処理を実行することなくステップＳ３２１に進む。また、また、フレームバッファｉの上書き許可フラグがＯＮとなっていない場合には、フレーム寿命ＬＩＦＥ［ｉ］の値をインクリメントする（ステップＳ３２０）。次に、カウンタｉの値をインクリメントし（ステップＳ３２１）、ステップＳ３１５からの処理を繰り返す。したがって、本実施の形態においては、ステップＳ３１３〜Ｓ３２１の処理が連続して１２回繰り返される。
【００９５】
したがって、ステップＳ３１５〜Ｓ３２１の寿命の設定処理が繰り返された際、図１０（Ａ）に示す状態で寿命番号ＳＴＰ＿ＮＵＭが［１］であったとすると、寿命最終値ＳＴＡＭＰ［１］＝「１９」である。そして、図１０（Ａ）においては、バッファ番号「１」のフレームバッファの寿命が「１９」となったことから、ステップＳ３１６とＳ３１７の判断がＹＥＳとなりステップＳ３１８の処理により、バッファ番号「１」のフレームバッファの上書き許可フラグがＯＮとなる。なお、バッファ番号「７」のフレームバッファは、前々回の処理により上書き許可フラグがＯＮにされたものである。また、このバッファ番号「１」、及び既に上書き許可フラグがＯＮとなっているバッファ番号「７」以外のフレームバッファの寿命はインクリメントされる。
【００９６】
図１０（Ｂ）に示す状態では、寿命番号ＳＴＰ＿ＮＵＭが［２］となり、寿命最終値ＳＴＡＭＰ［２］＝「７」となる。しかし、図１０（Ｂ）においては、寿命が「７」となったフレームバッファは存在せず、寿命が「１９」となったバッファ番号「６」のフレームバッファのみが存在する。したがって、ステップＳ３１６の判断のみがＹＥＳとなりステップＳ３１８の処理により、バッファ番号「６」のフレームバッファの上書き許可フラグがＯＮとなる。また、このバッファ番号「６」、及び既に上書き許可フラグがＯＮとなっているバッファ番号「１」以外のフレームバッファの寿命はインクリメントされる。
【００９７】
図１０（Ｃ）に示す状態では、寿命番号ＳＴＰ＿ＮＵＭが［３］となり、寿命最終値ＳＴＡＭＰ［３］＝「１１」となる。そして、図１０（Ｃ）においては、寿命が「１１」となったバッファ番号「１１」のフレームバッファと、寿命が「１９」となったバッファ番号「４」のフレームバッファが存在する。したがって、ステップＳ３１６の判断がＹＥＳとなりステップＳ３１８の処理により、バッファ番号「４」のフレームバッファの上書き許可フラグがＯＮとなり、かつ、ステップＳ３１７の判断がＹＥＳとなりステップＳ３１８の処理により、バッファ番号「１１」のフレームバッファの上書き許可フラグがＯＮとなる。また、バッファ番号「４」、「１１」、及び既に上書き許可フラグがＯＮとなっているバッファ番号「６」以外のフレームバッファの寿命はインクリメントされる。
【００９８】
図１０（Ｄ）に示す状態では、寿命番号ＳＴＰ＿ＮＵＭが［４］となり、寿命最終値ＳＴＡＭＰ［２］＝「７」となる。しかし、図１０（Ｄ）においては、寿命が「７」となったフレームバッファは存在せず、寿命が「１９」となったバッファ番号「８」のフレームバッファのみが存在する。したがって、ステップＳ３１６の判断のみがＹＥＳとなりステップＳ３１８の処理により、バッファ番号「８」のフレームバッファの上書き許可フラグがＯＮとなる。また、このバッファ番号「８」、及び既に上書き許可フラグがＯＮとなっているバッファ番号「４」「１１」以外のフレームバッファの寿命はインクリメントされる。
【００９９】
図１０（Ｅ）に示す状態では、寿命番号ＳＴＰ＿ＮＵＭが［１］となり、寿命最終値ＳＴＡＭＰ［１］＝「１９」となる。そして、図１０（Ａ）においては、バッファ番号「２」のフレームバッファの寿命が「１９」となったことから、ステップＳ３１６とＳ３１７の判断がＹＥＳとなりステップＳ３１８の処理により、バッファ番号「２」のフレームバッファの上書き許可フラグがＯＮとなる。また、このバッファ番号「２」、及び既に上書き許可フラグがＯＮとなっているバッファ番号「８」「１１」以外のフレームバッファの寿命はインクリメントされる。
【０１００】
しかる後に、カウンタｉ＝１３となると、ステップＳ３１５の判断「ｉ≦Ｎ＿ＢＵＦＦＥＲ」がＹＥＳとなり、ステップＳ３１５からステップＳ３２２に進み、撮影終了指示があったか否かを判断する。撮影終了指示がない場合には、ステップＳ３０７に戻る。したがって、ステップＳ３０９〜Ｓ３１３の寿命の設定処理及びステップＳ３１５〜Ｓ３２１の寿命の更新処理は、撮影終了指示があるまで繰り返し実行される。
【０１０１】
そして、シャッターキーが操作されることにより、撮影終了指示があると、このフローに従った処理を終了する。したがって、例えば図１０（Ｅ）の状態で撮影終了指示があると、１２個のフレームバッファに画像とその時刻情報とが記憶された状態で処理を終了する。つまり、図１１のステップＳ３３で実行される処理は、上書き処理であることから、上書き許可フラグがＯＮとなっているフレームバッファ「２」「８」「１１」にも画像は保存されており、全てのフレームバッファに、計１２個の画像が時刻情報とともに記憶されている。
【０１０２】
このとき、本実施の形態においては４ｆｐｓのフレームレートで撮像を行い、フレームバッファ数は「１２」であるから、順次古い画像を消去して画像を記憶させていくと、最大３秒前まで過去の画像を記憶することできるにすぎない。しかし、本実施の形態においては、寿命最終値の最大値「１９」まで、１／４秒毎に寿命減算と画像上書きがなされることから、最大４．７５秒前まで過去の画像を記憶することできる。
【０１０３】
よって、本実施の形態によれば、画像データのコピー処理を要することなく、より過去の画像データまで記憶しておくことができる。
【０１０４】
しかも、フレームバッファ毎に設定した寿命をカウントアップさせる簡単な処理により、画像データのコピー処理を要することなく、より過去の画像データまで記憶しておくことができる。
【０１０５】
しかし、これら画像の時系列はバッファ番号とは無関係であることから、フレームバッファに記憶された複数のフレーム画像からなる連写データを最終的にファイル名を付して保存メモリ１３に記録する際には、フレーム画像毎に記憶されている時刻情報に基づく時系列に従って、各フレーム画像を配列して記録する。又は、配列することなく各フレームバッファのフレーム画像をそのまま保存メモリ１３に記録し、再生時に画像とともに記憶されている時刻情報に基づく時系列に従って、保存メモリ１３からフレーム画像を順次読み出して再生する。
【０１０６】
なお、本実施の形態においては、ステップＳ３０９からＳ３１２の寿命の設定処理において、フレームバッファに寿命初期値「０」のみを設定するようにしたが、寿命初期値「０」を設定するとともに、第１の実施の形態と同様に寿命の最終値も設定し、ステップＳ３１５〜Ｓ３２１の寿命更新処理により、順次「０」からカウントアップされた寿命の値が最終値になったならば、上書きフラグをＯＮにするようにしてもよい。
【０１０７】
また、本実施の形態においても、第２の実施の形態のように空きフレーム登録タイマーを用いるようにしてもよい。この場合、空きフレーム登録タイマーがタイムアップとなって、空き登録タイマー指定時間となったならば、上書き許可フラグがＯＮとなっているものは除いて、例えば寿命が「１６」以上となっているフレームバッファを検索し、検索したフレームバッファの上書き許可フラグをＯＮにすればよい。
【０１０８】
また、各実施の形態においては、フレームバッファ数＝１２、連写フレームレート＝４ｆｐｓ、Ｎ＿ＢＵＦＦＥＲ＝１２、ＬＩＦＥ［］＝「１９」〜「０」、Ｎ＿ＳＴＡＭＰ＝４、ＳＴＡＭＰ［］＝１９→７→１１→７等としたが、これらの値はあくまでも一例であり、適宜各値を変更して実施することができる。
【０１０９】
また、各実施の形態においては、パスト撮影に本発明を適用した場合について説明したが、トリガーが発生するまではパスト撮影を行い、トリガーが発生した後はフューチャー撮影を行うパスト＋フューチャー撮影に本発明を適用しても良い。この場合、実施の形態において行ったパスト撮影の処理をフューチャー撮影においても実行することが好ましい。
【図面の簡単な説明】
【０１１０】
【図１】本発明の一実施の形態に係るデジタルカメラのブロック図である。
【図２】第１の実施の形態におけるフレームバッファの状態遷移図である。
【図３】同実施の形態の処理手順を示すフローチャートである。
【図４】同実施の形態における空きフレーム検索書き込み処理の手順を示すフローチャートである。
【図５】第２の実施の形態の処理手順を示すフローチャートである。
【図６】同実施の形態におけるフレームバッファの状態遷移図である。
【図７】図７に続くフレームバッファの状態遷移図である。
【図８】同実施の形態における空きフレーム検索書き込み処理の手順を示すフローチャートである。
【図９】第３の実施の形態の処理手順を示すフローチャートである。
【図１０】同実施の形態におけるフレームバッファの状態遷移図である。
【図１１】同実施の形態における空きフレーム検索書き込み処理の手順を示すフローチャートである。
【符号の説明】
【０１１１】
１    デジタルカメラ
２    ＣＣＤ
３    ＤＳＰ／ＣＰＵ
４    ＴＧ
５    ユニット回路
６    表示装置
７    キー入力部
１０    データバス
１１    バッファメモリ
１２    ＲＯＭ
１３    保存メモリ
【図１】
2008236467.tif 000003
【図２】
2008236467.tif 000004
【図３】
2008236467.tif 000005
【図４】
2008236467.tif 000006
【図５】
2008236467.tif 000007
【図６】
2008236467.tif 000008
【図７】
2008236467.tif 000009
【図８】
2008236467.tif 000010
【図９】
2008236467.tif 000011
【図１０】
2008236467.tif 000012
【図１１】
2008236467.tif 000013