(57)【要約】【課題】  撮像装置で撮影された複数の画像を記憶装置から読み込んで切り換えて出力する場合に、キャッシュメモリの利用効率を向上すると共に、レスポンス良く出力の切り替えを行えるようにすること。【解決手段】  記憶媒体から画像データを読み出して、復号処理及び所定の画像処理を行い、処理済みの画像データを出力手段に出力すると共に、記憶手段に記憶する画像処理装置において、前記記憶手段における処理済み画像に対するキャッシュ動作と解除とを制御する制御方法であって、前記記憶媒体に記憶されている画像データのフォーマットを判断し、判断したフォーマットが所定フォーマットを含む場合（Ｓ７０１）に、前記所定フォーマット以外の処理済み画像データをキャッシュしないように制御する（Ｓ７０２）とを有する。【選択図】  図５
2006065805.tif 000002
【特許請求の範囲】
【請求項１】
記憶媒体から画像データを読み出して、復号処理及び所定の画像処理を行い、処理済みの画像データを出力手段に出力すると共に、記憶手段に記憶する画像処理装置であって、
前記記憶手段における処理済み画像データに対するキャッシュ動作と解除とを制御するキャッシュ制御手段と、
前記記憶媒体に記憶されている画像データのフォーマットを判断する判断手段とを有し、
前記判断手段により判断したフォーマットが所定フォーマットを含む場合に、前記キャッシュ制御手段は前記所定フォーマット以外の処理済み画像データをキャッシュしないように制御することを特徴とする画像処理装置。
【請求項２】
記憶媒体から画像データを読み出して、復号処理及び所定の画像処理を行い、処理済みの画像データを出力手段に出力すると共に、記憶手段に記憶する画像処理装置であって、
前記記憶手段における処理済み画像データに対するキャッシュ動作と解除とを制御するキャッシュ制御手段と、
前記記憶手段に処理済みの画像データを記憶するための十分な空き容量があるかどうかを判定する判定手段と、
前記判定手段により前記記憶手段に十分な空き容量が無いと判断された場合に、前記記憶手段に記憶されている処理済み画像データのうち、所定フォーマットの画像データを処理して得た画像データがあるかどうかを判断する判断手段とを有し、
前記判断手段により所定フォーマットを処理して得た画像データがあると判断された場合に、前記キャッシュ制御手段は、前記所定フォーマット以外の画像データを優先的にキャッシュ解除することを特徴とする画像処理装置。
【請求項３】
前記所定フォーマットは複数のフォーマットを含むことを特徴とする請求項１または２に記載の画像処理装置。
【請求項４】
前記所定フォーマットは、前記画像処理装置が処理可能なフォーマットの内、処理にかかる時間が最も長いフォーマットを含むことを特徴とする請求項１乃至３のいずれかに記載の画像処理装置。
【請求項５】
前記所定フォーマットは、可逆圧縮データフォーマットを含むことを特徴とする請求項１乃至４のいずれかに記載の画像処理装置。
【請求項６】
前記所定フォーマットは、ＲＡＷデータフォーマットを含むことを特徴とする請求項１乃至５のいずれかに記載の画像処理装置。
【請求項７】
前記所定フォーマットを指定する指定手段を更に有することを特徴とする請求項１または２に記載の画像処理装置。
【請求項８】
前記判断手段により判断されたフォーマットの内、前記復号処理及び所定の画像処理に最も時間がかかるフォーマットを前記所定フォーマットと決定する決定手段を更に有することを特徴とする請求項１または２に記載の画像処理装置。
【請求項９】
フォーマットの優先順位を判断する第２の判断手段を更に有し、
前記キャッシュ制御手段は、フォーマットの優先順位が低い画像データから優先的にキャッシュ解除することを特徴とする請求項２に記載の画像処理装置。
【請求項１０】
記憶媒体から画像データを読み出して、復号処理及び所定の画像処理を行い、処理済みの画像データを出力手段に出力する画像処理装置であって、
前記画像データの読み出し及び前記復号処理及び所定の画像処理にかかる時間を計測する計時手段と、
前記処理済みの画像データ及び前記計時手段により計時された時間を記憶する記憶手段と、
前記記憶手段における処理済み画像に対するキャッシュ動作と解除とを制御するキャッシュ制御手段と、
前記記憶手段に処理済みの画像データを記憶するための十分な空き容量があるかどうかを判断する判断手段とを有し、
前記判断手段により前記記憶手段に十分な空き容量が無いと判断された場合に、前記キャッシュ制御手段は、前記記憶手段に記憶されている処理済み画像データのうち、前記計時手段により計測された時間が最も短い画像データから優先的にキャッシュ解除することを特徴とする画像処理装置。
【請求項１１】
記憶媒体から画像データを読み出して、復号処理及び所定の画像処理を行い、処理済みの画像データを出力手段に出力すると共に、記憶手段に記憶する画像処理装置において、前記記憶手段における処理済み画像に対するキャッシュ動作と解除とを制御する制御方法であって、
前記記憶媒体に記憶されている画像データのフォーマットを判断する判断工程と、
前記判断工程で判断したフォーマットが所定フォーマットを含む場合に、前記所定フォーマット以外の処理済み画像データをキャッシュしないように制御する制御工程と
を有することを特徴とする制御方法。
【請求項１２】
記憶媒体から画像データを読み出して、復号処理及び所定の画像処理を行い、処理済みの画像データを出力手段に出力すると共に、記憶手段に記憶する画像処理装置において、前記記憶手段における処理済み画像に対するキャッシュ動作と解除とを制御する制御方法であって、
前記記憶手段に処理済みの画像データを記憶するための十分な空き容量があるかどうかを判定する判定工程と、
前記判定工程で前記記憶手段に十分な空き容量が無いと判断された場合に、前記記憶手段に記憶されている処理済み画像データのうち、所定フォーマットの画像データを処理して得た画像データがあるかどうかを判断する判断工程と、
前記判断工程で所定フォーマットを処理して得た画像データがあると判断された場合に、前記所定フォーマット以外の画像データを優先的にキャッシュ解除するように制御する制御工程と
を有することを特徴とする制御方法。
【請求項１３】
前記所定フォーマットは複数のフォーマットを含むことを特徴とする請求項１１または１２に記載の制御方法。
【請求項１４】
前記所定フォーマットは、前記画像処理装置が処理可能なフォーマットの内、処理にかかる時間が最も長いフォーマットを含むことを特徴とする請求項１１乃至１３のいずれかに記載の制御方法。
【請求項１５】
前記所定フォーマットは、可逆圧縮データフォーマットを含むことを特徴とする請求項１１乃至１４のいずれかに記載の制御方法。
【請求項１６】
前記所定フォーマットは、ＲＡＷデータフォーマットを含むことを特徴とする請求項１１乃至１５のいずれかに記載の制御方法。
【請求項１７】
前記所定フォーマットを指定する指定工程を更に有することを特徴とする請求項１１または１２に記載の制御方法。
【請求項１８】
前記判断手段により判断されたフォーマットの内、前記復号処理及び所定の画像処理に最も時間がかかるフォーマットを前記所定フォーマットと決定する決定工程を更に有することを特徴とする請求項１１または１２に記載の制御方法。
【請求項１９】
フォーマットの優先順位を判断する第２の判断工程を更に有し、
前記制御工程は、フォーマットの優先順位が低い画像データから優先的にキャッシュ解除することを特徴とする請求項１２に記載の制御方法。
【請求項２０】
記憶媒体から画像データを読み出して、復号処理及び所定の画像処理を行い、処理済みの画像データを出力手段に出力する画像処理装置における、処理済み画像に対するキャッシュ動作と解除とを制御する制御方法であって、
前記画像データの読み出し及び前記復号処理及び所定の画像処理にかかる時間を計測する計時工程と、
前記処理済みの画像データ及び前記計時手段により計時された時間を記憶手段に記憶する記憶工程と、
前記記憶手段に処理済みの画像データを記憶するための十分な空き容量があるかどうかを判断する判断工程と、
前記判断工程で前記記憶手段に空き容量が無いと判断された場合に、前記記憶工程の実行に先立って、前記記憶手段に記憶されている処理済み画像データのうち、前記計時工程で計測された時間が短い画像データから優先的にキャッシュ解除するように制御する制御工程と
を有することを特徴とする制御方法。
【請求項２１】
情報処理装置が実行可能なプログラムであって、前記プログラムを実行した情報処理装置を、請求項１乃至１０のいずれかに記載の画像処理装置として機能させることを特徴とするプログラム。
【請求項２２】
請求項１１乃至２０のいずれかに記載の制御方法を実現するためのプログラムコードを有することを特徴とする情報処理装置が実行可能なプログラム。
【請求項２３】
請求項２１又は２２に記載のプログラムを記憶したことを特徴とする情報処理装置が読み取り可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置及び制御方法に関し、特に、画像処理装置において処理した画像をキャッシュする画像処理装置及び制御方法に関する。
【背景技術】
【０００２】
従来、複数の画像をユーザーの指示により切り替え表示する場合、ユーザーの指示に先行して画像データを先読みしたり、一度用いられた画像をキャッシュしたりすることで、ユーザーの指示に対するレスポンスを改善することが行われてきた。
【０００３】
後者の方法では、一度用いた画像をキャッシュメモリに保持しておき、ユーザーが表示指示した画像の画像データがキャッシュメモリに残っている場合には、キャッシュメモリから画像データを読み出す。また、キャッシュメモリが一杯になったときは、所定条件に従って、再び表示指示される可能性がより低いと判断された画像をキャッシュメモリから削除する。
【０００４】
以下、図１０及び図１１を参照して、従来のキャッシュを利用した画像切り換え処理について説明する。
【０００５】
まず、ステップＳ４０１で、ユーザーによるキーボードやマウスなどの入力装置の操作に応じて、第ｉ番目の画像を表示する指示を受け取ると、ステップＳ４０２でキャッシュメモリに第ｉ番目の画像が存在するかどうかをチェックする。ここでは、後述するステップＳ４０６において配列CACHEに格納した値を参照し、第ｉ番目の画像に対応するCACHE[i]が０かどうかを判断する。
【０００６】
０でなければ画像がキャッシュされているので、CACHE[i]に保持されたアドレスを参照してステップＳ４０３に進み、CACHE[i]のアドレスに格納されている画像データを表示し、処理を終了する。
【０００７】
一方、CACHE[i]が０ならば画像はキャッシュされていないので、ステップＳ４０４に進む。ステップＳ４０４では、第ｉ番目の画像データを不図示の記憶装置から読み出し、復号等の所定の処理を施してキャッシュメモリに格納する。そして、ステップＳ４０５で復号した画像を表示する。
【０００８】
次に、ステップＳ４０６でキャッシュメモリ内の画像データを整理する。一般に、キャッシュメモリの記憶容量は有限であるため、復号等の処理を施した全ての画像をキャッシュしておくことができないことが多い。そこで、再使用される可能性の低い画像データのキャッシュを解除することで、新たな画像データをキャッシュできるようにする。具体的な整理方法については後述する。
【０００９】
ステップＳ４０７でステップＳ４０５で表示した画像データのアドレスを配列CACHEの第ｉ番目、即ち、CACHE[i]に格納する。この配列CACHEは事前にゼロで初期化しておき、上述したステップＳ４０２でキャッシュメモリ上の画像の有無の判定にも用いる。
【００１０】
上記処理によれば、各画像データは最初に表示されるときに１回だけ復号等の処理を行えば、２回目以降に同一の画像を表示するときには、キャッシュしてある処理済みの画像を使用できるため、高速に画像表示を行うことができる。
【００１１】
次に、ステップＳ４０６で行われるキャッシュデータの整理方法について図１１のフローチャートを参照して詳細に説明する。
【００１２】
上述したように、キャッシュメモリの大きさは有限であって、キャッシュできる画像の枚数には限界がある。そこで、最大Ｍ枚の画像をキャッシュできる場合に、それ以上の枚数の画像をキャッシュしようとする時に、再表示される可能性が低い画像データのキャッシュを解除する。再使用される可能性が低い画像データを判断する方法には、従来、いくつかの方法が考えられるが、ここでは、現在表示中の第ｉ番目の画像から、画像のインデックスが近い画像が再表示される可能性が高く、離れている画像が再表示される可能性が低いものとする。
【００１３】
まず、ステップＳ６０１において、既にキャッシュされている画像の枚数がＭ枚に等しいかどうかを判断する。Ｍ枚に達していなければ、キャッシュメモリにまだ余裕があり、キャッシュされている画像を破棄する必要は無いので、そのまま処理を終了する。一方、Ｍ枚であればステップＳ６０２に進む。なお、図１０に示すように、ステップＳ４０７で新たに画像をキャッシュする直前に必ずステップＳ４０６においてキャッシュ整理を行うので、キャッシュ画像がＭ枚を超えて存在することは無い。
【００１４】
ステップＳ６０２では、変数ｘを０に初期化する。ステップＳ６０３でCACHE[ｘ]が０かどうかを判断し、０ならステップＳ６０４へ進み、ｘを１増加して、ステップＳ６０３に戻り、再度CACHE[ｘ]が０かどうかを判断する。同様にして、CACHE[ｘ]が０で無いと判断されるまで、ステップＳ６０３及びＳ６０４の処理を繰り返す。
【００１５】
ステップＳ６０３でCACHE[ｘ]が０ではないと判断されると、ステップＳ６０５に進み、変数ｙを値Ｎー１で初期化する。なお、Ｎは記憶装置上に記憶されている画像の枚数であり、ここでは１枚目の画像のアドレス保持領域をCACHE[0]としているために、ｙの初期化値をＮ−１とする。
【００１６】
ステップＳ６０６でCACHE[ｙ]が０かどうかを判断し、０ならステップＳ６０７に進む。ステップＳ６０７ではｙを１だけ減少させ、ステップＳ６０６へ戻り、再度CACHE[ｙ]が０かどうかを判断する。同様にして、CACHE[ｙ]が０で無いと判断されるまで、ステップＳ６０６及びＳ６０７の処理を繰り返す。
【００１７】
ステップＳ６０６でCACHE[ｙ]が０ではないと判断されると、ステップＳ６０８へ進む。ステップＳ６０８でｉ−ｘとｙ−ｉを比較し、前者が小さければ（ステップＳ６０８でＹＥＳ）ステップＳ６０９へ、そうでなければ（ステップＳ６０８でＮＯ）ステップＳ６１０へ進む。
【００１８】
ステップＳ６０９では変数ｘに変数ｙを代入する。ステップＳ６１０で第ｘ番目の画像をキャッシュメモリから破棄（メモリを解放）し、CACHE[ｘ]に０を代入する。
【００１９】
以上の処理により、キャッシュメモリが一杯になっているとき、現在表示中の画像から最も遠い画像を破棄することができる。
【００２０】
しかしながら、画像データは一般にデータ量が大きく、上述した従来の一般的なキャッシュアルゴリズムでは十分なレスポンスが得られないという問題があった。
【００２１】
これを改善するため、フォントデータとそれを展開したビットマップデータをキャッシュする際に、ビットマップデータを優先してキャッシュアウトすることによりキャッシュ利用効率を改善する方法が提案されている（例えば、特許文献１参照）。
【００２２】
【特許文献１】特開平８−２６３０４４号公報
【発明の開示】
【発明が解決しようとする課題】
【００２３】
しかしながら、特許文献１の方法は、フォント画像のように１個のデータが複数形態の画像形式を備える場合には有効な手法であるが、デジタルカメラ等の撮像装置で撮影された画像を扱う場合には適用できなかった。
【００２４】
本発明は上記問題点を鑑みてなされたものであり、デジタルカメラ等の撮像装置で撮影された複数の画像を記憶装置から読み込んで切り換えて出力する場合に、キャッシュメモリの利用効率を向上すると共に、レスポンス良く出力の切り替えを行うことができるようにすることを目的とする。
【課題を解決するための手段】
【００２５】
上記目的を達成するために、記憶媒体から画像データを読み出して、復号処理及び所定の画像処理を行い、処理済みの画像データを出力手段に出力すると共に、記憶手段に記憶する本発明の画像処理装置は、前記記憶手段における処理済み画像データに対するキャッシュ動作と解除とを制御するキャッシュ制御手段と、前記記憶媒体に記憶されている画像データのフォーマットを判断する判断手段とを有し、前記判断手段により判断したフォーマットが所定フォーマットを含む場合に、前記キャッシュ制御手段は前記所定フォーマット以外の処理済み画像データをキャッシュしないように制御する。
【００２６】
また、記憶媒体から画像データを読み出して、復号処理及び所定の画像処理を行い、処理済みの画像データを出力手段に出力すると共に、記憶手段に記憶する画像処理装置において、前記記憶手段における処理済み画像に対するキャッシュ動作と解除とを制御する本発明の制御方法は、前記記憶媒体に記憶されている画像データのフォーマットを判断する判断工程と、前記判断工程で判断したフォーマットが所定フォーマットを含む場合に、前記所定フォーマット以外の処理済み画像データをキャッシュしないように制御する制御工程とを有する。
【００２７】
また、別の構成によれば、記憶媒体から画像データを読み出して、復号処理及び所定の画像処理を行い、処理済みの画像データを出力手段に出力すると共に、記憶手段に記憶する、本発明の画像処理装置は、前記記憶手段における処理済み画像データに対するキャッシュ動作と解除とを制御するキャッシュ制御手段と、前記記憶手段に処理済みの画像データを記憶するための十分な空き容量があるかどうかを判定する判定手段と、前記判定手段により前記記憶手段に十分な空き容量が無いと判断された場合に、前記記憶手段に記憶されている処理済み画像データのうち、所定フォーマットの画像データを処理して得た画像データがあるかどうかを判断する判断手段とを有し、前記判断手段により所定フォーマットを処理して得た画像データがあると判断された場合に、前記キャッシュ制御手段は、前記所定フォーマット以外の画像データを優先的にキャッシュ解除する。
【００２８】
また、記憶媒体から画像データを読み出して、復号処理及び所定の画像処理を行い、処理済みの画像データを出力手段に出力すると共に、記憶手段に記憶する画像処理装置において、前記記憶手段における処理済み画像に対するキャッシュ動作と解除とを制御する本発明の制御方法は、前記記憶手段に処理済みの画像データを記憶するための十分な空き容量があるかどうかを判定する判定工程と、前記判定工程で前記記憶手段に十分な空き容量が無いと判断された場合に、前記記憶手段に記憶されている処理済み画像データのうち、所定フォーマットの画像データを処理して得た画像データがあるかどうかを判断する判断工程と、前記判断工程で所定フォーマットを処理して得た画像データがあると判断された場合に、前記所定フォーマット以外の画像データを優先的にキャッシュ解除するように制御する制御工程とを有する。
【００２９】
更に、別の構成によれば、記憶媒体から画像データを読み出して、復号処理及び所定の画像処理を行い、処理済みの画像データを出力手段に出力する本発明の画像処理装置は、前記画像データの読み出し及び前記復号処理及び所定の画像処理にかかる時間を計測する計時手段と、前記処理済みの画像データ及び前記計時手段により計時された時間を記憶する記憶手段と、前記記憶手段における処理済み画像に対するキャッシュ動作と解除とを制御するキャッシュ制御手段と、前記記憶手段に処理済みの画像データを記憶するための十分な空き容量があるかどうかを判断する判断手段とを有し、前記判断手段により前記記憶手段に十分な空き容量が無いと判断された場合に、前記キャッシュ制御手段は、前記記憶手段に記憶されている処理済み画像データのうち、前記計時手段により計測された時間が最も短い画像データから優先的にキャッシュ解除する。
【００３０】
また、記憶媒体から画像データを読み出して、復号処理及び所定の画像処理を行い、処理済みの画像データを出力手段に出力する画像処理装置における、処理済み画像に対するキャッシュ動作と解除とを制御する本発明の制御方法は、前記画像データの読み出し及び前記復号処理及び所定の画像処理にかかる時間を計測する計時工程と、前記処理済みの画像データ及び前記計時手段により計時された時間を記憶手段に記憶する記憶工程と、前記記憶手段に処理済みの画像データを記憶するための十分な空き容量があるかどうかを判断する判断工程と、前記判断工程で前記記憶手段に空き容量が無いと判断された場合に、前記記憶工程の実行に先立って、前記記憶手段に記憶されている処理済み画像データのうち、前記計時工程で計測された時間が短い画像データから優先的にキャッシュ解除するように制御する制御工程とを有する。
【発明の効果】
【００３１】
本発明によれば、撮像装置で撮影された複数の画像を記憶装置から読み込んで切り換えて出力する場合に、キャッシュメモリの利用効率を向上すると共に、レスポンス良く出力の切り替えを行うことができる。
【発明を実施するための最良の形態】
【００３２】
以下、添付図面を参照して本発明を実施するための最良の形態を詳細に説明する。
【００３３】
図１は、本は発明の実施の形態におけるコンピュータシステムなどの画像処理装置の構成を示すブロック図である。図１において、１０１はＣＰＵで、システム全体の制御を行う。１０２はキーボードで、マウスなどのポインティングデバイス（以下、マウス）１０２ａとともに入力ユニットを構成している。１０３は表示部で、ＣＲＴや液晶等で構成されている。１０４はＲＯＭ、１０５はＲＡＭで、システムの記憶装置を構成し、システムが実行するプログラムやシステムが利用するデータを記憶する。ＲＡＭ１０５は本実施の形態においてキャッシュメモリとして利用される。
【００３４】
１０６はハードディスク装置（ＨＤＤ）、１０７はフロッピディスク（登録商標）やＣＤ−ＲＯＭ、コンパクトフラッシュ（登録商標）などの着脱可能な各種外部記憶媒体を駆動するための外部記憶装置であって、デジタルスチルカメラやデジタルカメラ等の撮像装置で使用可能な外部記憶媒体を駆動し、記憶された画像データを読み出すことができる。１０８はイントラネットやインターネットなどのネットワークに接続するための通信部であり、有線、無線のいずれの方式によるものであっても、また、両方を備えていてもよい。この通信部１０８を介して入力した画像データをＨＤＤに保存したり、外部記憶装置１０７を介して外部記憶媒体に保存することも可能である。
【００３５】
図２は、表示部１０３に表示されるアプリケーションソフトウェアの画面構成の一例を示す。３１は画像表示領域、３２はページ送りボタン、３３はページ戻しボタンである。
【００３６】
ＨＤＤ１０６及び／または外部記憶装置１０７に装着された外部記憶媒体にはＮ枚の画像が格納されているものとし、そのリストを図３のリスト５に示す。図３に示す例では、１６枚の画像が格納されている場合（Ｎ＝１６）を示している。
【００３７】
画像表示領域３１には、アプリケーションソフトウェアのデフォルト値または操作者の指示に基づいて、リスト５中の第ｉ番目の画像をＨＤＤ１０６及び／または外部記憶装置１０７から読み出され、復号及び画像処理されて表示され、操作者がマウス１０２ａを用いてページ送りボタン３２を押下すると、リスト５上で第ｉ＋１番目となる次の画像を、また、ページ戻しボタン３３を押下するとリスト５上で第ｉ−１番目の画像を読み出して、ＣＰＵ１０１で復号及び画像処理して、画像表示領域３１に表示する。
【００３８】
図３に示すリスト５中、”.jpg”の拡張子がついたデータは、周知のＪＰＥＧ画像フォーマットであり、圧縮されているためにデータ量が比較的小さく、また復号及び復号後の画像データに施す画像処理に要する処理量が少ないため、画像の読み出しから復号、表示までを高速に処理できるという特徴がある。
【００３９】
“.raw”の拡張子がついたデータは、デジタルスチルカメラなどの撮像装置（以下、「デジタルスチルカメラ」と呼ぶ。）により撮影して得られたＲＡＷデータである。
【００４０】
デジタルスチルカメラは、一般的に、ＣＭＯＳ、ＣＣＤ等の撮像素子により被写体光学像を光電変換して得られた撮影画像の電気信号をデジタルデータに変換したＲＡＷデータに対して、様々な画像処理を施す。カラー画像を撮影するためには、一般的に撮像素子を例えば図４に示すような配列のカラーフィルタで覆っている。そして、カラーフィルタの各色に対応して、各画素がその色の色情報を有する信号（ＲＡＷデータ）を出力する。このようにして得られたＲＡＷデータに対し、色補間、ガンマ補正処理、ホワイトバランス調整処理などを行い、画像出力装置で出力する画像を再現する。以下、これらの処理を画像再現処理と呼ぶ。なお、図４に示すフィルタ配列はベイヤー配列と呼ばれており、１行おきに、Ｒ（赤）とＧ（緑）のフィルタの組と、ＧとＢ（青）のフィルタの組を繰り返し配置したＲ、Ｇ、Ｂ配列である。各画素は１つの色情報しか持たないため、ベイヤー配列の色補間では、他の色情報を周りの画素の色情報から補間する。
【００４１】
上述した画像再現処理はデジタルカメラ内部で実行され、処理後の画像データを出力するのが一般的であるが、画像再現処理を行わず、ＲＡＷデータを直接記録媒体に記録して、パーソナルコンピュータ等を用いて画像再現処理を行う場合がある。そのため、ＲＡＷデータを”.raw”という拡張子を用いて、ＪＰＥＧ等、他のフォーマットの画像データと区別する。ＲＡＷデータはＪＰＥＧ画像に比べ、同じ画素数であってもデータ量が大きく、画像再現処理を行う必要があるために、画像の読み出しから表示までに長時間を要するという特徴がある。
【００４２】
なお、図３に示すリスト５では名前順にファイルが並んでいるが、ファイルの並び順はこれに限るものではなく、例えば撮影日時順、データサイズ順など、任意の順序に並んでいてもよい。
【００４３】
＜第１の実施形態＞
次に、上記構成を有する画像処理装置における本第１の実施形態の処理について説明する。
【００４４】
上述したように画像を切り替えて表示するアプリケーションにおいて、操作者がボタン３２または３３を押下してから実際に画像が表示されるまでの間にはタイムラグがある。これは主としてＨＤＤ１０６及び／または外部記憶媒体からデータを読み出してＣＰＵ１０１により復号及び画像処理する時間からなる。このタイムラグを短縮して操作レスポンスを向上するために、画像データのキャッシュを行う。
【００４５】
本第１の実施形態では、キャッシュメモリであるＲＡＭ１０５を利用した画像表示方法及びキャッシュメモリの基本的な整理方法は、背景技術において図１０及び図１１を参照して説明した方法と同様であるので説明を省略するが、図１０のステップＳ４０７における画像のキャッシュ方法に特徴があるため、以下詳細に説明する。
【００４６】
リスト５中の画像が全て同様の性質を持つ場合、すなわち、
（１）  ＨＤＤ１０６及び／または外部記憶媒体上に格納される各画像のデータサイズ
（２）  ファイルを読み出して復号及び画像処理を施すのに要する時間
（３）  ＲＡＭ１０５上に格納される、復号及び画像処理済みの画像データサイズ
【００４７】
がほぼ同等である場合、キャッシュ要求に対して無条件にキャッシュを実行することで、レスポンスを上げることができる。これが従来一般に行われてきた方法であった。
一方、本実施の形態においては、リスト５に示すように、ＪＰＥＧ画像とＲＡＷ画像とが混在している場合を扱う。この場合、特に上記（２）の復号及び画像処理にかかる時間が著しく異なる。例えばＲＡＷ画像の復号及び画像処理に、ＪＰＥＧ画像の場合と比較して１０数倍の時間を要することがある。このような場合、従来のように全ての画像を均一に扱うと、キャッシュの利用効率が劣化する。具体的には、ＪＰＥＧ画像の復号処理は比較的高速に行われるため、キャッシュヒットしてもさほどのレスポンス向上は得られず、キャッシュミスした場合のペナルティが小さい。しかしながらＲＡＷ画像の復号及び画像処理は相対的に非常に低速であるため、キャッシュヒットした場合には劇的なレスポンス向上が得られ、キャッシュミスした場合のペナルティが大きいと言える。
【００４８】
以上の条件を鑑みて、本第１の実施形態においては、ＪＰＥＧ画像とＲＡＷ画像とが混在している場合には、ＪＰＥＧ画像はキャッシュを行わず、ＲＡＷ画像のみキャッシュを行う。
【００４９】
図５のフローチャートを参照して、この処理の流れを説明する。
【００５０】
ステップＳ７０１で、リスト５の中に１枚でもＲＡＷ画像があるかどうかの判断を行う。全てＪＰＥＧ画像であって、ＲＡＷ画像が一枚も含まれない場合はステップＳ７０３に進んで、第ｉ番目の画像（ＪＰＥＧ画像）をキャッシュして処理を終了する。すなわち、この場合は画像が全て均質であるので、無条件にキャッシュを行う。
【００５１】
一方、ＲＡＷ画像が一枚でも含まれる場合はステップＳ７０２に進む。ステップＳ７０２では第ｉ番目の画像がＲＡＷ画像かどうかの判断を行う。ＲＡＷ画像であればステップＳ７０３へ進み、第ｉ番目の画像（ＲＡＷ画像）をキャッシュして処理を終了し、ＪＰＥＧ画像ならばキャッシュせずに処理を終了する。
【００５２】
上記の通り、本第１の実施形態によれば、ＪＰＥＧ画像とＲＡＷ画像が混在する場合には、ＪＰＥＧ画像でキャッシュを圧迫することなく、効率よくＲＡＷ画像をキャッシュすることができると共に、ＲＡＷ画像が無い場合には、ＪＰＥＧ画像であってもキャッシュするので、トータルの操作レスポンスを向上することができる。
【００５３】
なお、上記第１の実施形態では、ＲＡＷ画像とＪＰＥＧ画像の２種類のフォーマットが混在している場合のキャッシュ動作について説明したが、本発明は２種類に限るものではなく、３種類以上のフォーマットが存在する場合に適用することも可能である。その場合にも、ＲＡＷ画像が存在する場合には、図５に示す処理手順を用いて、ＲＡＷ画像が存在するか否かによりキャッシュ動作を制御するようにしても（即ち、ＲＡＷ画像かそれ以外かにより分けて制御）、フォーマットの中で、復号及び画像処理にかかる時間が長いとされているものから高い優先順位を与え、より優先順位の高い１以上のフォーマットの画像データが存在する場合に、より優先順位の低いフォーマットの画像データをキャッシュしないように制御することで、同様の効果を得ることができる。
【００５４】
＜第２の実施形態＞
次に、上記構成を有する画像処理装置における第２の実施形態の処理について説明する。
【００５５】
本第２の実施形態では、キャッシュメモリであるＲＡＭ１０５を利用した画像表示方法は背景技術において図１０を参照して説明した方法と同様であるので説明を省略するが、図１０のステップＳ４０６で行われるキャッシュメモリの基本的な整理方法が図１１に示す方法と異なるため、以下、図６のフローチャートを参照して、本第２の実施形態におけるキャッシュメモリの整理方法について詳細に説明する。
【００５６】
なお、本第２の実施形態では、上記第１の実施形態とは異なり、図５を参照して説明したＲＡＷ画像のみをキャッシュする処理は行わず、ＲＡＷ画像、ＪＰＥＧ画像に関わらず、表示指示を受けて復号及び画像処理された画像データがキャッシュに保存される。
【００５７】
本第２の実施形態においては、再利用される可能性が低い画像データから破棄するが、ＪＰＥＧ画像とＲＡＷ画像では復号及び画像処理にかかる時間が後者のほうがはるかに長いため、ＲＡＷ画像を破棄してしまった場合のキャッシュミスの悪影響が大きい。従って、キャッシュメモリ中にＲＡＷ画像が存在する場合はなるべくこれを破棄せず、ＪＰＥＧ画像から優先的に破棄することでトータルのレスポンスを向上する。
【００５８】
また、本第２の実施形態の構成においては、現在表示中の第ｉ番目の画像から、送りボタン３２または戻りボタン３３を用いてｉ＋１またはｉ−１番目の画像への移動しかできないので、現在表示されている画像から、ＨＤＤ１０６及びまたは外部記憶媒体上での記憶順が近いほど再使用される可能性が高く、遠いほど可能性が低いといえる。
【００５９】
以下、上述した条件に基づく不要画像の破棄の流れについて、図６のフローチャートを参照して説明する。
【００６０】
まず、ステップＳ８０１において、既にキャッシュされている画像の枚数が、ＲＡＭ１０５がキャッシュできる最大枚数であるＭ枚に等しいかどうかを判断する。Ｍ枚に達していなければ、ＲＡＭ１０５にはまだ余裕があり、キャッシュされている画像を破棄する必要はないので、そのまま処理を終了する。一方、Ｍ枚であればステップＳ８０２に進む。
【００６１】
ステップＳ８０２において、リスト５中にＲＡＷ画像とＪＰＥＧ画像が混在しているかどうかの判断を行う。全てＪＰＥＧ画像またはＲＡＷ画像である場合には、画像を復号及び画像処理するためにかかる時間に大きな差が無いので、そのままステップＳ８０５に進み、混在している場合にはステップＳ８０３に進む。
【００６２】
ステップＳ８０３において、キャッシュされている画像データとしてＲＡＷ画像とＪＰＥＧ画像が混在しているかどうかの判断を行う。全てＪＰＥＧ画像またはＲＡＷ画像である場合には、画像を復号及び画像処理するためにかかる時間に大きな差が無いので、そのままステップＳ８０５に進む。そうでなければＳ８０４に進む。
【００６３】
ステップＳ８０４では、現在表示している画像から最も遠くにあるＪＰＥＧ画像の画像データを破棄し、処理を終了する。ＪＰＥＧ画像の破棄の方法は後述する。
【００６４】
また、ステップＳ８０５では、図１１を参照して説明した処理に従ってキャッシュされた画像データを破棄し、処理を終了する。
【００６５】
次に、図７に示すフローチャートに従い、図６のステップＳ８０４で行われるＪＰＥＧ画像とＲＡＷ画像がキャッシュメモリ中に混在しているときに最も遠くにあるＪＰＥＧ画像を破棄する方法を説明する。
【００６６】
ステップＳ９０１において変数ｘを０に初期化する。ステップＳ９０２で、第ｘ番目の画像がＲＡＷ画像であるか、またはCACHE[ｘ]が０であるか、を判断する。いずれかに該当する場合はステップＳ９０３へ進み、ｘを１増加して、ステップＳ９０２に戻り、ステップＳ９０２の判断が偽になるまでステップＳ９０２及びＳ９０３の処理を繰り返す。
【００６７】
ステップＳ９０２で偽であると判断されるとステップＳ９０４へ進み、変数ｙを値Ｎ−１で初期化する。なお、ＮはＨＤＤ１０６及び／または外部記憶装置１０７に装着された外部記憶媒体に記憶されている画像の枚数であり、ここでは１枚目の画像のアドレス保持領域をCACHE[0]としているために、ｙの初期化値をＮ−１とする。
【００６８】
ステップＳ９０５で、第ｙ番目の画像がＲＡＷ画像であるか、またはCACHE[ｙ]が０であるかを判断する。いずれかに該当する場合はＳ９０６へ進み、ｙを１減少させて、ステップＳ９０５に戻り、ステップＳ９０５の判断が偽になるまでステップＳ９０５及びＳ９０６の処理を繰り返す。
【００６９】
ステップＳ９０５で偽であると判断されるとステップＳ９０７へ進み、ｉ−ｘとｙ−ｉを比較する。前者が小さければ（ステップＳ９０７でＹＥＳ）ステップＳ９０８へ、そうでなければ（ステップＳ９０７でＮＯ）ステップＳ９０９へ進む。
【００７０】
ステップＳ９０８で変数ｘに変数ｙを代入する。ステップＳ９０９で第ｘ番目の画像をキャッシュから破棄（メモリを解放）し、CACHE[x]に値０を代入する。
【００７１】
以上の処理により、キャッシュメモリが一杯になっているとき、キャッシュされた画像データの中にＪＰＥＧ画像とＲＡＷ画像が混在する場合には、ＪＰＥＧ画像から画像データを優先的に破棄すると共に、混在していない場合には、現在表示中の画像から最も遠い画像を破棄するので、トータルの操作レスポンスを向上することができる。
【００７２】
なお、上記第１及び第２の実施形態では、ＪＰＥＧ画像とＲＡＷ画像が混在している場合について説明したが、本発明はこれらのフォーマットの画像データに限るものではなく、可逆圧縮データ、非可逆圧縮データなどのように、様々なフォーマットの画像データに適用することが可能である。その場合には、画像処理装置が処理可能なデータフォーマットの内、最も処理に時間がかかるフォーマットの画像データを上記第１及び第２の実施形態におけるＲＡＷ画像に読み替えて処理を行えばよい。
【００７３】
また、ＨＤＤ１０６または外部記憶媒体に記憶された画像データのフォーマットを判断し、そのフォーマットの内、画像の読み出し、復号及び画像処理に、より時間がかかるフォーマットを、予め与えられた情報に基づいてＣＰＵ１０１が判断するか、または操作者がフォーマットを選択し、そのフォーマットの画像データ以外の画像データのキャッシュを行わないように制御することより、同様の効果を得ることができる。
【００７４】
また、上記第１及び第２の実施形態において、ＲＡＷ画像をデフォルトのフォーマットとし、必要に応じて、プルダウンメニューなどから、キャッシュを行う別のフォーマットを操作者が選択できるように構成することも可能である。
【００７５】
更に、上記第２の実施形態では、ＲＡＷ画像とＪＰＥＧ画像の２種類のフォーマットが混在している場合のキャッシュメモリの整理処理について説明したが、本発明は２種類に限るものではなく、３種類以上のフォーマットが存在する場合に適用することも可能である。その場合にも、ＲＡＷ画像が存在する場合には、図６と同様の処理手順を用いて、ＲＡＷ画像が存在するか否かによりキャッシュからの画像データの破棄動作を制御するようにしても（即ち、ＲＡＷ画像かそれ以外かにより分けて制御）、フォーマットの中で、復号及び画像処理にかかる時間が長いものから高い優先順位を与え、より優先順位の低いフォーマットの画像データから先に破棄するように制御することで、同様の効果を得ることができる。
【００７６】
＜第３の実施形態＞
次に、上記構成を有する画像処理装置における第３の実施形態の処理について説明する。
【００７７】
本第３の実施形態では、キャッシュメモリであるＲＡＭ１０５を利用した画像表示方法は背景技術において図１０を参照して説明した方法と同様であるので説明を省略するが、図１０のステップＳ４０６で行われるキャッシュメモリの基本的な整理方法が図１１に示す方法と異なるため、以下、図８のフローチャートを参照して、本第３の実施形態におけるキャッシュメモリの整理方法について詳細に説明する。
【００７８】
なお、本第３の実施形態では、上記第１の実施形態とは異なり、図５を参照して説明したＲＡＷ画像のみをキャッシュする処理は行わず、ＲＡＷ画像、ＪＰＥＧ画像に関わらず、表示指示を受けて復号及び画像処理された画像データがキャッシュに保存される。更に、復号及び画像処理にかかった時間を計測し、保存しておく。この計時処理については、図９を参照して後述する。
【００７９】
本第３の実施形態においては、キャッシュメモリ内の画像のうち、最も復号及び画像処理にかかる時間の短いものをキャッシュメモリから破棄する。復号及び画像処理にかかる時間の短い画像は、再度ＨＤＤ１０６から読み出してＣＰＵ１０１で復号及び画像処理を行っても、表示までのレスポンスに与える悪影響が比較的小さいからである。特に、本実施形態においては、時間の実測結果による判断を行うため、フォーマットのみでなく、例えば、画素数の差にも対応可能な点が特徴である。
【００８０】
以下、上述した条件に基づく不要画像の破棄の流れについて、図８のフローチャートを参照して説明する。
【００８１】
まず、ステップＳ１００１において、既にキャッシュされている画像の枚数が、ＲＡＭ１０５がキャッシュできる最大枚数であるＭ枚に等しいかどうかを判断する。Ｍ枚に達していなければ、ＲＡＭ１０５にはまだ余裕があり、キャッシュされている画像を破棄する必要はないので、そのまま処理を終了する。一方、Ｍ枚であればステップＳ１００２に進む。
【００８２】
ステップＳ１００２において変数ｋを０、変数ｘを０、変数Ｔを十分大きな値に初期化する。ステップＳ１００３でCACHE[k]が０かどうかを判断する。０ならステップＳ１００６へ、そうでなければステップＳ１００４へ進む。
【００８３】
ステップＳ１００４ではＴとTIME[k]を比較する。図９を参照して後述するが、TIME[k]には第ｋ番目の画像を復号及び画像処理するのに要した所要時間が格納されている。Ｔ＞TIME[k]でなければステップＳ１００６へ進み、Ｔ＞TIME[k]ならステップＳ１００５でTIME[ｋ]を変数ｘにｋを代入し、ステップＳ１００６へ進む。
【００８４】
ステップＳ１００６ではｋを１増加させ、ステップＳ１００７に進む。ステップＳ１００７ではｋとNを比較し、等しくなければＳ１００３に戻って、次のｋの値について、ステップＳ１００３〜Ｓ１００７の処理を繰り返す。
【００８５】
キャッシュされた全ての画像について判断が終了するとｋ＝ＮとなってステップＳ１００７でＹＥＳとなり、ステップＳ１００８に進んで第ｘ番目の画像をキャッシュから破棄（メモリを解放）し、CACHE[x]に値０を代入する。
【００８６】
以上の処理により、キャッシュメモリが一杯になっているとき、最も復号及び画像処理にかかる時間の短い画像データを破棄することができる。
【００８７】
次に、図９を用いて、復号及び画像処理にかかる時間を算出する方法を説明する。
【００８８】
ステップＳ１１０１で、画像の復号及び画像処理に先立って、変数ｔに現在時刻を格納する。ステップＳ１１０２で、画像の復号及び画像処理が終了するのを待ち、復号及び画像処理が終了すると、ステップＳ１１０３で、現在時刻を再び取得し、変数ｔの値との差をとる。これが画像の復号及び画像処理に要した処理時間であるので、TIME[ｋ]に記憶する。ステップＳ４０４においてこの処理を行うことにより、画像の復号時間を配列TIMEに格納し、上記図８に示す処理でキャッシュメモリから破棄する画像データを特定するのに用いることができる。
【００８９】
上記の通り、本第３の実施形態によれば、画像の復号及び画像処理時にその所要時間を計測して記憶しておき、キャッシュメモリが一杯になったとき、復号及び画像処理にかかる時間の短い画像データをキャッシュメモリから破棄するので、トータルの操作レスポンスを向上することができる。
【００９０】
＜他の実施形態＞
上記実施の形態では、キャッシュの制限として、キャッシュ内の画像枚数を最大Ｎ枚までに制限することにしたが、本発明はこれに限られるものではない。例えばキャッシュ画像データ量に制限を設けるようにしてもよいし、事前に制限を設けるのでなく、実行時にＲＡＭ１０５の空き容量を見ながら動的にキャッシュ画像枚数を変更するようにしてもよい。
【００９１】
また、上記第１及び第２の実施形態では、現在表示中の画像から、ＨＤＤ１０６及び／または外部記憶媒体上の画像データの記憶順が距離が近いほど重要で、遠いほど重要でなくなるとしたが、本発明はこれに限るものではない。例えば復号及び画像処理した時刻が遅いほど重要で早いほど重要でなくなるとしてもよいし、最後に表示された時刻が遅いほど重要で早いほど重要でなくなるとしてもよい。
【００９２】
また、本実施の形態では、画像表示そのものを目的とした、画像の切り換え処理について説明したが、本発明は、画像表示そのものを目的としていなくてもよい。例えば、アプリケーションを用いてユーザーが好みの画像となるように任意の画像処理を行う場合に付随して行われる画像の表示切り替え処理など、画像表示の切り替えを伴う処理に適用可能であることは言うまでもない。
【００９３】
更に、本実施の形態では、画像を表示部に表示する場合について説明したが、本発明は画像を表示する場合に限るものではなく、例えば、画像処理装置に通信部１０８や不図示のコネクタを介して接続されたプリンタにより画像を印刷する時に、印刷用に処理した画像データをキャッシュしておく場合にも適用することができる。
【００９４】
また、本実施の形態では、画像処理装置としてコンピュータシステムを想定したが、本発明はこれに限られるものではなく、例えば、デジタルスチルカメラやデジタルビデオカメラなどの撮像装置や、カメラつき携帯端末、フォトストレージ機器など、異なるフォーマットで記録された画像データを記憶媒体から読み出して復号及び必要な画像処理をし、表示装置に表示することができる装置であれば本発明を適用することが可能である。
【００９５】
また、本発明の目的は、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体（または記録媒体）を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ（またはＣＰＵやＭＰＵ）が記憶媒体に格納されたプログラムコードを読み出し実行することによっても、達成されることは言うまでもない。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているオペレーティングシステム（ＯＳ）などが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。ここでプログラムコードを記憶する記憶媒体としては、例えば、フレキシブルディスク、ハードディスク、ＲＯＭ、ＲＡＭ、磁気テープ、不揮発性のメモリカード、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＤＶＤ、光ディスク、光磁気ディスク、ＭＯなどが考えられる。また、ＬＡＮ（ローカル・エリア・ネットワーク）やＷＡＮ（ワイド・エリア・ネットワーク）などのコンピュータネットワークを、プログラムコードを供給するために用いることができる。
【００９６】
さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張カードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた後、そのプログラムコードの指示に基づき、その機能拡張カードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【図面の簡単な説明】
【００９７】
【図１】本発明の実施の形態における画像処理装置の構成を示すブロック図である。
【図２】画像処理装置の画面構成例を説明する図である。
【図３】処理対象の画像リストの例を説明する図である。
【図４】カラーフィルタの配置例を示す図である。
【図５】本発明の第１の実施形態における画像をキャッシュする処理の流れを説明するフローチャートである。
【図６】本発明の第２の実施形態におけるキャッシュメモリの整理方法を説明するフローチャートである。
【図７】本発明の第２の実施形態におけるキャッシュメモリの整理方法を説明するフローチャートである。
【図８】本発明の第３の実施形態におけるキャッシュメモリの整理方法を説明するフローチャートである。
【図９】本発明の第３の実施形態における画像の復号及び画像処理にかかる計時処理の流れを説明するフローチャートである。
【図１０】従来の画像処理全体の流れを説明するフローチャートである。
【図１１】従来のキャッシュメモリの整理方法を説明するフローチャートである。
【符号の説明】
【００９８】
１０１  ＣＰＵ
１０２  キーボード
１０２ａ  ポインティングデバイス
１０３  表示部
１０４  ＲＯＭ
１０５  ＲＡＭ
１０６  ハードディスク
１０７  外部記憶装置
１０８  通信部
【図１】
2006065805.tif 000003
【図２】
2006065805.tif 000004
【図３】
2006065805.tif 000005
【図４】
2006065805.tif 000006
【図５】
2006065805.tif 000007
【図６】
2006065805.tif 000008
【図７】
2006065805.tif 000009
【図８】
2006065805.tif 000010
【図９】
2006065805.tif 000011
【図１０】
2006065805.tif 000012
【図１１】
2006065805.tif 000013