(57)【要約】【課題】第１のバッファと第２のバッファとを兼ねる１つの記憶手段の使用効率を保持したまま、その記憶手段に対して、画像データにその圧縮画像データを上書きすることなく、圧縮画像データを書き込むことができる画像記憶装置を提供する。【解決手段】ＪＰＥＧデータがＲＡＭ２０６のＪＰＥＧバッファ３０１からＲＡＷバッファ３０２の少なくとも一部領域に亘って書き込まれる場合において、ＪＰＥＧデータのサイズが予め設定されているサイズ以下で、かつＲＡＷデータ上にＪＰＥＧデータが上書きされる場合、圧縮処理部２０９により、再度、ＲＡＷバッファ３０２から読み出されたＲＡＷデータ（ＹＵＶデータ）が設定されている圧縮率で圧縮され、ＪＰＥＧデータが生成される。この生成されたＪＰＥＧデータは、ＪＰＥＧバッファ３０１からＲＡＷバッファ３０２に亘って書き込まれる。【選択図】図１
2008176481.tif 000002
【特許請求の範囲】
【請求項１】
第１のバッファと第２のバッファとを兼ねる記憶手段と、
入力された画像データを前記第１のバッファへの書き込む画像書き込み手段と、
前記第１のバッファから前記画像データを読み出す画像読み出し手段と、
前記第１のバッファから読み出された画像データを設定されている圧縮率で圧縮して、圧縮画像データを生成する画像圧縮手段と、
前記画像圧縮手段により生成された圧縮画像データを前記第２のバッファから前記第１のバッファに亘って書き込むことが可能な圧縮画像書き込み手段と、
前記圧縮画像データが前記第２のバッファから前記第１のバッファの少なくとも一部領域に亘って書き込まれる場合において、前記圧縮画像書込み手段による前記圧縮画像データの前記記憶手段への書き込みを停止させる停止手段と、
前記停止手段により書き込みを停止させた後、前記圧縮画像データの書き込みアドレスが前記画像データの読み出しアドレスに追いつくか否かを判定する判定手段と、
前記判定手段により前記圧縮画像データの書き込みアドレスが前記画像データの読み出しアドレスに追いつかないと判断された場合、前記圧縮画像書き込み手段が、再度、停止前の圧縮率で圧縮された圧縮画像データを前記記憶手段へ書き込むよう制御する制御手段と、を備えることを特徴とする画像記憶装置。
【請求項２】
前記判定手段により前記圧縮画像データの書き込みアドレスが前記画像データの読み出しアドレスに追いつくと判定された場合、前記制御手段は、前記画像圧縮手段の圧縮率を前記停止前の圧縮率よりも高い圧縮率に変更することを特徴とする請求項１に記載の画像記憶装置。
【請求項３】
前記高い圧縮率で圧縮された圧縮画像データが前記第２のバッファから前記第１のバッファの領域に亘って書き込まれない場合、前記制御手段は、前記圧縮画像書き込み手段が前記高い圧縮率で圧縮された圧縮画像データを前記記憶手段へ書き込むよう制御することを特徴とする請求項２に記載の画像記憶装置。
【請求項４】
前記制御手段は、前記圧縮画像データが前記第２のバッファから前記第１のバッファの少なくとも一部領域に亘って書き込まれる場合において、前記圧縮画像データのサイズが予め設定されているサイズより大きい場合、前記画像圧縮手段の圧縮率を、前記圧縮画像データのサイズが予め設定されているサイズ以下になる圧縮率に変更し、再度、前記画像圧縮手段により、前記第１のバッファから読み出された画像データを前記変更された圧縮率で圧縮して圧縮画像データを生成し、前記圧縮画像書き込み手段により、前記生成された圧縮画像データを前記第２のバッファから書き込むように制御することを特徴とする請求項１〜３のいずれか１つに記載の画像記憶装置。
【請求項５】
前記圧縮画像データが前記第２のバッファから前記第１のバッファの少なくとも一部領域に亘って書き込まれることを検出する第１の検出手段と、
前記圧縮画像データのサイズを検出する第２の検出手段と、
前記画像データ上に前記圧縮画像データが上書きされることを検出する第３の検出手段とを備え、
前記停止手段は、前記第１の検出手段の検出結果に基づいて前記圧縮画像データが前記第２のバッファから前記第１のバッファの少なくとも一部領域に亘って書き込まれるか否かを判定して前記書き込みを停止し、前記制御手段は、前記第２の検出手段の結果に基づいて前記圧縮画像データのサイズが予め設定されているサイズ以下であるか否かの判定し、前記判定手段は前記圧縮画像データの書き込みアドレスが前記画像データの読み出しアドレスに追いつくか否かの判定を行うことを特徴とする請求項１ないし４のいずれか１つに記載の画像記憶装置。
【請求項６】
第１のバッファと第２のバッファとを兼ねる記憶手段と、入力された画像データを前記第１のバッファへの書き込む画像書き込み手段と、前記第１のバッファから前記画像データを読み出す画像読み出し手段と、前記第１のバッファから読み出された画像データを設定されている圧縮率で圧縮して、圧縮画像データを生成する画像圧縮手段と、前記画像圧縮手段により生成された圧縮画像データを前記第２のバッファから前記第１のバッファに亘って書き込むことが可能な圧縮画像書き込み手段とを備える画像記憶装置の制御方法であって、
前記圧縮画像データが前記第２のバッファから前記第１のバッファの少なくとも一部領域に亘って書き込まれる場合において、
前記圧縮画像書込み手段による前記圧縮画像データの前記記憶手段への書き込みを停止させる停止ステップと、
前記書き込みを停止させた後、前記圧縮画像データの書き込みアドレスが前記画像データの読み出しアドレスに追いつくか否かを判定する判定ステップと、
前記圧縮画像データの書き込みアドレスが前記画像データの読み出しアドレスに追いつかないと判断された場合、前記圧縮画像書き込み手段が、再度、停止前の圧縮率で圧縮された圧縮画像データを前記記憶手段へ書き込むよう制御する制御ステップと、を備えることを特徴とする画像記憶装置の制御方法。
【請求項７】
前記判定ステップにより前記圧縮画像データの書き込みアドレスが前記画像データの読み出しアドレスに追いつくと判定された場合、前記制御ステップは、前記画像圧縮手段の圧縮率を前記停止前の圧縮率よりも高い圧縮率に変更することを特徴とする請求項６に記載の画像記憶装置の制御方法。
【請求項８】
前記高い圧縮率で圧縮された圧縮画像データが前記第２のバッファから前記第１のバッファの領域に亘って書き込まれない場合、前記制御ステップは、前記圧縮画像書き込み手段が前記高い圧縮率で圧縮された圧縮画像データを前記記憶手段へ書き込むよう制御することを特徴とする請求項７に記載の画像記憶装置の制御方法。
【請求項９】
前記制御ステップは、前記圧縮画像データが前記第２のバッファから前記第１のバッファの少なくとも一部領域に亘って書き込まれる場合において、前記圧縮画像データのサイズが予め設定されているサイズより大きい場合、前記画像圧縮手段の圧縮率を、前記圧縮画像データのサイズが予め設定されているサイズ以下になる圧縮率に変更し、
再度、前記画像圧縮手段により、前記第１のバッファから読み出された画像データを前記変更された圧縮率で圧縮して圧縮画像データを生成するように制御し、
前記圧縮画像書き込み手段により、前記生成された圧縮画像データを前記第２のバッファから書き込むように制御することを特徴とする請求項５〜８のいずれか１つに記載の画像記憶装置の制御方法。
【請求項１０】
前記画像記憶装置は、前記圧縮画像データが前記第２のバッファから前記第１のバッファの少なくとも一部領域に亘って書き込まれることを検出する第１の検出手段と、前記圧縮画像データのサイズを検出する第２の検出手段と、前記画像データ上に前記圧縮画像データが上書きされることを検出する第３の検出手段とを備え、
前記停止ステップは、前記第１の検出手段の検出結果に基づいて、前記圧縮画像データが前記第２のバッファから前記第１のバッファの少なくとも一部領域に亘って書き込まれるか否かを判定して前記書き込みを停止し、前記制御ステップは、前記第２の検出手段の結果に基づいて、前記圧縮画像データのサイズが予め設定されているサイズ以下であるか否かの判定、前記判定ステップは前記圧縮画像データの書き込みアドレスが前記画像データの読み出しアドレスに追いつくか否かの判定を行うことを特徴とする請求項６ないし８のいずれか１つに記載の画像記憶装置。
【請求項１１】
第１のバッファと第２のバッファとを兼ねる記憶手段と、入力された画像データを前記第１のバッファへの書き込む画像書き込み手段と、前記第１のバッファから前記画像データを読み出す画像読み出し手段と、前記第１のバッファから読み出された画像データを設定されている圧縮率で圧縮して、圧縮画像データを生成する画像圧縮手段と、前記画像圧縮手段により生成された圧縮画像データを前記第２のバッファから前記第１のバッファに亘って書き込むことが可能な圧縮画像書き込み手段とを備える画像記憶装置を制御するためのプログラムであって、
前記圧縮画像データが前記第２のバッファから前記第１のバッファの少なくとも一部領域に亘って書き込まれる場合において、前記圧縮画像書込み手段による前記圧縮画像データの前記記憶手段への書き込みを停止させる停止ステップと、
前記書き込みを停止させた後、前記圧縮画像データの書き込みアドレスが前記画像データの読み出しアドレスに追いつくか否かを判定する判定ステップと、
前記圧縮画像データの書き込みアドレスが前記画像データの読み出しアドレスに追いつかないと判断された場合、前記圧縮画像書き込み手段が、再度、停止前の圧縮率で圧縮された圧縮画像データを前記記憶手段へ書き込むよう制御する制御ステップと、
を有することを特徴とするプログラム。
【請求項１２】
請求項１に記載の画像記憶装置を搭載することを特徴とするデジタルカメラ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像記憶装置、その制御方法、プログラムおよび該画像記憶装置を搭載するデジタルカメラに関する。
【背景技術】
【０００２】
デジタルカメラなどの画像を撮像し、記録する機器においては、撮像素子の高性能化、例えば高画素数化が進められている。これに伴い撮像した画像データのサイズが大きくなる、すなわち当該画像データを記録するファイルのサイズが大きくなる。このファイルのサイズが大きくなることにより、当該ファイルを記録するメモリとして、大きな容量のメモリが必要になる。
【０００３】
メモリの大容量化を避けるために、１つのメモリを、撮像データであるＲＡＷデータを記録するバッファと、圧縮データであるＪＰＥＧデータを記録するバッファを兼用するように使用する手法が提案されている（例えば特許文献１参照）。
【０００４】
また、ＪＰＥＧデータを記録するバッファを有し、撮像データを圧縮してＪＰＥＧバッファに記録する際にその圧縮率を求め、当該圧縮率で撮像データを圧縮する方法がある（例えば特許文献２参照）。
【特許文献１】特登録第０３３４２３８８号公報
【特許文献２】特開２００３−１９９０５２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、１つのメモリを、ＲＡＷデータを記憶するバッファとＪＰＥＧデータを記憶するバッファとして兼用する場合、圧縮前のＲＡＷデータがＪＰＥＧデータにより上書きされ、再度、圧縮を行うことができないことがある。
【０００６】
元となるＲＡＷデータがＪＰＥＧデータにより上書きされる問題は、圧縮により得られるＪＰＥＧデータが大きくなる、すなわちＪＰＥＧデータを記憶するバッファのサイズ以上となる場合に発生する。例えば高周波の画像を撮影した場合について説明する。
【０００７】
ＲＡＷデータが１ｐｉｘｅｌあたり１０ｂｉｔ、信号処理により得られるＹＵＶデータが１６ｂｉｔとする。標準チャートを撮影した場合には、ＹＵＶデータを圧縮したＪＰＥＧデータは、１ｐｉｘｅｌあたり４ｂｉｔ程度である。しかし、高周波の画像を撮影した場合には、ＹＵＶデータを圧縮したＪＰＥＧデータは１ｐｉｘｅｌあたり１２ｂｉｔとなり、標準的な画像を撮影した場合に比べ高周波の画像を撮影した場合のＪＰＥＧデータのサイズは大きくなる。バッファ兼用のメモリにおいては、アドレス上ＪＰＥＧバッファとＲＡＷバッファを連続させ、ＪＰＥＧバッファを通常の画像の圧縮サイズに合わせて確保している。したがって、ＪＰＥＧデータのサイズが大きいと、ＪＰＥＧデータの書き込みアドレスがＲＡＷデータの読み出しアドレスに追いついてしまい、元となるＲＡＷデータがＪＰＥＧデータにより上書きされる。これを回避するためには、例外的な高周波の画像に対応してＪＰＥＧバッファ領域をメモリに大きく確保することもできる。しかし、その場合、通常の画像においてはメモリの使用効率が低下し、兼用バッファの効果も薄くなる。
【０００８】
本発明の目的は、第１のバッファと第２のバッファとを兼ねる１つの記憶手段の使用効率を保持したまま、その記憶手段に対して、画像データにその圧縮画像データを上書きすることなく、圧縮画像データを書き込むことを可能にすることにある。
【０００９】
また、本発明の目的は、上記書き込みを可能とした画像記憶装置、その制御方法およびプログラム、並びに上記画像記憶装置を搭載するデジタルカメラを提供することにある。
【課題を解決するための手段】
【００１０】
本発明は、上記目的を達成するため、第１のバッファと第２のバッファとを兼ねる記憶手段と、入力された画像データを前記第１のバッファへの書き込む画像書き込み手段と、前記第１のバッファから前記画像データを読み出す画像読み出し手段と、前記第１のバッファから読み出された画像データを設定されている圧縮率で圧縮して、圧縮画像データを生成する画像圧縮手段と、前記画像圧縮手段により生成された圧縮画像データを前記第２のバッファから前記第１のバッファに亘って書き込むことが可能な圧縮画像書き込み手段と、前記圧縮画像データが前記第２のバッファから前記第１のバッファの少なくとも一部領域に亘って書き込まれる場合において、前記圧縮画像書込み手段による前記圧縮画像データの前記記憶手段への書き込みを停止させる停止手段と、前記停止手段により書き込みを停止させた後、前記圧縮画像データの書き込みアドレスが前記画像データの読み出しアドレスに追いつくか否かを判定する判定手段と、前記判定手段により前記圧縮画像データの書き込みアドレスが前記画像データの読み出しアドレスに追いつかないと判断された場合、前記圧縮画像書き込み手段が、再度、停止前の圧縮率で圧縮された圧縮画像データを前記記憶手段へ書き込むよう制御する制御手段と、を備えることを特徴とする画像記憶装置を提供する。
【００１１】
本発明は、上記目的を達成するため、第１のバッファと第２のバッファとを兼ねる記憶手段と、入力された画像データを前記第１のバッファへの書き込む画像書き込み手段と、前記第１のバッファから前記画像データを読み出す画像読み出し手段と、前記第１のバッファから読み出された画像データを設定されている圧縮率で圧縮して、圧縮画像データを生成する画像圧縮手段と、前記画像圧縮手段により生成された圧縮画像データを前記第２のバッファから前記第１のバッファに亘って書き込むことが可能な圧縮画像書き込み手段とを備える画像記憶装置の制御方法であって、前記圧縮画像データが前記第２のバッファから前記第１のバッファの少なくとも一部領域に亘って書き込まれる場合において、前記圧縮画像書込み手段による前記圧縮画像データの前記記憶手段への書き込みを停止させる停止ステップと、前記書き込みを停止させた後、前記圧縮画像データの書き込みアドレスが前記画像データの読み出しアドレスに追いつくか否かを判定する判定ステップと、前記圧縮画像データの書き込みアドレスが前記画像データの読み出しアドレスに追いつかないと判断された場合、前記圧縮画像書き込み手段が、再度、停止前の圧縮率で圧縮された圧縮画像データを前記記憶手段へ書き込むよう制御する制御ステップと、を備えることを特徴とする画像記憶装置の制御方法を提供する。
【００１２】
本発明は、上記目的を達成するため、第１のバッファと第２のバッファとを兼ねる記憶手段と、入力された画像データを前記第１のバッファへの書き込む画像書き込み手段と、前記第１のバッファから前記画像データを読み出す画像読み出し手段と、前記第１のバッファから読み出された画像データを設定されている圧縮率で圧縮して、圧縮画像データを生成する画像圧縮手段と、前記画像圧縮手段により生成された圧縮画像データを前記第２のバッファから前記第１のバッファに亘って書き込むことが可能な圧縮画像書き込み手段とを備える画像記憶装置を制御するためのプログラムであって、前記圧縮画像データが前記第２のバッファから前記第１のバッファの少なくとも一部領域に亘って書き込まれる場合において、前記圧縮画像書込み手段による前記圧縮画像データの前記記憶手段への書き込みを停止させる停止ステップと、前記書き込みを停止させた後、前記圧縮画像データの書き込みアドレスが前記画像データの読み出しアドレスに追いつくか否かを判定する判定ステップと、前記圧縮画像データの書き込みアドレスが前記画像データの読み出しアドレスに追いつかないと判断された場合、前記圧縮画像書き込み手段が、再度、停止前の圧縮率で圧縮された圧縮画像データを前記記憶手段へ書き込むよう制御する制御ステップと、を有することを特徴とするプログラムを提供する。
【００１３】
本発明は、上記目的を達成するため、上記画像記憶装置を搭載することを特徴とするデジタルカメラを提供する。
【発明の効果】
【００１４】
本発明によれば、第１のバッファと第２のバッファとを兼ねる１つの記憶手段の使用効率を保持したまま、その記憶手段に対して、画像データにその圧縮画像データを上書きすることなく、圧縮画像データを書き込むことができる。
【発明を実施するための最良の形態】
【００１５】
以下、本発明の実施の形態について図面を参照しながら説明する。
【００１６】
図１は本発明の一実施の形態に係る画像記憶装置を搭載するデジタルカメラの構成を示すブロック図である。図２は図１のＲＡＭ２０６のメモリマップを示す図である。
【００１７】
デジタルカメラは、図１に示すように、レンズ２０１と、レンズ２０１を介して捕らえられた被写体像を光電変換によりアナログ信号に変換する撮像素子２０２とを備える。撮像素子２０２から出力されたアナログ信号は、Ａ／Ｄ変換部２０３により、デジタル信号（ＲＡＷデータ）に変換される。このデジタル信号は、メモリコントローラ２０４に、またはメモリコントローラ２０４を介して信号処理部２０７に入力される。
【００１８】
メモリコントローラ２０４は、入力された書き込みアドレスまたは読み出しアドレスに基づいて、ＲＡＭ２０６またはメモリカード２１６に対して、ＲＡＷデータまたは圧縮された画像データ（ＪＰＥＧデータ）の書き込みまたは読み出しを行う。ここで、メモリカード２１６に対するデータの書き込みは、Ｉ／Ｆ（インタフェース）２１５を介して行われる。
【００１９】
ここで、上記ＲＡＷデータに対する書き込みアドレスと読み出しアドレスは、それぞれ、ＲＡＷデータ書き込みアドレス発生部２０５とＲＡＷデータ読み出しアドレス発生部２１２により発生される。また、上記ＪＰＥＧデータに対する書き込みアドレスは、ＪＰＥＧデータ書き込みアドレス発生部２１１により発生される。
【００２０】
ＲＡＭ２０６には、図２に示すように、ＲＡＷバッファ３０２とＪＰＥＧバッファ３０１が設けられている。ＲＡＷバッファ３０２は、Ａ／Ｄ変換部２０３から出力されたＲＡＷデータが書き込まれるバッファであり、ＪＰＥＧバッファ３０１は、ＲＡＷデータを圧縮処理することによって得られたＪＰＥＧデータが書き込まれるバッファである。例えば、ＪＰＥＧバッファ３０１のサイズは、標準チャートを撮影した場合のＪＰＥＧファイルサイズに設定されている。ここで、ＲＡＭ２０６においては、アドレスが図２中の矢印が示す方向に向けて大きくなるものとする。圧縮処理により得られたＪＰＥＧデータは、通常、ＪＰＥＧバッファ３０１に書き込まれる。ここで、書き込まれるＪＰＥＧデータのサイズがＪＰＥＧバッファ３０１の容量より大きい場合は、ＪＰＥＧデータの一部がＲＡＷバッファ３０２に書き込まれる。
【００２１】
信号処理部２０７は、入力されたＲＡＷデータに対して所定の信号処理を施し、当該ＲＡＷデータを、輝度色差信号であるＹＵＶデータに変換する。このＹＵＶデータは、スイッチ２０８を介して、圧縮処理部２０９に入力される。また、ＹＵＶデータは、メモリコントローラ２０４を介して、ＹＵＶデータ書き込みアドレス発生部２１７により発生されたＹＵＶデータ書き込みアドレスに基づいてＲＡＭ２０６へ書き込まれる。
【００２２】
ここで、スイッチ２０８は、圧縮処理部２０９に入力されるデータとして、信号処理部２０７から出力されたＹＵＶデータとＲＡＭ２０６から読み出されたＹＵＶデータのいずれかを選択するためのスイッチである。このスイッチ２０８の選択動作は、後述するシステムコントローラ２１０により制御される。
【００２３】
例えばシステムコントローラ２１０がスイッチ２０８に対して「０」を設定すると、スイッチ２０８は、信号処理部２０７から出力されたＹＵＶデータを選択して圧縮処理部２０９に入力するように動作する。これに対し、スイッチ２０８に対して「１」が設定された場合、スイッチ２０８は、ＲＡＭ２０６から読み出されたＹＵＶデータを選択して圧縮処理部２０９に入力するように動作する。このＲＡＭ２０６から読み出されたＹＵＶデータは、ＹＵＶデータ読み出しアドレス発生部２１８が発生するＹＵＶデータ読み出しアドレスに基づいて読み出されたデータである。
【００２４】
圧縮処理部２０９は、ＪＰＥＧ方式に従って入力されたＹＵＶデータを圧縮することによって、ＪＰＥＧデータを生成する。この生成されたＪＰＥＧデータは、メモリコントローラ２０４およびＩ／Ｆ２１５を介して、メモリカード２１６に記録される。
【００２５】
上記ＪＰＥＧデータ書き込みアドレス発生部２１１により発生されたＪＰＥＧデータ書き込みアドレスは、上記メモリコントローラ２０４に入力されるとともに、ＲＡＷバッファ侵入検出部２１３および追い付き検出部２１４に入力される。また、上記ＲＡＷデータ読み出しアドレス発生部２１２により発生されたＲＡＷデータ読み出しアドレスは、上記メモリコントローラ２０４に入力されるとともに、追い付き検出部２１４に入力される。
【００２６】
ＲＡＷバッファ侵入検出部２１３は、上記ＪＰＥＧデータ書き込みアドレスとシステムコントローラ２１０から入力されたＲＡＷバッファ開始アドレスを比較する。このＲＡＷバッファ開始アドレスとは、ＲＡＭ２０６に対してＲＡＷデータの書き込みを開始するアドレスとして予め設定されているアドレスである。そして、ＲＡＷバッファ侵入検出部２１３は、上記比較結果に基づいてＪＰＥＧデータ書き込みアドレスがＲＡＷバッファ３０２内のアドレスに到達しているか否かを検出する。この検出結果は、ＪＰＥＧデータがＪＰＥＧバッファ３０１からＲＡＷバッファ３０２の少なくとも一部領域に亘って書き込まれるか否かを表すものである。この検出結果を示す信号は、システムコントローラ２１０に出力され、システムコントローラ２１０は、この信号に応じて、内部に保持するＲＡＷバッファ侵入フラグの値を変化させる。
【００２７】
追い付き検出部２１４は、上記ＲＡＷデータ読み出しアドレスの値と上記ＪＰＥＧデータ書き込みアドレスの値を比較し、この比較結果に基づいてＪＰＥＧデータ書き込みアドレスがＲＡＷデータ読み出しアドレスに追い付いたか否かを検出する。具体的には、ＪＰＥＧデータ書き込みアドレスがＲＡＷデータ読み出しアドレスより大きい場合、ＪＰＥＧデータ書き込みアドレスがＲＡＷデータ読み出しアドレスに追い付いたと検出される。追い付き検出部２１４の検出結果は、ＲＡＷバッファ３０２のＲＡＷデータ上にＪＰＥＧデータが上書きされるか否かを表すものである。この検出結果を示す信号は、システムコントローラ２１０に出力され、システムコントローラ２１０は、この信号に応じて、内部に保持する追い付き検出フラグの値を変化させる。
【００２８】
システムコントローラ２１０は、ＣＰＵ（図示せず）、各種制御および処理のためのプログラムが格納されているＲＯＭ（図示せず）、およびＣＰＵの作業領域を提供するためのＲＡＭ（図示せず）などから構成される。上記ＣＰＵがＲＯＭに格納されているプログラムを実行することによって、本デジタルカメラの全体制御が行われるとともに、各種処理が行われる。
【００２９】
次に、ＪＰＥＧデータの書き込み動作について図３〜図５を参照しながら説明する。図３〜図５は図１のデジタルカメラにおけるＪＰＥＧデータの書き込み動作の手順を示すフローチャートである。ここで、図３〜図５のフローチャートに示す手順は、システムコントローラ２１０の制御下で実行される手順である。
【００３０】
システムコントローラ２１０は、図３に示すように、ＲＡＷデータの書き込みを行うように制御する（ステップＳ１０１）。これにより、メモリコントローラ２０４には、ＲＡＷデータ書き込みアドレス発生部２０５により発生されたＲＡＷデータ書き込みアドレスが入力される。そして、メモリコントローラ２０４は、撮像素子２０２から出力された電気信号をＡ／Ｄ変換することによって得られたＲＡＷデータを、ＲＡＭ２０６のＲＡＷバッファ３０２の上記発生されたＲＡＷデータ書き込みアドレスに書き込む。この際、ＲＡＷデータは、ＲＡＷバッファ開始アドレスを先頭として順に書き込まれる。
【００３１】
次いで、システムコントローラ２１０は、内部に保持するＲＡＷバッファ侵入フラグに「０」をセットする（ステップＳ１０２）。このＲＡＷバッファ侵入フラグは、ＪＰＥＧデータ書き込みアドレスの値がＲＡＷバッファ開始アドレスの値より大きいことを示すためのフラグである。すなわち、ＲＡＷバッファ侵入フラグは、ＪＰＥＧデータ書き込みアドレスがＲＡＷバッファ３０２内のアドレス到達したことを示すためのフラグである。ＲＡＷバッファ侵入フラグに「０」がセットされた場合、ＲＡＷバッファ侵入フラグは、ＪＰＥＧデータ書き込みアドレスがＲＡＷバッファ３０２内のアドレス到達していないことを示す。これに対し、ＲＡＷバッファ侵入フラグに「１」がセットされた場合、ＲＡＷバッファ侵入フラグは、ＪＰＥＧデータ書き込みアドレスがＲＡＷバッファ３０２内のアドレス到達していることを示す。
【００３２】
次いで、システムコントローラ２１０は、内部に保持する追い付き検出フラグに「０」をセットする（ステップＳ１０３）。この追い付き検出フラグは、ＪＰＥＧデータ書き込みアドレス１０６がＲＡＷデータ読出アドレスより大きいことを示すためのフラグである。すなわち、追い付き検出フラグは、ＪＰＥＧデータ書き込みアドレスがＲＡＷデータ読み出しアドレスに追い付いたことを示すためのフラグである。
【００３３】
次いで、システムコントローラ２１０は、ＲＡＷデータ読み出しアドレス発生部２１２に対して、ＲＡＷデータ読み出しアドレスの初期値としてＲＡＷバッファ開始アドレスをセットする（ステップＳ１０４）。そして、システムコントローラ２１０は、ＪＰＥＧデータ書き込みアドレス発生部２１１に対して、ＪＰＥＧデータ書き込みアドレスの初期値としてＪＰＥＧバッファ開始アドレスをセットする（ステップＳ１０５）。
【００３４】
次いで、システムコントローラ２１０は、ＲＡＭ２０６のＲＡＷバッファ３０２からＲＡＷデータを読み出し、当該読み出されたＲＡＷデータをＪＰＥＧデータへ変換する圧縮処理を開始するように制御する（ステップＳ１０６）。そして、システムコントローラ２１０は、画像全体の圧縮が終了したか否かの判定を行う（ステップＳ１０７）。この圧縮終了の判定は、圧縮処理部２０９において圧縮する画素数をカウントし、そのカウントした画素数が所定値に達したか否かに応じて行われる。
【００３５】
ここで、ＲＡＷデータからＪＰＥＧデータへの変換について説明する。ＲＡＷデータは、上記ステップＳ１０１においてＲＡＭ２０６のＲＡＷバッファ３０２に記憶されている。メモリコントローラ２０４は、ＲＡＷデータ読み出しアドレス発生部２１２が発生するＲＡＷデータ読み出しアドレスに対応するＲＡＷデータをＲＡＷバッファ３０２から読み出す。この読み出されたＲＡＷデータは、信号処理部２０７においてＹＵＶデータに変換された後に、スイッチ２０８を介して圧縮処理部２０９に入力される。圧縮処理部２０９は、入力されたＹＵＶデータを予め設定されている圧縮率で圧縮し、ＪＰＥＧデータを生成する。このＪＰＥＧデータは、メモリコントローラ２０４により、ＪＰＥＧデータ書き込みアドレス発生部２１１が発生するＪＰＥＧデータ書き込みアドレスに書き込まれる。
【００３６】
上記ステップＳ１０７において画像全体の圧縮が終了していないと判定された場合、図４に示すように、システムコントローラ２１０は、ＲＡＷバッファ開始アドレス＜ＪＰＥＧデータ書き込みアドレスの関係が成立するか否かを判定する（ステップＳ１０８）。この判定は、ＲＡＷバッファ侵入検出部２１３の検出結果に基づいて行われる。ここで、ＲＡＷバッファ開始アドレス＜ＪＰＥＧデータ書き込みアドレスの関係が成立しない場合、システムコントローラ２１０は、ＪＰＥＧデータ書き込みアドレスを更新し（ステップＳ１１２）、ＲＡＷデータ読み出しアドレスを更新する（ステップＳ１１３）。そして、システムコントローラ２１０は、再度、画像全体の圧縮が終了したか否かを判定する（ステップＳ１０７）。
【００３７】
上記ステップＳ１０８においてＲＡＷバッファ開始アドレス＜ＪＰＥＧデータ書き込みアドレスの関係が成立している場合、システムコントローラ２１０は、ＲＡＷバッファ侵入フラグに「１」をセットする（ステップＳ１０９）。この場合、ＪＰＥＧデータ書き込みアドレスがＲＡＷバッファ３０２内のアドレスに到達しているので、ＪＰＥＧデータのＲＡＭ２０６への書き込みを中止するようにメモリコントローラ２０４が制御される。
【００３８】
次いで、システムコントローラ２１０は、追い付き検出部２１４の検出結果に基づいてＲＡＷデータ読み出しアドレス＜ＪＰＥＧデータ書き込みアドレスの関係が成立するか否かを判定する（ステップＳ１１０）。ここで、ＲＡＷデータ読み出しアドレス＜ＪＰＥＧデータ書き込みアドレスの関係が成立しない場合、システムコントローラ２１０は、ＪＰＥＧデータ書き込みアドレスおよびＲＡＷデータ読み出しアドレスを更新する（ステップＳ１１２およびＳ１１３）。そして、システムコントローラ２１０は、再度、画像全体の圧縮が終了したか否かを判定する（ステップＳ１０７）。
【００３９】
上記ステップＳ１１０においてＲＡＷデータ読み出しアドレス＜ＪＰＥＧデータ書き込みアドレスの関係が成立すると判定された場合、システムコントローラ２１０は、追い付き検出フラグに「１」をセットする（ステップＳ１１１）。これにより、ＪＰＥＧデータ書き込みアドレスがＲＡＷデータ読み出しアドレスに到達していることが示される。
【００４０】
次いで、システムコントローラ２１０は、ＪＰＥＧデータ書き込みアドレスおよびＲＡＷデータ読み出しアドレスを更新する（ステップＳ１１２およびＳ１１３）。そして、システムコントローラ２１０は、再度、画像全体の圧縮が終了したか否かを判定する（ステップＳ１０７）。
【００４１】
上記ステップＳ１０７において画像全体の圧縮が終了していると判定された場合、図５に示すように、システムコントローラ２１０は、ＲＡＷバッファ侵入フラグが「１」であるか否かを判定する（ステップＳ１１４）。ここで、ＲＡＷバッファ侵入フラグが１である場合、システムコントローラ２１０は、ＪＰＥＧデータのサイズが予め設定されているサイズＡより大きいか否かを判定する（ステップＳ１１５）。ＪＰＥＧデータのサイズがサイズＡより大きい場合、システムコントローラ２１０は、圧縮処理部２０９の圧縮率をＪＰＥＧデータのサイズがサイズＡ内に収まる圧縮率に変更する（ステップＳ１１６）。
【００４２】
次いで、システムコントローラ２１０は、ＲＡＷバッファ侵入フラグおよび追い付き検出フラグと、ＲＡＷデータ読み出しアドレスおよびＪＰＥＧデータ書き込みアドレスのそれぞれに対する初期化を行う（ステップＳ１０２〜Ｓ１０５）。そして、システムコントローラ２１０は、上記変更された圧縮率を圧縮処理部２０９に設定し、この圧縮率を用いた圧縮処理を開始するように制御する（ステップＳ１０６）。
【００４３】
上記ステップＳ１１５においてＪＰＥＧデータのサイズがサイズＡ以下であると判定された場合、システムコントローラ２１０は、追い付き検出フラグが「１」であるか否かを判定する（ステップＳ１１７）。ここで、追い付き検出フラグが「１」である場合、システムコントローラ２１０は、圧縮処理部２０９の圧縮率を、ＪＰＥＧデータ書き込みアドレスがＲＡＷデータ読み出しアドレスに追い付かない圧縮率に変更する（ステップＳ１１８）。そして、システムコントローラ２１０は、上記ステップＳ１０２に戻り、上記変更された圧縮率を圧縮処理部２０９に設定し、この圧縮率を用いた圧縮処理を開始するように制御する（ステップＳ１０６）。
【００４４】
ここで圧縮率を上げた後に、ＪＰＥＧデータ書き込みアドレスが再度ＲＡＷバッファに侵入する場合の動作について説明する。ステップＳ１１８で上げた圧縮率により、ステップＳ１０７〜ステップＳ１１３を画像全体の圧縮が終了するまで繰り返し行う。このとき、ステップＳ１０９においてＲＡＷバッファ侵入フラグに「１」がセットされた場合、ＪＰＥＧデータのＲＡＭ２０６への書き込みを中止するようにメモリコントローラ２０４が制御される。そして、ステップＳ１１４においてＲＡＷバッファ侵入フラグに「１」がセットされているので、ステップＳ１１５、ステップＳ１１７へと移行する。
【００４５】
上記ステップＳ１１７において追い付き検出フラグが「１」でないと判定されるので、システムコントローラ２１０は、圧縮処理部２０９により、画像先頭から本圧縮を行うように制御する（ステップＳ１１９）。
【００４６】
本実施形態の圧縮処理として本圧縮と仮圧縮があるが、後述の図６の説明の際に、その具体的な処理について述べる。
【００４７】
この本圧縮により得られたＪＰＥＧデータは、ＲＡＭ２０６のＪＰＥＧバッファ３０１にまたはＪＰＥＧバッファ３０１からＲＡＷバッファ３０２に亘って書き込まれる。次いで、システムコントローラ２１０は、メモリコントローラ２０４により、ＲＡＭ２０６に書き込まれたＪＰＥＧデータを、メモリカード２１６に記録するように制御する（ステップＳ１２０）。そして、システムコントローラ２１０は、本処理を終了する。
【００４８】
また別の場合として、圧縮率を上げた後に、ＪＰＥＧデータ書き込みアドレスがＲＡＷバッファに侵入しない場合の動作について説明する。この場合も圧縮率を上げた後、ステップＳ１０７〜ステップＳ１１３を画像全体の圧縮が終了するまで繰り返し行うが、ＲＡＷバッファへの侵入は検出されない。したがって、ステップＳ１１４では、ＲＡＷバッファ侵入フラグが「１」でないと判定され、ステップＳ１２０に移行する。ステップＳ１２０では、システムコントローラ２１０は、メモリコントローラ２０４により、上記ＪＰＥＧデータをメモリカード２１６に記録するように制御する。そして、システムコントローラ２１０は、本処理を終了する。
【００４９】
上記ステップＳ１１４においてＲＡＷバッファ侵入フラグが「１」でないと判定された場合、システムコントローラ２１０は、メモリコントローラ２０４により、上記ＪＰＥＧデータをメモリカード２１６に記録するように制御する（ステップＳ１２０）。そして、システムコントローラ２１０は、本処理を終了する。
【００５０】
次に、ＪＰＥＧデータ書き込みアドレスがＲＡＷバッファ３０２内のアドレスに到達する場合のＪＰＥＧデータの書き込み動作について図６を参照しながら説明する。図６はＪＰＥＧデータ書き込みアドレスがＲＡＷバッファ３０２内のアドレスに到達する場合のメモリマップとＲＡＷデータ読み出しアドレスおよびＪＰＥＧデータ書き込みアドレスの関係とを示す図である。ここでは、スイッチ２０８に対して「０」が設定され、信号処理部２０７から出力されたＹＵＶデータが圧縮処理部２０９に入力されるものとする。
【００５１】
図６に示すように、ＲＡＷデータ読み出しアドレス１０５がＲＡＷバッファ開始アドレス１０３を初期値として順次発生され、発生されたＲＡＷデータ読み出しアドレス１０５に対応するＲＡＷデータがＲＡＷバッファ３０２から読み出される。そして、ＲＡＷデータ読み出しアドレス１０５が圧縮終了に対応するＲＡＷデータ読み出し終了アドレス１１１に達するまで、ＲＡＷデータ（ＹＵＶデータ）に対する圧縮処理が圧縮処理部２０９により行われる。ここで、図６の縦軸はアドレスを表し、アドレスの値は下方向に向けて大きくなるものとする。また、横軸は圧縮の進度を表し、左端が圧縮の開始、右端が圧縮の終了を示す。
【００５２】
また、ＲＡＷデータ読み出しアドレスの発生に伴い、ＪＰＥＧデータ書き込みアドレス１０６がＪＰＥＧバッファ開始アドレス１０４を初期値として順次発生される。ここで、ＪＰＥＧデータのＲＡＭ２０６への書き込み終了時に、ＪＰＥＧデータ書き込みアドレス１０６はＪＰＥＧデータ書き込み終了アドレス１０８へ達するものとする。図６に示す例の場合、このＪＰＥＧデータ書き込み終了アドレス１０８は、ＲＡＷバッファ３０２内のアドレスであるとする。ここで、ＪＰＥＧ方式による圧縮は可変長圧縮であるために、ＪＰＥＧデータ書き込みアドレス１０６は、実際には直線では表されないが便宜的に直線で表すものとする。
【００５３】
このような場合、ＪＰＥＧデータ書き込みアドレス１０６がＲＡＷバッファ開始アドレス１０３（図中の交点１０７）を経てＲＡＷバッファ３０２内のアドレスに到達することになる。すなわち、ＪＰＥＧデータの一部がＲＡＷバッファ３０２に書き込まれることになる。
【００５４】
本実施の形態においては、ＪＰＥＧデータ書き込みアドレス１０６がＲＡＷバッファ３０２内のアドレスに到達した場合、ＪＰＥＧデータのサイズを算出するための圧縮が実施され、この圧縮を本実施形態では仮圧縮と定義している。このＪＰＥＧデータのサイズは、ＪＰＥＧバッファ開始アドレス１０４からＪＰＥＧデータ書き込み終了アドレスに基づいて算出される。この仮圧縮時には、ＪＰＥＧデータ書き込みアドレス１０６の発生は継続されるが、ＪＰＥＧデータの一部は、ＲＡＭ２０６に書き込まれない。すなわち、ＪＰＥＧデータ書き込みアドレス１０６がＲＡＷバッファ３０２のＲＡＷバッファ開始アドレスに到達して時点（交点１０７）からＪＰＥＧデータ書き込み終了アドレス１０８間のデータが、ＲＡＭ２０６に書き込まれない。そして、画像全体の圧縮が終了するまで、上記仮圧縮が行われる。
【００５５】
画像全体の圧縮が終了すると、ＪＰＥＧデータを再度ＲＡＭ２０６に書き込むために、改めて画像（ＲＡＷデータ）をその先頭から圧縮するための圧縮が行われる。この圧縮を本実施形態では本圧縮と定義している。
【００５６】
この場合の書き込み動作を具体的に説明すると、撮像素子２０２から出力された電気信号をＡ／Ｄ変換することによって得られたＲＡＷデータが、ＲＡＭ２０６のＲＡＷバッファ３０２の上記発生されたＲＡＷデータ書き込みアドレスに書き込まれる。この際、ＲＡＷデータは、ＲＡＷバッファ開始アドレス１０３を先頭として順に書き込まれる（ステップＳ１０１）。
【００５７】
次いで、システムコントローラ２１０の内部に保持されるＲＡＷバッファ侵入フラグに「０」がセットされ（ステップＳ１０２）、追い付き検出フラグに「０」がセットされる（ステップＳ１０３）。
【００５８】
次いで、ＲＡＷデータ読み出しアドレス発生部２１２に対して、ＲＡＷデータ読み出しアドレス１０５の初期値としてＲＡＷバッファ開始アドレス１０３がセットされる（ステップＳ１０４）。そして、ＪＰＥＧデータ書き込みアドレス発生部２１１に対して、ＪＰＥＧデータ書き込みアドレス１０６の初期値としてＪＰＥＧバッファ開始アドレス１０４がセットされる（ステップＳ１０５）。
【００５９】
次いで、ＲＡＭ２０６のＲＡＷバッファ３０２からＲＡＷデータが読み出され、当該読み出されたＲＡＷデータをＪＰＥＧデータへ変換する圧縮処理が開始される（ステップＳ１０６）。
【００６０】
本例の場合、上記画像全体の圧縮中において、ＪＰＥＧデータ書き込みアドレス１０６がＲＡＷバッファ開始アドレス１０３（図中の交点１０７）に到達することになる。すなわち、ＲＡＷバッファ開始アドレス１０３＜ＪＰＥＧデータ書き込みアドレス１０６の関係が成立することになる（図４のステップＳ１０８）。
【００６１】
ＲＡＷバッファ開始アドレス１０３＜ＪＰＥＧデータ書き込みアドレス１０６の関係が成立すると、ＲＡＷバッファ侵入フラグが「１」にセットされる（ステップＳ１０９）。ＲＡＷバッファ侵入フラグに「１」がセットされると、ＪＰＥＧデータ書き込み終了アドレス１０８とＪＰＥＧバッファ開始アドレス１０４に基づいて当該アドレス間のＪＰＥＧデータのサイズを算出するための仮圧縮が行われる。この仮圧縮時には、ＪＰＥＧデータのＲＡＭ２０６への書き込みは中止される。本例の場合、ＲＡＷデータ読み出しアドレス１０５＜ＪＰＥＧデータ書き込みアドレス１０６の関係は成立しないので、追い付き検出フラグに「１」がセットされない。そして、ＪＰＥＧデータ書き込みアドレス１０６およびＲＡＷデータ読み出しアドレス１０５の更新が、継続される（ステップＳ１１２およびＳ１１３）。
【００６２】
このようにして、ステップＳ１０７からステップＳ１１３までが、画像全体の圧縮が終了するまで繰り返し行われる。この画像全体の圧縮が終了した状態には（ステップＳ１０７）、ＲＡＷバッファ侵入フラグに「１」がセットされている状態にある（ステップＳ１１４）。
【００６３】
次いで、上記算出されたＪＰＥＧデータのサイズが予め設定されているサイズＡを超えているか否かの判定が行われる（ステップＳ１１５）。ここで、上記算出されたＪＰＥＧデータのサイズがサイズＡを超えている場合、圧縮処理部２０９の圧縮率が、上記算出されたＪＰＥＧデータのサイズが上記サイズＡ内に収まる圧縮率に変更される（ステップＳ１１６）。
【００６４】
圧縮率が変更されると、ＲＡＷバッファ侵入フラグおよび追い付き検出フラグの初期化と、ＲＡＷデータ読み出しアドレスおよびＪＰＥＧデータ書き込みアドレスの初期化とが行われる（ステップＳ１０２〜Ｓ１０５）。そして、上記変更された圧縮率を用いてＲＡＷデータを圧縮する圧縮処理が開始される（ステップＳ１０６）。
【００６５】
圧縮率が変更された場合においても、ＲＡＷバッファ侵入フラグに「１」がセットされる場合があるが、ＪＰＥＧデータはサイズＡ以下のサイズに収まる。よって、追い付き検出フラグが「１」であるか否かの判定が行われる（ステップＳ１１７）。本例の場合、追い付きフラグに「１」がセットされていないので、圧縮処理部２０９により、改めてＲＡＷデータをその先頭から圧縮し、当該圧縮により得られたＪＰＥＧデータをＲＡＭ２０６に書き込む本圧縮が行われる（ステップＳ１１９）。この本圧縮においては、ＪＰＥＧデータ書き込みアドレスがＲＡＷバッファ３０２内のアドレスに到達したとしても、ＪＰＥＧデータの書き込みを中止することなく、ＲＡＷバッファ３０２にＪＰＥＧデータの書き込みが行われる。そして、本圧縮によりＪＰＥＧバッファ３０１からＲＡＷバッファ３０２に亘って書き込まれたＪＰＥＧデータは、メモリカード２１６に記録される（ステップＳ１２０）。
【００６６】
次に、ＪＰＥＧデータ書き込みアドレスがＲＡＷバッファ３０２内に到達し、かつＲＡＷデータ読み出しアドレスに追い付く場合について図７を参照しながら説明する。図７はＪＰＥＧデータ書き込みアドレスがＲＡＷバッファ３０２内のアドレスに到達し、かつＲＡＷデータ読み出しアドレスに追い付く場合のメモリマップとＲＡＷデータ読み出しアドレスおよびＪＰＥＧデータ書き込みアドレスの関係とを示す図である。
【００６７】
図７に示すように、ＪＰＥＧデータ書き込みアドレス５０６が、ＲＡＷバッファ３０２のＲＡＷバッファ開始アドレス１０３を経てＲＡＷデータ読出しアドレス１０６と一致し（交点５０９）、追い付く場合がある。
【００６８】
ＪＰＥＧデータ書き込みアドレス５０６がＲＡＷバッファ３０２のＲＡＷバッファ開始アドレス１０３を超えると、ＲＡＷバッファ開始アドレス１０３＜ＪＰＥＧデータ書き込みアドレス５０６の関係が成立する（図４のステップＳ１０８）。これにより、ＲＡＷバッファ侵入フラグに「１」がセットされる（ステップＳ１０９）。ＲＡＷバッファ侵入フラグに「１」がセットされると、以降のＪＰＥＧデータ書き込みアドレス５０６に書き込むべきＪＰＥＧデータの書き込みが中止される。そして、仮圧縮が行われ、ＪＰＥＧデータ書き込み終了アドレスとＪＰＥＧバッファ開始アドレス１０４に基づいてＪＰＥＧデータのサイズが算出される。この仮圧縮時には、ＪＰＥＧデータのＲＡＭ２０６への書き込みは中止されるが、ＪＰＥＧデータ書き込みアドレス５０６およびＲＡＷデータ読み出しアドレス１０５の発生は継続される。すなわち、画像全体の圧縮が終了するまで、仮圧縮が行われる。
【００６９】
本例の場合、画像全体の圧縮が終了するまでの期間中に、ＲＡＷデータ読み出しアドレス１０５＜ＪＰＥＧデータ書き込みアドレス５０６の関係が成立し（ステップＳ１１０）、追い付き検出フラグに「１」がセットされる（ステップＳ１１１）。そして、画像全体の圧縮が終了するまで、ステップＳ１０７からステップＳ１１３までの処理が繰り返し行われる。この画像全体の圧縮が終了した状態においては（ステップＳ１０７）、ＲＡＷバッファ侵入フラグに「１」がセットされ、追い付き検出フラグに「１」がセットされた状態にある。
【００７０】
次いで、ＲＡＷバッファ侵入フラグに「１」がセットされているので、上記算出されたＪＰＥＧデータのサイズが予め設定されているサイズＡを超えているか否かの判定が行われる（ステップＳ１１５）。ここで、上記算出されたＪＰＥＧデータのサイズがサイズＡを超えている場合、圧縮処理部２０９の圧縮率が、上記算出されたＪＰＥＧデータのサイズが上記サイズＡ内に収まるような圧縮率に変更される（ステップＳ１１６）。
【００７１】
圧縮率が変更されると、ＲＡＷバッファ侵入フラグおよび追い付き検出フラグの初期化と、ＲＡＷデータ読み出しアドレスおよびＪＰＥＧデータ書き込みアドレスの初期化とが行われる（ステップＳ１０２〜Ｓ１０５）。そして、上記変更された圧縮率を用いてＲＡＷデータを圧縮する圧縮処理が開始される（ステップＳ１０６）。
【００７２】
ここで変更する圧縮率により再圧縮時のＪＰＥＧデータ書き込みアドレスとＲＡＷバッファ３０２内のアドレスとの間の関係は、次の３つのいずれかである。
【００７３】
（１）変更する圧縮率により再圧縮時のＪＰＥＧデータ書き込みアドレスがＲＡＷバッファ３０２内のアドレスに達するが、ＲＡＷデータ読み出しアドレスに追い付かない場合。
（２）ＲＡＷバッファ３０２内のアドレスに到達し、かつＲＡＷデータ読み出しアドレスに追い付く場合。
（３）ＲＡＷバッファ３０２内のアドレスに到達し無い場合。
【００７４】
以下、３つの場合のそれぞれについて説明する。
【００７５】
まず、上記（１）の場合すなわち上記圧縮率の変更後の再圧縮においてＪＰＥＧデータ書き込みアドレスがＲＡＷバッファ３０２内のアドレスに達するが、ＲＡＷデータ読み出しアドレスに追い付かない場合について説明する。
【００７６】
この場合、ＪＰＥＧデータ書き込みアドレスが、ＪＰＥＧデータ書き込みアドレス５１０になるものとする。このＪＰＥＧデータ書き込みアドレス５１０は、ＲＡＷバッファ開始アドレスとの交点５０７を経てＲＡＷバッファ３０２内のアドレスに達するものとなるが、ＲＡＷデータ読み出しアドレスに追い付くことはない。
【００７７】
よって、上記ＪＰＥＧデータのサイズがサイズＡを超えておらず、かつ追い付き検出フラグが「１」でない状態になるので、改めて、圧縮処理部２０９により、変更された圧縮率で画像全体の圧縮を行う本圧縮が行われる。この本圧縮においては、ＪＰＥＧデータ書き込みアドレスがＲＡＷバッファ３０２内のアドレスに到達したとしても、ＪＰＥＧデータの書き込みを中止することなく、ＲＡＷバッファ３０２にＪＰＥＧデータの書き込みが行われる。そして、本圧縮によりＪＰＥＧバッファ３０１からＲＡＷバッファ３０２に亘って書き込まれたＪＰＥＧデータは、メモリカード２１６に記録される（ステップＳ１２０）。
【００７８】
次に、上記（２）の場合すなわち上記圧縮率の変更後の再圧縮においてＪＰＥＧデータ書き込みアドレスがＲＡＷバッファ３０２内のアドレスに到達し、かつＲＡＷデータ読み出しアドレスに追い付く場合について説明する。
【００７９】
この場合、追い付きフラグに「１」がセットされているので、圧縮処理部２０９の圧縮率が、ＪＰＥＧデータ書き込みアドレスがＲＡＷデータ読み出しアドレスに追い付かない圧縮率に変更される（ステップＳ１１８）。そして、再度変更された圧縮率を用いた圧縮処理が行われる。
【００８０】
最後に、上記（３）の場合すなわち上記圧縮率の変更後の再圧縮においてＪＰＥＧデータ書き込みアドレスがＲＡＷバッファ３０２内のアドレスに到達し無い場合について説明する。
【００８１】
この場合、再圧縮処理終了後ＲＡＷバッファに到達していないことが判定される（ステップ１１４）。そして、圧縮により書き込まれたＪＰＥＧデータはメモリカード２１６へ記録される（ステップ１２０）。
【００８２】
次に、ＪＰＥＧ書き込みデータアドレスがＲＡＷバッファ３０２内のアドレスに到達しない場合について図８を参照しながら説明する。図８はＪＰＥＧ書き込みデータアドレスがＲＡＷバッファ３０２内のアドレスに到達しない場合のメモリマップとＲＡＷデータ読み出しアドレスおよびＪＰＥＧデータ書き込みアドレスの関係を示す図である。
【００８３】
ＪＰＥＧ書き込みデータアドレスがＲＡＷバッファ３０２内のアドレスに到達しない場合とは、圧縮処理部２０９により、ＪＰＥＧデータがＪＰＥＧバッファ３０１内に収まるような圧縮率で、画像が圧縮された場合である。
【００８４】
このような場合、画像全体の圧縮が終了するまで、ＲＡＷバッファ開始アドレス１０３＜ＪＰＥＧデータ書き込みアドレス１０６の関係が成立しない（ステップＳ１０８）。また、ＲＡＷデータ読み出しアドレス１０５＜ＪＰＥＧデータ書き込みアドレス５０６の関係が成立しない（ステップＳ１１０）。すなわち、ＲＡＷバッファ侵入フラグおよび追い付き検出フラグには、「１」がセットされることはない（ステップＳ１０９およびＳ１１１）。
【００８５】
そして、画像全体の圧縮が終了すると（ステップＳ１０７）、ＪＰＥＧバッファ３０１に書き込まれたＪＰＥＧデータがメモリカード２１６に記録される（ステップＳ１２０）。
【００８６】
このように、本実施の形態によれば、ＪＰＥＧバッファ３０１とＲＡＷバッファ３０２とを兼ねるＲＡＭ２０６に対して、ＲＡＷデータにＪＰＥＧデータを上書きすることなく、ＪＰＥＧデータを書き込むことができる。
【００８７】
本実施の形態においては、ＪＰＥＧバッファ３０１のサイズが、標準チャートを撮影した場合のＪＰＥＧファイルサイズに設定されている。これにより、高周波画像に代表される特殊な画像を撮影した場合のみに、ＪＰＥＧデータの一部がＲＡＷバッファ３０２に書き込まれることとなる。すなわち、ＪＰＥＧデータ書き込みアドレスがＲＡＷバッファ内のアドレスに到達する場合が少なくなり、仮圧縮の後に本圧縮を行うなどという、圧縮を行う頻度を低下させることができ、処理速度の低下を未然に防止することができる。
【００８８】
また、本実施の形態においては、ＲＡＷデータ上にＪＰＥＧデータを上書きする場合を説明したが、ＲＡＭ２０６に保持されているＹＵＶデータ上にＪＰＥＧデータを上書きするようにしてもよい。
【００８９】
また、本実施の形態においては、ＲＡＷデータをＲＡＭ２０６から読み出して圧縮する場合を説明したが、例えばＹＵＶデータをＲＡＭ２０６から読み出し圧縮する場合にも、同様にＹＵＶバッファをＪＰＥＧバッファとして兼ねるようにすることも可能である。この場合、ＲＡＭ２０６には、ＹＵＶデータが書き込まれるＹＵＶバッファが設けられる。
【００９０】
また、本実施の形態においては、圧縮処理部２０９の圧縮方式としてＪＰＥＧ方式を用いているが、これに代えて他の圧縮方式を用いることも可能である。
【００９１】
また、本発明の目的は、以下の処理を実行することによって達成される。即ち、上述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体を、システム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）が記憶媒体に格納されたプログラムコードを読み出す処理である。
【００９２】
この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施の形態の機能を実現することになり、そのプログラムコード及び該プログラムコードを記憶した記憶媒体は本発明を構成することになる。
【００９３】
また、プログラムコードを供給するための記憶媒体としては、次のものを用いることができる。例えば、フロッピー（登録商標）ディスク、ハードディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷ、ＤＶＤ−ＲＯＭ、ＤＶＤ−ＲＡＭ、ＤＶＤ−ＲＷ、ＤＶＤ＋ＲＷ、磁気テープ、不揮発性のメモリカード、ＲＯＭ等である。または、プログラムコードをネットワークを介してダウンロードしてもよい。
【００９４】
また、コンピュータが読み出したプログラムコードを実行することにより、上記実施の形態の機能が実現される場合も本発明に含まれる。加えて、そのプログラムコードの指示に基づき、コンピュータ上で稼動しているＯＳ（オペレーティングシステム）等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれる。
【００９５】
更に、前述した実施形態の機能が以下の処理によって実現される場合も本発明に含まれる。即ち、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれる。その後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵ等が実際の処理の一部または全部を行う場合である。
【図面の簡単な説明】
【００９６】
【図１】本発明の一実施の形態に係る画像記憶装置を搭載するデジタルカメラの構成を示すブロック図である。
【図２】図１のＲＡＭ２０６のメモリマップを示す図である。
【図３】図１のデジタルカメラにおけるＪＰＥＧデータの書き込み動作の手順を示すフローチャートである。
【図４】図１のデジタルカメラにおけるＪＰＥＧデータの書き込み動作の手順を示すフローチャートである。
【図５】図１のデジタルカメラにおけるＪＰＥＧデータの書き込み動作の手順を示すフローチャートである。
【図６】ＪＰＥＧデータ書き込みアドレスがＲＡＷバッファ３０２内のアドレスに到達する場合のメモリマップとＲＡＷデータ読み出しアドレスおよびＪＰＥＧデータ書き込みアドレスの関係とを示す図である。
【図７】ＪＰＥＧデータ書き込みアドレスがＲＡＷバッファ３０２内のアドレスに到達し、かつＲＡＷデータ読み出しアドレスに追い付く場合のメモリマップとＲＡＷデータ読み出しアドレスおよびＪＰＥＧデータ書き込みアドレスの関係とを示す図である。
【図８】ＪＰＥＧ書き込みデータアドレスがＲＡＷバッファ３０２内のアドレスに到達しない場合のメモリマップとＲＡＷデータ読み出しアドレスおよびＪＰＥＧデータ書き込みアドレスの関係を示す図である。
【符号の説明】
【００９７】
２０４  メモリコントローラ
２０５  ＲＡＷデータ書き込みアドレス発生部
２０６  ＲＡＭ
２０９  圧縮処理部
２１０  システムコントローラ
２１１  ＪＰＥＧデータ書き込みアドレス発生部
２１２  ＲＡＷデータ読み出しアドレス発生部
２１３  ＲＡＷバッファ侵入検出部
２１４  追い付き検出部
【図１】
2008176481.tif 000003
【図２】
2008176481.tif 000004
【図３】
2008176481.tif 000005
【図４】
2008176481.tif 000006
【図５】
2008176481.tif 000007
【図６】
2008176481.tif 000008
【図７】
2008176481.tif 000009
【図８】
2008176481.tif 000010