(57)【要約】【課題】  本願発明では、撮像装置の画素数の増加に伴ったＲＡＷ画像データの現像処理の高速化するとともに画素数の増加に伴う画像処理の演算負荷の軽減を目的とする。【解決手段】  撮像素子によって被写体からの光を電気信号に変換した画像信号をデジタル化して非圧縮または可逆圧縮した画像データを入力する入力手段と、ユーザが前記画像データに対して画像処理を行うためのパラメータを入力する画像処理パラメータ入力手段と、前記画像データに対して画像処理パラメータ入力手段によって入力された前記画像処理パラメータに応じた輝度系処理あるいは色系処理を行う画像処理手段と、前記輝度系処理と前記色系処理ごとの中間結果を記憶する記憶手段と、を有することを特徴とする。【選択図】  図１
2005341551.tif 000002
【特許請求の範囲】
【請求項１】
撮像素子によって被写体からの光を電気信号に変換した画像信号をデジタル化して非圧縮または可逆圧縮した画像データを入力する入力手段と、
ユーザが前記画像データに対して画像処理を行うためのパラメータを入力する画像処理パラメータ入力手段と、
前記画像データに対して画像処理パラメータ入力手段によって入力された前記画像処理パラメータに応じた輝度系処理あるいは色系処理を行う画像処理手段と、
前記輝度系処理と前記色系処理ごとの中間結果を記憶する記憶手段と、
を有することを特徴とする画像処理装置。
【請求項２】
前記画像処理パラメータ入力手段によって入力されたパラメータの入力履歴情報を保持する画像処理パラメータ入力履歴記憶手段と、
前記画像処理パラメータ入力履歴記憶手段に記憶された前回の入力履歴情報と、現在の画像処理パラメータを比較することによって前記記憶手段にキャッシュとして前記画像処理の中間結果を記憶するか否か制御するキャッシュ制御手段と、
を有することを特徴とする請求項１の画像処理装置。
【請求項３】
撮像素子によって被写体からの光を電気信号に変換した画像信号をデジタル化して非圧縮または可逆圧縮した画像データを入力する入力手段と、
ユーザが前記画像データに対して画像処理を行うためのパラメータを入力する画像処理パラメータ入力手段と、
前記画像データに対して前記パラメータ入力手段によって入力された画像処理パラメータに応じた画像処理を行う画像処理手段と、
画像処理結果および画像処理中間結果を記憶するための記憶手段と、
前記画像処理の中間結果を次回の画像処理に備えて記憶手段にキャッシュとして記憶するキャッシュ制御手段と、
前記画像処理パラメータ入力手段によって入力されたパラメータの入力履歴情報を保持する画像処理パラメータ入力履歴記憶手段と、
前記画像処理パラメータ入力履歴記憶手段に記憶された前回の入力履歴情報と、現在の画像処理パラメータを比較することによって前記記憶手段にキャッシュとして前記画像処理の中間結果を記憶するか否か制御するキャッシュ制御手段と、
を有することを特徴とする画像処理装置。
【請求項４】
前記キャッシュ制御手段は、前回の画像処理時に用いられた画像処理パラメータとは値が異なる画像処理パラメータに対応する画像処理の処理結果を直接あるいは、間接的に用いる画像処理の中間結果をキャッシュとして無効にすることを特徴とする請求項１に記載の画像処理装置。
【請求項５】
前記キャッシュ制御手段は、前記画像処理パラメータ入力履歴記憶手段が保持する画像処理パラメータ入力履歴情報をもとに、各々の画像処理手段による中間結果をキャッシュとして記憶するか否かを制御することを特徴とした請求項３乃至４に記載の画像処理装置。
【請求項６】
前記キャッシュ制御手段は、前記画像処理パラメータ入力手段によって現在入力されたパラメータに基づいて行う画像処理の前段に位置する画像処理の処理結果を優先的にキャッシュとして記憶手段に記憶することを特徴とする請求項３乃至５に記載の画像処理装置。
【請求項７】
前記画像処理手段は、少なくとも輝度系処理と色系処理とを含み、
さらに、前記輝度系処理と前記色系処理の処理結果を合成する合成変換処理手段を有し、
前記キャッシュ制御手段は、前記画像処理パラメータ入力手段によって現在入力されたパラメータに基づいて前記輝度系処理あるいは色系処理のいずれか一方を行う場合に、他方の処理については、前記合成変換手段によって合成される直前の中間結果を優先的にキャッシュとして記憶手段に記憶することを特徴とする請求項３乃至６に記載の画像処理装置。
【請求項８】
前記キャッシュ制御手段は、前記画像処理パラメータ入力手段によって現在入力されたパラメータに基づいて前記輝度系処理あるいは色系処理のいずれか一方の前段に位置する画像処理手段の中間結果と、他方の処理については、前記合成変換手段によって処理結果を合成する直前の中間結果を優先的にキャッシュとして記憶手段に記憶することを特徴とする請求項７に記載の画像処理装置。
【請求項９】
撮像素子によって被写体からの光を電気信号に変換した画像信号をデジタル化して非圧縮または可逆圧縮した画像データを入力する入力ステップと、
ユーザが前記画像データに対して画像処理を行うためのパラメータを入力する画像処理パラメータ入力ステップと、
前記画像データに対して画像処理パラメータ入力ステップにおいて入力された前記画像処理パラメータに応じた輝度系処理あるいは色系処理を行う画像処理ステップと、
前記輝度系処理と前記色系処理ごとの中間結果を記憶する記憶ステップと、
を有することを特徴とする画像処理方法。
【請求項１０】
前記画像処理パラメータ入力ステップにおいて入力されたパラメータの入力履歴情報を保持する画像処理パラメータ入力履歴記憶ステップと、
前記画像処理パラメータ入力履歴記憶ステップにおいて記憶された前回の入力履歴情報と、現在の画像処理パラメータを比較することによってキャッシュとして前記画像処理の中間結果を記憶するか否か決定するキャッシュ制御ステップと、
を有することを特徴とする請求項９の画像処理方法。
【請求項１１】
撮像素子によって被写体からの光を電気信号に変換した画像信号をデジタル化して非圧縮または可逆圧縮した画像データを入力する入力ステップと、
ユーザが前記画像データに対して画像処理を行うためのパラメータを入力する画像処理パラメータ入力ステップと、
前記画像データに対して前記パラメータ入力ステップにおいて入力された画像処理パラメータに応じた画像処理を行う画像処理ステップと、
画像処理結果および画像処理中間結果を記憶するための記憶ステップと、
前記画像処理の中間結果を次回の画像処理に備えて記憶手段にキャッシュとして記憶するキャッシュ制御ステップと、
前記画像処理パラメータ入力ステップにおいて入力されたパラメータの入力履歴情報を保持する画像処理パラメータ入力履歴記憶ステップと、
前記画像処理パラメータ入力履歴記憶ステップにおいて記憶された前回の入力履歴情報と、現在の画像処理パラメータを比較することによってキャッシュとして前記画像処理の中間結果を記憶するか否かを決定するキャッシュ制御ステップと、
を有することを特徴とした画像処理方法。
【請求項１２】
前記キャッシュ制御ステップは、前回の画像処理時に用いられた画像処理パラメータとは値が異なる画像処理パラメータに対応する画像処理の処理結果を直接あるいは間接的に用いる画像処理の中間結果をキャッシュとして無効にすることを特徴とする請求項１１に記載の画像処理方法。
【請求項１３】
前記キャッシュ制御ステップは、前記画像処理パラメータ入力履歴記憶ステップにおいて記憶された画像処理パラメータ入力履歴情報をもとに、各々の画像処理手段による中間結果をキャッシュとして記憶するか否かを決定することを特徴とする請求項１１乃至１２に記載の画像処理方法。
【請求項１４】
前記キャッシュ制御ステップは、前記画像処理パラメータ入力ステップにおいて現在入力されたパラメータに基づいて行う画像処理の前段に位置する画像処理の処理結果を優先的にキャッシュとして記憶することを特徴とした請求項１１乃至１３に記載の画像処理装置。
【請求項１５】
前記画像処理ステップは、少なくとも輝度系処理と色系処理を含み、
さらに、前記輝度系処理と前記色系処理の処理結果を合成する合成変換処理ステップを有し、
前記キャッシュ制御ステップは、前記画像処理パラメータ入力ステップにおいて入力された現在の画像処理パラメータに基づいて前記輝度系処理あるいは色系処理のいずれか一方を行う場合に、他方の処理については、前記合成変換ステップによって合成される前の中間結果を優先的にキャッシュとして記憶することを特徴とした請求項１１乃至１４に記載の画像処理方法。
【請求項１６】
前記キャッシュ制御ステップは、前記画像処理パラメータ入力ステップにおいて入力された現在のパラメータに基づいて前記輝度系処理ステップあるいは色系処理ステップのいずれか一方の前段に位置する画像処理の中間結果と、他方の処理については、前記合成変換ステップにおいて処理結果を合成する直前の中間結果を優先的にキャッシュとして記憶することを特徴とした請求項７に記載の画像処理方法。
【請求項１７】
請求項９に記載の画像処理方法をコンピュータに実現させるためのコンピュータ制御プログラム。
【請求項１８】
請求項１１に記載の画像処理方法をコンピュータに実現させるためのコンピュータ制御プログラム。
【請求項１９】
請求項１７に記載のコンピュータ制御プログラムを格納することを特徴とするコンピュータ可読記憶媒体。
【請求項２０】
請求項１７に記載のコンピュータ制御プログラムを格納することを特徴とするコンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、現在一般的に特にデジタルカメラなどの画像入力装置により撮影された画像に対して画像処理（画像編集）を例えば、パーソナルコンピュータ（以下、ＰＣとする）上のアプリケーションソフト等で高速に行うためのキャッシュメモリ処理に関するものである。
【背景技術】
【０００２】
現在一般的には、デジタルカメラで撮影された画像は、パーソナルコンピュータにインストールされた画像閲覧ソフトウェアにより閲覧され、また画像編集ソフトウェアによって編集を行うことができる。
【０００３】
デジタルカメラにより撮影された画像を閲覧できるとともに、ＲＡＷ画像データ（デジタルカメラによる撮影時に、ＣＣＤ、ＣＭＯＳ等の撮像素子による光電変換後Ａ／Ｄ変換された画像データに可逆圧縮等を施し、撮影情報の損失がほぼない状態で保存されたデータ）で撮影後保存された画像（以下、ＲＡＷ画像と呼ぶ）に対して、ＲＡＷ画像に関連付けられて記録されている属性情報やデジタルカメラ本体の特性やユーザが自由に画像処理のためのパラメータ（以下、現像パラメータという）を入力し、ユーザ好みの画質（解像度、シャープネス、色相、ホワイトバランスなど）にパラメータ調整された画像処理と圧縮等の処理を行うことで、汎用画像データ（ＪＰＥＧ／ＢＭＰ／ＴＩＦＦ形式など）での保存が可能である（以下、ＲＡＷ画像現像処理と呼ぶこととする）。
【０００４】
例えば、ＲＡＷ画像データに、ホワイトバランス調整／色効果モードの変更／コントラスト調整／色の濃さ調整／シャープネスの調整の項目に関して、ユーザが好みの画像処理パラメータ値を入力し、現像処理を行い、結果を表示装置に表示し、ＪＰＥＧ等の汎用ファイルで保存することが可能である（例えば、特許文献１参照）。
【０００５】
しかし、ＲＡＷ画像の現像処理を行う際には、任意のＲＡＷ現像パラメータ値を入力しても、入力したパラメータの適用された具合は、現像処理に反映された結果を見てみなければ分からない。従って、一回の入力でユーザが満足する処理結果が得ることは困難であり、通常、現像結果をディスプレイ等の表示装置で確認しながら何度もパラメータを入力し直して調整し、試行錯誤を繰り返して、満足するパラメータ値が決定される。
【特許文献１】特開２００４−０８００９９
【発明の開示】
【発明が解決しようとする課題】
【０００６】
このように、ユーザが入力したパラメータによる現像処理を構成する各処理はＲＡＷ画像データの全画素（原則として、撮像素子の有効画素数となる）に対して行われる。そのため、ユーザが入力した現像パラメータによってＲＡＷ画像データに現像処理を施し、再生画像を確認し、再度、同じＲＡＷ画像データに対して画質調整のための現像パラメータを入力し、また現像処理結果を再生するという処理の繰り返しで膨大な時間がかかるという問題があった。本願発明では、撮像画像処理の高画質化のために複雑化してきた画像処理に対するユーザのニーズに応えるとともに、デジタルカメラ等の撮像装置の画像を構成する画素数の増加に伴った再生表示処理および画像処理（ＲＡＷ画像データの現像処理）の高速化するとともに画素数の増加に伴う画像処理の演算負荷の軽減を目的とする。
【課題を解決するための手段】
【０００７】
上記の目的を達成するための本発明による画像処理装置は以下の構成を備える。すなわち、撮像素子によって被写体からの光を電気信号に変換した画像信号をデジタル化して非圧縮または可逆圧縮した画像データを入力する入力手段と、
ユーザが前記画像データに対して画像処理を行うためのパラメータを入力する画像処理パラメータ入力手段と、
前記画像データに対して画像処理パラメータ入力手段によって入力された前記画像処理パラメータに応じた輝度系処理あるいは色系処理を行う画像処理手段と、
前記輝度系処理と前記色系処理ごとの中間結果を記憶する記憶手段と、を有する。
【０００８】
また、上記の目的を達成するための本発明による画像処理装置は、撮像素子によって被写体からの光を電気信号に変換した画像信号をデジタル化して非圧縮または可逆圧縮した画像データを入力する入力手段と、
ユーザが前記画像データに対して画像処理を行うためのパラメータを入力する画像処理パラメータ入力手段と、
前記画像データに対して前記パラメータ入力手段によって入力された画像処理パラメータに応じた画像処理を行う画像処理手段と、
画像処理結果および画像処理中間結果を記憶するための記憶手段と、
前記画像処理の中間結果を次回の画像処理に備えて記憶手段にキャッシュとして記憶するキャッシュ制御手段と、
前記画像処理パラメータ入力手段によって入力されたパラメータの入力履歴情報を保持する画像処理パラメータ入力履歴記憶手段と、
前記画像処理パラメータ入力履歴記憶手段に記憶された前回の入力履歴情報と、現在の画像処理パラメータを比較することによって前記記憶手段にキャッシュとして前記画像処理の中間結果を記憶するか否か制御するキャッシュ制御手段と、を有する。
【０００９】
更に、本発明によれば、撮像素子によって被写体からの光を電気信号に変換した画像信号をデジタル化して非圧縮または可逆圧縮した画像データを入力する入力ステップと、
ユーザが前記画像データに対して画像処理を行うためのパラメータを入力する画像処理パラメータ入力ステップと、
前記画像データに対して画像処理パラメータ入力ステップにおいて入力された前記画像処理パラメータに応じた輝度系処理あるいは色系処理を行う画像処理ステップと、
前記輝度系処理と前記色系処理ごとの中間結果を記憶する記憶ステップと、
を有することを特徴とする画像処理方法が提供される。
【００１０】
更に、本発明によれば、撮像素子によって被写体からの光を電気信号に変換した画像信号をデジタル化して非圧縮または可逆圧縮した画像データを入力する入力ステップと、
ユーザが前記画像データに対して画像処理を行うためのパラメータを入力する画像処理パラメータ入力ステップと、
前記画像データに対して前記パラメータ入力ステップにおいて入力された画像処理パラメータに応じた画像処理を行う画像処理ステップと、
画像処理結果および画像処理中間結果を記憶するための記憶ステップと、
前記画像処理の中間結果を次回の画像処理に備えて記憶手段にキャッシュとして記憶するキャッシュ制御ステップと、
前記画像処理パラメータ入力ステップにおいて入力されたパラメータの入力履歴情報を保持する画像処理パラメータ入力履歴記憶ステップと、
前記画像処理パラメータ入力履歴記憶ステップにおいて記憶された前回の入力履歴情報と、現在の画像処理パラメータを比較することによってキャッシュとして前記画像処理の中間結果を記憶するか否かを決定するキャッシュ制御ステップと、を有することを特徴とした画像処理方法が提供される。
【発明の効果】
【００１１】
本願発明によれば、高速に現像パラメータを反映した現像処理に要する時間を短縮し、処理結果を高速に表示することが可能となり、ＲＡＷ画像のパラメータをユーザの好みで調整する際のユーザビリティを向上させることができる。
【００１２】
また、ＲＡＷ画像データの現像処理において、現像処理を高速化するとともに、さらに、メモリの効率的な利用によって使用するメモリ容量を削減して、現像処理による演算負荷を削減することが出来る。
【発明を実施するための最良の形態】
【００１３】
（第１の実施形態）
図１は、本発明によるＲＡＷ画像データの現像処理シーケンスの例を示すデータフローおよび処理ブロック図である。このＲＡＷ画像データの画像処理（現像処理シーケンス）を実行する画像処理手段は、パーソナルコンピュータ（以下、ＰＣとする）やデジタルカメラのＣＰＵ演算装置等である。
【００１４】
１０１は、ＲＡＷ画像オリジナルデータである。ＲＡＷ画像データによっては、可逆圧縮されたデータもあるが、本説明においては、圧縮されていないものとして説明を進める。また、本説明においては、Ｒ，Ｇ１，Ｇ２，Ｂのベイヤー配列のＲＡＷ画像を用いるものとする。
【００１５】
１０２は、補間処理であり、ベイヤー配列のＲＡＷデータから各コンポーネントの欠損画素について補間処理を行いＲＡＷ画像と（ほぼ）同じ縦横サイズのＲ，Ｇ，Ｂの３プレーンデータを生成するものである。１０２においては、Ｇ１，Ｇ２各プレーンの平均値をＧプレーンとして出力するものとする。
【００１６】
１０３は、ホワイトバランス調整処理であり、撮像時の条件を用いて図示されない処理手順より算出されるＷＢ係数値、あるいはユーザが入力したホワイトバランス調整値１０４により算出済のＷＢ係数値をＲ，Ｇ，Ｂデータに掛け算することにより、被写体中の白い部分のＲ，Ｇ，Ｂ値が同じ値（＝白色）になるように白バランスを調整するものである。
【００１７】
１０４は、ホワイトバランス調整値で、ユーザインタフェースを介してユーザが入力する画像処理パラメータの１つで、一般に、太陽光、くもり等の光源色温度より設定する。
【００１８】
１０５は、ＷＢ調整されたＲＧＢデータをＹＣｒＣｂデータへと変換する処理である。本処理シーケンスでは、Ｙ（輝度データ）とＣｒＣｂの色（色差）データのコンポーネントに変換し、色分離した状態で処理を行う。後に色分離された各コンポーネントは再度ＲＧＢデータに戻す。
【００１９】
なお、本実施例では、ＹＣｒＣｂで説明したが、輝度と色に分離するデータ形式であれば、Ｌ＊ａ＊Ｂ＊やＹＵＶ等の他のデータ形式であっても良い。
【００２０】
１０６は、輝度系キャッシュデータＹＣａｓｈで、ＲＧＢ→ＹＣｒＣｂ変換処理１０５の出力結果のうち、Ｙ成分をメモリ上にキャッシュとして保持するためのキャッシュデータである。
【００２１】
１０７は、色系キャッシュデータＣｒＣｂＣａｓｈで、ＲＧＢ→ＹＣｒＣｂ変換処理１０５の出力結果のうち、ＣｒＣｂ成分をメモリ上にキャッシュとして保持するためのキャッシュデータである。
【００２２】
１０８は色系処理であり、ＣｒＣｂ成分に対して画質が良好となるよう色処理するとともに、ユーザが任意に入力した画像処理パラメータである色の濃さ調整値１０９に従って、色の濃さを調整するための処理を行う。
【００２３】
色の濃さ調整値１０９は、画像処理パラメータ入力手段としてのユーザインタフェースを介してユーザにより入力されたＲＡＷ画像データに対して画像処理を行うためのパラメータであり、例えば１〜１０の１０段階レベル設定され、１をもっとも彩度が低く、１０をもっとも彩度が高いパラメータとして扱う。
【００２４】
１１０は、色系キャッシュデータＣｒＣｂ２Ｃａｓｈであり、色系処理１０７の出力Ｃｒ２，Ｃｂ２成分をメモリ上にキャッシュとして保持するものである。
【００２５】
１１１は輝度系処理であり、ディスプレイで表示した際に好適となるようなガンマ補正処理、ノイズ除去、ＡＰＣ処理（アパーチャ処理）を行う。
【００２６】
ここでは、特にＡＰＣ処理について説明する。ユーザが入力した輝度系調整値１１２であるシャープネス調整値を参照してＡＰＣ処理を行う。一般に画像としては、被写体エッジがシャープであるほうが高画質と感じられるため、通常のＲＡＷ現像処理においては、ＡＰＣ処理で、輝度信号を加算することによってエッジの強調処理を行う。ただし、エッジを強調するほど、画像中のノイズが目立ってしまうため、適度なエッジ強調にとどめる必要がある。１１２のシャープネス調整値は、ＲＡＷ画像データに対して画像処理を行うためにユーザが入力した現像処理（画像処理）パラメータの１つであり、調整値のレベルは、例えば、１〜１０段階とし、１０を最もエッジを強調することとし、ユーザが現像処理結果を見て確認しながら、適度と思われるシャープネス調整値を試行錯誤の結果、決定することができる。
【００２７】
１１３は輝度系処理のキャッシュデータＹ２Ｃａｓｈであり、輝度系処理出力結果として得られるＹ２成分をメモリ上にキャッシュとして保持するものである。
【００２８】
１１４は、ＹＣｒＣｂ→ＲＧＢ変換処理であり、ＹＣｒＣｂ成分の画像データを変換して、ＲＧＢ成分の画像データを出力するものである。
【００２９】
１１５は、ＲＧＢ（色系データ＋輝度系データが合成されているデータであるとする）キャッシュデータＲＧＢＣａｓｈであり、ＹＣｒＣｂ→ＲＧＢ変換処理１１５の出力結果として得られるＲＧＢデータをキャッシュとしてメモリ上に保持するものである。
【００３０】
１１６は、トーンカーブ調整処理であり、ユーザが入力したトーンカーブ調整値１１７をパラメータとして、Ｒ，Ｇ，Ｂそれぞれの成分に対して、トーンカーブ調整処理を行うものである。
【００３１】
１１８は、データ変換処理であり、トーンカーブ調整処理１１６から得られるＲ，Ｇ，Ｂ成分の画像データに対して、現像処理シーケンスが稼動する環境において結果を表示するのに適したデータに変換するものである。
【００３２】
１１９では、表示用データを表示手段に表示する。
【００３３】
図２は、第１の実施形態による画像処理装置基本構成を示すものである。
【００３４】
２０１は、表示手段としての、ＲＡＷ画像を現像処理した結果の画像の表示や、ユーザがＲＡＷ現像を行うためのユーザインタフェースを表示するためのディスプレイである。
【００３５】
２０２は、画像ファイル記憶手段としての、ＲＡＷ画像データをファイルとしての記憶や、必要に応じてＲＡＷ現像結果を汎用データとして保存するためのメモリである。
【００３６】
２０３は、画像処理手段としての図１に示されるようにＲＡＷ現像処理を実行する画像処理シーケンスを含んだ複数の画像処理ブロック（画像処理１〜Ｎ）から構成されるＣＰＵ等の演算装置である。
【００３７】
２０４は記憶手段であり、図示されない画像処理装置の各制御手段が作業メモリとしてや、図１のＲＡＷ現像処理実行時に、キャッシュデータを記憶するためのＤＲＡＭ等の高速メモリである。
【００３８】
２０５は画像処理パラメータ入力手段としてのユーザがＲＡＷ現像パラメータを入力するためのユーザインタフェースである。図１で示されるＲＡＷ画像の現像処理結果がディスプレイに表示された後、ユーザが、ユーザインタフェースより「色の濃さ」、「シャープネス」、「トーンカーブ」などを入力してＲＡＷ現像パラメータに変更を加えると、再度現像処理を行い、各パラメータの調整を反映した現像処理結果を表示する必要があるが、各パラメータに対する処理結果がキャッシュデータとしてメモリ内に存在する場合には図１で示される現像処理シーケンスの全てを行う必要がなくなる。
【００３９】
例えば、ユーザが「色の濃さ」の調整値のレベルを「１」→「３」へ変更した場合、この影響を受けて無効となるキャッシュデータは、後段に位置する色系処理色系キャッシュデータＣｒＣｂ２Ｃａｓｈ１１０、ＲＧＢＣａｓｈ１１５のみであるため、その他の前段の処理までのキャッシュデータを利用することにより、処理すべき内容は以下のとおりとなり、図１で示される初回の現像処理と比べて処理ステップ数が減り、より高速に現像処理結果が得られることとなる。
・ＣｒＣｂＣａｓｈ１０７を入力としていた色系処理１０７
・出力結果がＣｒ２，Ｃｂ２である色系処理１０８と、１１３のＹ２Ｃａｓｈを入力としたＹＣｒＣｂ→ＲＧＢ変換処理１１４
・トーンカーブ調整１１６
・データ変換１１８
また、ユーザが現像結果を確認しながらパラメータを入力する際に、１つ処理を戻るような場合であっても、同様にキャッシュデータを使うことによって高速に１つ前の状態の結果が見られるようになる。
【００４０】
第１の実施形態によれば、各処理の後にキャッシュを設けることにより、さまざまなＲＡＷ現像パラメータの変更に対して、より高速に調整値の変更結果を反映した現像処理結果を表示することができる。
【００４１】
また、ユーザが変更するＲＡＷ現像パラメータのうち、例えば、「色の濃さ」は色系処理、「シャープネス」は輝度系処理と分けられる。色系、輝度系それぞれの処理工程の中間処理データをキャッシュデータとして色系処理と輝度系処理に分けて保持しておくことによって、変更するＲＡＷ現像パラメータが輝度系処理あるいは色系処理の特性に応じて、それぞれにとって最も処理工程、あるいは処理時間が少なくて済む最適なキャッシュデータを利用出来るため、さらに現像処理の高速化が実現可能となる。
【００４２】
（第２の実施形態）
上記の第１の実施形態に示される図１のごときキャッシュシステムを有する現像処理では、画像処理中間結果を色系処理、輝度系処理等ＲＡＷ現像パラメータの性質に応じて、より多くの箇所でＤＲＡＭなどの高速なメモリ上に保持することにより、あらゆる調整値（ＲＡＷ現像パラメータ）変更において、より高速に現像処理を行うことが可能となる。しかし、より多くの画像処理中間結果を保持するための多くのメモリが必要となってしまう。例えば、画像データサイズが横・縦４０００×３０００画素の場合に、図１のごとき現像処理で１６ビットデータのキャッシュを保持した場合、下記のとおり２４０Ｍバイトという大きなメモリ容量を必要としてしまう。
※１プレーンのデータ＝４０００×３０００×２＝２４ＭＢ
ＹＣａｓｈ・・・輝度データＹ  １プレーン＝２４ＭＢ×１＝２４Ｍバイト
ＣｒＣｂＣａｓｈ・・・色データＣｒＣｂ  ２プレーン＝２４ＭＢ×２＝４８Ｍバイト
Ｙ２Ｃａｓｈ・・・輝度データＹ  １プレーン＝４８ＭＢ×１＝４８Ｍバイト
ＣｒＣｂ２Ｃａｓｈ・・・色データＣｒＣｂ  ２プレーン＝２４ＭＢ×２＝４８Ｍバイト
ＲＧＢＣａｓｈ・・・ＲＧＢ  ３プレーン＝２４ＭＢ×３＝７２Ｍバイト
キャッシュデータ合計  ７２ＭＢ＋２４ＭＢ＋４８ＭＢ＋４８ＭＢ＋４８ＭＢ＝２４０Ｍバイト
【００４３】
そこで、第２の実施形態では、ＲＡＷ現像を行いながら同一ＲＡＷ画像を異なる現像パラメータで複数回現像処理する際に、キャッシュヒット率が高く、高速に現像処理を行うことが可能であり、さらに、キャッシュとして消費するメモリ量が少なく、システム負荷をかけない画像処理について説明する。
【００４４】
図２のような構成において、本発明の画像処理装置では、キャッシュ制御手段２０７が画像処理中に、どのキャッシュデータを画像処理中間データとして記憶するのかをＲＡＷ現像パラメータ入力履歴記憶手段２０６を参照して決定することにより、最低限必要なキャッシュデータのみを記憶することが可能となり、多くのキャッシュ用メモリを使用せずにヒット率の高いキャッシュシステムを実現している。
【００４５】
図２の基本構成は、第１の実施形態と同じであるため、異なる点のみ説明する。
【００４６】
画像処理パラメータ入力履歴記憶手段２０６としてのＲＡＷ現像パラメータ入力履歴記憶メモリであり、少なくとも前回のＲＡＷ現像処理時に用いたＲＡＷ現像パラメータを例えば、図１１に示すような形式で記憶してあり、現在のＲＡＷ現像パラメータとの相違を比較可能とするメモリである。（ＲＡＷ現像パラメータ入力履歴は、前回だけでなく、過去数回のものを記憶しておいても良い。これにより、さらにキャッシュヒット率は高くなる。）
【００４７】
２０７はキャッシュ制御手段であり、図１で示される各キャッシュデータを記憶する記憶手段としてのキャッメモリ２０４に記憶する、あるいは、破棄するかを制御するキャッシュメモリコントローラである。
【００４８】
２０８は内部バスであり、本画像処理装置の各手段の間でのデータ送受信おこなうためのバスである。
【００４９】
このような第２の実施形態による現像処理手順について、図３を用いて、より詳しく説明する。
【００５０】
ＲＡＷ画像をデフォルト、あるいは撮像時の条件の現像パラメータで最初にディスプレイに表示しようとした際、あるいはユーザがＲＡＷ現像パラメータ入力手段２０５から、ＲＡＷ現像パラメータの変更を行い、画像表示の更新が必要になった際に、本発明による画像処理装置では、図３に示したフローチャートのように現像処理シーケンスを行う。
【００５１】
まず、ステップ３０１では、現在のＲＡＷ現像パラメータのすべてをＲＡＷ現像パラメータ入力履歴記憶手段２０６に記憶する。
【００５２】
つぎに、ステップ３０２では、キャッシュ制御手段２０７が、キャッシュ用記憶手段２０４のキャッシュデータのなかで、無効とすべきキャッシュデータを破棄する。無効とするキャッシュデータを破棄する処理は図８とともに詳細に説明する（無効キャッシュ破棄処理）。無効とすべきキャッシュデータは、ＲＡＷ現像パラメータが変更された際に、変更された調整値をもって再度処理を行うべき処理ステップの後段で記憶されるキャッシュデータすべてである。このため、キャッシュ制御手段２０７は、調整値が変更されたか否かを、ＲＡＷ現像パラメータ入力履歴記憶手段を参照することにより判定し、変更された調整値を用いる処理の後段で記憶されるキャッシュデータ全てを破棄する。
【００５３】
つぎに、ステップ３０３では、キャッシュ制御手段２０７が今回の現像処理の途中結果として出力されるデータの中で、キャッシュとして記憶すべきデータが何かを決定する。決定方法は、図９とともに後述する（キャッシュ制御手段２０７による記憶キャッシュ決定処理）。
【００５４】
ユーザがＲＡＷ現像結果を表示手段２０１にて確認しながら、ＲＡＷ現像パラメータを入力する際、同じ調整項目に対して、何度も調整値を変更することが多い。例えば、ＲＡＷ現像パラメータの調整項目として１〜１０の調整値を持つ「色の濃さ」の調整を行う場合、ユーザインタフェースとしては、１〜１０の値が設定できるスライダが用いられるとする。この場合、ユーザは表示されるＲＡＷ現像結果を確認しながら、スライダを頻繁に動かし、トライアンドエラーを重ねながら最も好ましい調整値を決定する使用方法が多い。特にこのような場合において、キャッシュが最適にヒットしＲＡＷ現像結果が高速に表示装置に表示されることが、ユーザビリティを向上させるために重要となる。
【００５５】
このようなＲＡＷ現像の特徴を考慮し、本発明によるキャッシュ制御手段２０７は、ステップ３０３のステップにおいて、ＲＡＷ現像パラメータ入力履歴記憶手段２０６を参照して、前回の現像処理と今回の現像処理で、ＲＡＷ現像パラメータのうちどのＲＡＷ現像パラメータが変更されているのかを判断する。そして、変更されている調整項目が次回の現像処理においても変更されるものと予測してキャッシュすべきデータを決定する。
【００５６】
例えば、図１のごとき現像処理において、変更された調整項目が「色の濃さ」であった場合には、次回現像処理時にも「色の濃さ」ユーザによって調整が繰り返されて変更される可能性が高いものと予測し、「色の濃さ」が変更された場合でも次回現像処理時に有効でかつ必要となるキャッシュデータを優先的にキャッシュすべきデータとして決定する。このため、図１のごときＲＡＷ現像処理シーケンスの場合には、「色の濃さ」が変更（更新）される直前のＣｒＣｂＣａｓｈ１０７と輝度系処理後のＹ２Ｃａｓｈ１１３の両キャッシュデータを優先的にキャッシュすべきデータと決定する。
【００５７】
また、本実施例では、次回現像処理時に有効でかつ必要となるキャッシュデータを優先的に記憶する一方、次回現像処理時に無効または使用されない可能性の高いデータは、キャッシュデータにしないこととしている。
【００５８】
例えば、ＣｒＣｂ２Ｃａｓｈ１１０のキャッシュデータは、「色の濃さ」が変更された場合には、変更後の調整値により色系処理１０８を実行しなおして、Ｃｒ２、Ｃｂ２のデータを更新する必要があるため、キャッシュデータとしては保存しない（無効）とする。また、ＹＣａｓｈ１０６は、色系処理１０８よりも前段に位置しているＲＧＢ→ＹＣｒＣｂ変換１０５におけるキャッシュデータであり、更に「色の濃さ」を変更する色系処理１０８とは同時に処理できない輝度系処理後のキャッシュデータＹ２Ｃａｓｈ１１３が優先的に記憶されているため、「色の濃さ」を変更しても更新される必要がなく、使用されないため、キャッシュしても次回現像処理時に無効または使用されない可能性の高いデータとして、キャッシュデータにしないことと決定する。更に、ＲＧＢＣａｓｈ１１５は、色系処理、輝度系処理の両方の出力結果を合成してＹＣｒＣｂ→ＲＧＢへの色変換後に保存されるキャッシュであるため、「色の濃さ」を変更するとそれに伴い更新されることになるため、キャッシュデータとして記憶していても無駄になるのでキャッシュデータとしないと決定する。
【００５９】
つぎに、ステップ３０４では、画像処理手段２０３がＲＡＷ現像処理を行う。この際、有効なキャッシュデータが存在すれば、それを用いて現像処理を行うものとし、有効なキャッシュデータより前に位置する処理については、そのキャッシュデータに結果が含まれるため処理を行わない。このため、キャッシュがヒットした際には、ＲＡＷ現像処理がより高速となる。また、処理を行った中間結果については、キャッシュ制御手段２０７が決定したとおり、記憶すべきキャッシュデータはキャッシュ記憶手段２０４に記憶させる。
【００６０】
つぎに、ステップ３０５において、キャッシュ制御手段２０７が記憶すべきキャッシュとして判定しなかったキャッシュデータ（非記憶キャッシュ）が存在する場合には、これを破棄する。
【００６１】
つぎに、ステップ３０６において、ステップ３０４の現像処理で得られた現像処理結果を表示手段２０１に表示した後、本発明の画像処理手段による現像処理シーケンスを終了する。
【００６２】
上記のとおり、本発明による画像処理装置およびキャッシュシーケンスは、少ないメモリ消費ながらも、同じＲＡＷ調整項目に対して複数回調整値変更がなされた際に、キャッシュデータが効果的にヒットし、高速にＲＡＷ現像処理が行われ、結果を表示することができる。このため、ユーザのトライアンドエラーで行われるＲＡＷ画像のＲＡＷ現像作業に対して、好ましいユーザビリティを提供することができるものである。
【００６３】
図４は、第２の実施形態を実現する画像処理装置として、現在一般的なパーソナルコンピュータ（以下ＰＣ）４０１を用いた場合のアプリケーションソフトウェアについて具体的に説明する。
【００６４】
本実施形態によるＰＣは、現在一般的なものと同様のものであり、図示されない構成として、ＯＳプログラム、ＲＯＭ、キーボード、マウス、電源ユニット、ハードウェア機器制御プログラムなどが備わっているものとする。
【００６５】
４０２はＣＲＴディスプレイであり、画像データや画像データを編集する際の操作部材などを表示する表示手段の実施例である。
【００６６】
４０３は、各種プログラムやデータを記憶するＤＲＡＭであり、現在一般的なＰＣと同様、図示されない構成として、基本ＯＳプログラム、ドライバプログラム、アプリケーションプログラムなどが読み込まれ、ＣＰＵ４０４により実行されるものである。
【００６７】
４０５は、不揮発性記憶媒体であるところのハードディスクであり、近年一般的なＰＣに具備されているものと同様のものである。
【００６８】
４０６はＲＡＷ画像編集プログラムであり、ＲＡＷ画像ファイル４０７をハードディスク４０５から読み込み、ＲＡＷ現像パラメータに従って画像処理プログラム４０８が現像処理を行い、結果をＣＲＴ４０２へと表示することができるものである。
【００６９】
ＲＡＷ画像編集プログラム４０６は、近年一般的なＰＣ上のプログラムと同様に、ハードディスク４０５に予めインストールされたアプリケーションプログラムであり、ユーザ操作により起動されるとＤＲＡＭ４０３にプログラムおよび関連データが読み込まれ、ＣＰＵ４０４により処理が行われるものである。
【００７０】
画像処理プログラム４０８は、ＲＡＷ画像データの現像処理（画像処理）を行うものであり、図２における画像処理手段２０３の実施例である。
【００７１】
キャッシュ制御プログラム４０９は、ＲＡＷ画像現像処理の中間データのキャッシュを制御するものであり、図２におけるキャッシュ制御手段２０７の実施例である。
【００７２】
４１０は、作業用メモリ領域であり、図２におけるキャッシュ記憶手段２０４に相当するとともに、ＲＡＷ画像編集プログラム４０６や、図示されていない他のプログラムが作業用メモリとして使用できる領域である。
【００７３】
４１１は、ＲＡＷ現像パラメータ入力履歴記憶手段２０６としてのＲＡＷ現像パラメータ入力履歴記憶領域であり、ユーザが入力したＲＡＷ現像パラメータについての履歴を記憶する領域である。本実施例においては、前回の入力値と、現在の入力値のみ記憶しているものとする。
【００７４】
４１２は、現在一般的なＰＣに具備されているものと同様の「マウス」であり、図２におけるＲＡＷ現像パラメータ入力手段２０５の実施例である。
【００７５】
４１３は内部バスであり、図４で示される各ブロックが互いにデータを送受信するためのものである。
【００７６】
図４で示される構成図において、ＲＡＷ画像編集プログラム４０６が起動すると、ＲＡＷ画像編集プログラム４０６は、ＣＲＴ４０２上に図５のようなユーザインタフェースを表示するものとする。
【００７７】
図５において、５０１は、ＲＡＷ画像編集プログラムが表示するメインウィンドウであり、ウィンドウ内には、ＲＡＷ画像の現像処理結果５０２を表示している。５０３はＲＡＷ現像パラメータを変更するための、ＲＡＷ現像パラメータ編集ダイアログであり、ホワイトバランス５０４「色の濃さ（彩度）」５０５、「シャープネス」５０６、「トーンカーブ」５０７といった調整コントロールを有することとする。
【００７８】
図５の状態では、色の濃さが「７」、シャープネスが「３」、トーンカーブは図示のとおりであり、これらのＲＡＷ現像パラメータを反映して現像処理を行った結果が５０２に表示されている。そして、各調整値を変更すると直ぐにＲＡＷ現像が行われ調整値の変更結果が５０２の画像に反映されるものとする。
【００７９】
ここで、例えば「色の濃さ」調整値のスライダをユーザが「７」から「３」へと動かした場合、途中スライダ位置は「６」、「５」、「４」を通ることになるが、その際、各値に対して現像処理が行われ５０２の画像を更新するものとする。つまり、４回のＲＡＷ現像処理と画面更新を行うこととする。この場合、「色の濃さ」という同じ調整項目に対して連続して４回のＲＡＷ現像処理が行われることとなり、本発明によるキャッシュシステムが有効に動作することとなる。
【００８０】
図６は、図４に示すＲＡＷ現像処理シーケンスを説明するフローチャートである。以下、図６を用いて、ＲＡＷ画像編集プログラム４０６の動作を詳しく説明する。
【００８１】
ＰＣをユーザが操作し、ＲＡＷ画像編集プログラム４０６が起動すると、まずステップ６０１において、ＲＡＷ画像データのファイル４０７をハードディスク４０５からバスを介してＣＰＵ４０４に読み込んで入力し、現像処理シーケンスを実行する。
【００８２】
次に、ステップ６０２において、現像処理シーケンス実行結果として得られるＲＡＷ画像の現像処理結果をＣＲＴステップ６０２へと表示する。
【００８３】
次に、ステップ６０３において、マウス４１２によりユーザからＲＡＷ現像パラメータのうちの少なくともいずれかの入力があったか否かをスキャンする。
【００８４】
ユーザ入力がなかった場合には、ステップ６０４の判断がＮＯとなり、再びステップ６０３にてユーザ入力スキャンを行う。
【００８５】
ユーザ入力があった場合には、ステップ６０４の判断がＹＥＳとなり、ステップ６０５へと処理を進める。
【００８６】
ステップ６０５では、ユーザ入力内容がＲＡＷ現像パラメータを変更する操作か否かの判断を行う。
【００８７】
ＲＡＷ現像パラメータが変更された場合には、ステップ６０５の判断はＹＥＳとなり、ＲＡＷ現像パラメータの変更結果を反映したＲＡＷ現像処理結果を表示する必要があるため、再びステップ６０１の現像処理シーケンスへと処理を戻す。
【００８８】
ＲＡＷ現像パラメータの変更でない場合には、ステップ６０５の判断はＮＯとなり、ステップ６０６へと処理を進める。
【００８９】
ステップ６０６では、ユーザ入力が終了要求コマンドか否かの判定を行う。終了以外のコマンドである場合には、再びステップ６０３のユーザ入力スキャンへと処理を進める。
【００９０】
ユーザ入力が終了要求コマンドであった場合には、ステップ６０６の判断はＹＥＳとなり、確保したメモリの破棄など必要な終了処理を行った後、ＲＡＷ画像編集プログラムを終了する。
【００９１】
次に、図７を用いて、現像処理シーケンスステップ６０１の処理内容を詳しく説明する。
【００９２】
なお、本実施例における現像処理は、図１と同様の基本現像処理フローであるものとする。
【００９３】
現像処理シーケンスがスタートすると、まずステップ７０１において、現在のＲＡＷ現像パラメータをＲＡＷ現像パラメータ入力履歴記憶領域４１１へと記憶する。
【００９４】
次に、ステップ７０２にて、キャッシュ制御プログラム４０９は、ＲＡＷ現像パラメータ入力履歴記憶領域４１１を参照して、現在のＲＡＷ現像パラメータと、前回の現像処理シーケンスで用いられたＲＡＷ現像パラメータを比較し、無効とすべきキャッシュデータが作業用メモリ領域４１０に存在するならば、これを破棄する。無効なキャッシュデータは可能な限り早く破棄することにより、後段の処理において、作業メモリが必要となった際に、メモリが確保できない可能性を低くできるため、ステップ７０２のステップで破棄するのが好ましい。
【００９５】
次に、ステップ７０３にてキャッシュ制御プログラム４０９は、今回の現像処理の中間結果として得られる中間データのうち、どの中間データをキャッシュとして現像処理シーケンス終了後も保持しておくべきかを決定する。ここで、キャッシュすべき中間データを記憶キャッシュと呼ぶこととする。
【００９６】
次に、ステップ７０４のステップでは、画像処理プログラム４０８が、有効なキャッシュデータを参照しながらＲＡＷ現像処理を実行し、現在のＲＡＷ現像パラメータを反映したＲＡＷ画像現像処理結果を生成し、作業用メモリ領域４１０に記憶する。
【００９７】
次に、ステップ７０５のステップで、キャッシュ制御プログラム４０９が、記憶キャッシュ以外の中間データが、作業用メモリ領域４１０に残っている場合には、これを破棄して、図７で示される本実施例における現像処理シーケンスを終了する。
【００９８】
次に図８を用いて、キャッシュ制御プログラム４０９による無効キャッシュ破棄処理ステップ７０２について、詳しく説明する。
【００９９】
無効キャッシュ破棄処理では、まずステップ８０１において、例えば、図１１に示すような形式のＲＡＷ現像パラメータ入力履歴記憶領域４１１を参照し、前回現像処理時のＲＡＷ現像パラメータと、現在のＲＡＷ現像パラメータとの比較を行う。
【０１００】
色系調整値（色の濃さ）のレベル値が前回現像処理時と異なっている場合には、ステップ８０２の判断がＮＯとなり、ステップ８０３へと処理を進める。同じ場合は、ＣｒＣｂ２Ｃａｓｈ、ＲＧＢＣａｓｈを利用し、ステップ８０７に進む。
【０１０１】
ステップ８０３でＣｒＣｂ２Ｃａｓｈが存在する場合には、異なる調整値によって変更されてしまうため、これを無効なキャッシュデータとして、ステップ８０４にて作業用メモリ領域４１０から破棄する。
【０１０２】
次に、ステップ８０５でＲＧＢＣａｓｈが存在する場合には、同様にこれを無効なキャッシュデータとして、ステップ８０６にて作業用メモリ領域４１０から破棄する。
【０１０３】
つまり、図１のフローにおいて、色系処理１０８の処理結果にＣｒＣｂ２Ｃａｓｈは直接的に、ＲＧＢＣａｓｈは間接的に影響を受ける中間データであるため、色系調整値が変更された場合には、メモリ内にキャッシュデータとして記憶してあっても無効となる。よって、ステップ８０４、ステップ８０６のように破棄する必要がある。
【０１０４】
色系調整値（色の濃さ）が異なっていない場合には、ステップ８０２の判断はＹＥＳとなり、ステップ８０７へと処理を進める。
【０１０５】
ステップ８０７では、輝度系調整値（シャープネス、ガンマ補正、ノイズ除去等）が前回と異なっているか否かの判断を行う。
【０１０６】
輝度系調整値が異なっている場合には、ステップ８０７の判断はＮｏとなり、ステップ８０８へと処理を進める。
【０１０７】
ステップ８０８でＹ２Ｃａｓｈが存在する場合には、これを無効なキャッシュデータとして、ステップ８０８にて作業用メモリ領域４１０から破棄する。
【０１０８】
次に、ステップ８１０でＲＧＢＣａｓｈが存在する場合には、これを無効なキャッシュデータとして、ステップ８１１にて作業用メモリ領域４１０から破棄した後、無効キャッシュ破棄処理を終了する。
【０１０９】
つまり、図１のフローにおいてはＲＧＢＣａｓｈも輝度系処理１１１の処理結果から作られることになり、直接影響を受ける中間データであるため、輝度系調整値が変更された場合には無効となる。従って、ステップ８０６のみならず、ステップ８１１でも破棄する必要がある。
【０１１０】
一方、ステップ８０７の判断において、輝度系調整値（シャープネス）が前回と異なっていない場合には、ステップ８０７の判断はＮＯとなり、そのまま無効キャッシュ破棄処理を終了する。
【０１１１】
なお、ここではフローに入れていないが、ホワイトバランス調整値１０４が変更された場合は、ホワイトバランス調整後の中間データが後段の輝度系、色系全ての処理に直接的、間接的に利用されることによる影響が出るため、ホワイトバランス調整処理１０３以降に存在するキャッシュデータ（ＹＣａｓｈ、ＣｒＣｂＣａｓｈ、Ｙ２Ｃａｓｈ、ＣｒＣｂ２Ｃａｓｈ、ＲＧＢＣａｓｈ）全てを破棄する。
【０１１２】
次に、図９を用いて、キャッシュ制御プログラム４０９による記憶キャッシュ決定処理ステップ７０３について、詳しく説明する。
【０１１３】
まず、ステップ９０１において、ＲＡＷ現像パラメータ入力履歴記憶領域４１０を参照し、前回現像時のＲＡＷ現像パラメータと、現在のＲＡＷ現像パラメータとの比較を行う。（初回現像時には、前回の調整値＝現在の調整値として扱うこととする。）
【０１１４】
ステップ９０２では、前回と今回で色系調整値（色の濃さ）に変化があったか否かを判断し、変化があった場合には判断がＮＯとなり、ステップ９０３へと処理を進める。
【０１１５】
ステップ９０３では、ＣｒＣｂＣａｓｈ，Ｙ２Ｃａｓｈを記憶キャッシュとして決定する。図１のフローから明らかなように、次回も色系調整値に変化があった場合には、ＣｒＣｂＣａｓｈ，Ｙ２Ｃａｓｈの２つのキャッシュデータが存在すれば、最も少ない処理ステップ数で現像処理結果が得られるためである。
【０１１６】
ステップ９０２の判断がＹＥＳの場合には、ステップ９０３の処理をせず、ステップ９０４へと処理を進める。
【０１１７】
ステップ９０４では、前回と今回で、輝度系処理の調整値（例えば、シャープネス）に変化があったか否かを判断し、変化があった場合には判断がＮＯとなり、ステップ９０５へと処理を進める。
【０１１８】
ステップ９０５では、ＣｒＣｂ２Ｃａｓｈ，ＹＣａｓｈを記憶キャッシュとして決定する。図１のフローから明らかなように、次回も輝度系処理の調整値に変化があった場合には、ＣｒＣｂ２Ｃａｓｈ，ＹＣａｓｈの２つのキャッシュデータが存在すれば、最も少ない処理ステップ数で現像処理結果が得られるためである。
【０１１９】
ステップ９０４の判断がＹＥＳの場合には、ステップ９０５の処理をせず、ステップ９０６へと処理を進める。
【０１２０】
ステップ９０６では、前回と今回で、トーンカーブ調整値に変化があったか否かを判断し、変化があった場合には判断がＮＯとなり、ステップ９０７へと処理を進める。
【０１２１】
ステップ９０７では、ＲＧＢＣａｓｈを記憶キャッシュとして決定する。図１のフローから明らかなように、次回もトーンカーブ調整値に変化があった場合には、ＲＧＢＣａｓｈのキャッシュデータが存在すれば、最も少ない処理ステップ数で現像処理結果が得られるためである。
【０１２２】
ステップ９０６の判断がＹＥＳの場合には、ステップ９０７の処理をせず、そのまま記憶キャッシュ決定処理を終了する。
【０１２３】
次に、図１０を用いて、画像処理プログラム４０８によるキャッシュを利用した現像処理ステップ７０４について詳しく説明する。
【０１２４】
まず、ステップ１００１にてＲＧＢＣａｓｈがキャッシュメモリ内に存在するか否かを判断する。存在する場合は、トーンカーブ調整前までの処理結果としてＲＧＢＣａｓｈキャッシュデータを使用することが出来る。すなわち、判断がＹＥＳとなり、ステップ１００９にて入力されたトーンカーブ調整値を用いてトーンカーブ調整処理およびデータ変換処理のみ行って、結果を作業用メモリ領域４１０に保存した後、処理を終了する。
【０１２５】
一方、ＲＧＢＣａｓｈが存在しない場合には、ステップ１００１の判断はＮＯとなり、ステップ１００２へと処理を進める。
【０１２６】
ステップ１００２では、Ｙ２Ｃａｓｈがキャッシュメモリ内に存在するか否かを判断する。存在する場合には、判断がＹＥＳとなりステップ１００６へと処理を進める。存在しない場合には、判断はＮＯとなり、ステップ１００３へと処理を進める。
【０１２７】
ステップ１００３では、ＹＣａｓｈがキャッシュメモリ内に存在するか否かを判断する。存在する場合には、ステップ１００５へと処理を進める。存在しない場合には、ステップ１００４へと処理を進める。
【０１２８】
ステップ１００４では、補間処理、ＷＢ調整処理、ＲＧＢ→ＹＣｒＣｂ色空間変換処理を実行する。処理結果として得られるＹＣａｓｈ、ＣｒＣｂＣａｓｈが、前述した記憶キャッシュ決定処理で決定された記憶キャッシュである場合には、処理結果をキャッシュとして記憶しておく。
【０１２９】
ただし、記憶キャッシュでなければ直ぐにここで破棄するという意味ではない。本実施例においては、ＹＣａｓｈについては、Ｙ２Ｃａｓｈデータまたはその後段のデータが得られるまでは保持しておく必要があるし、ＣｒＣｂＣａｓｈについては、Ｃｒ２，Ｃｂ２データまたはその後段のデータが得られるまでは保持しておく必要がある。つまり、非記憶キャッシュであっても、現像処理中に後に他の処理から参照されるデータもあるため、このようなデータは今回の現像処理を完了するために必要な間は、テンポラリデータとして保存しておく必要がある。いつまで保存するかの判断は現像処理内容ごとに適宜決定する設計事項であるため、詳しくは説明しないこととする。
【０１３０】
ステップ１００５では、ＡＰＣ、ガンマ補正、ノイズ除去等の輝度系処理実行後Ｙ２Ｃａｓｈが前述の記憶キャッシュ決定処理においてＹ２Ｃａｓｈが記憶キャッシュに設定されている場合は、結果をキャッシュとして記憶する。
【０１３１】
次に、ステップ１００６では、ＣｒＣｂ２Ｃａｓｈがキャッシュメモリ内に存在するか否かの判断を行う。ＣｒＣｂ２Ｃａｓｈがキャッシュメモリ内に存在する場合には、ステップ１００６の判断はＹＥＳとなり、ステップ１００８へと処理を進める。ＣｒＣｂ２Ｃａｓｈが存在しない場合には、ステップ１００６の判断はＮＯとなりステップ１００７へと処理を進める。
【０１３２】
ステップ１００７では、色の濃さを調整する等の色系処理を実行する。そして、ＣｒＣｂ２Ｃａｓｈが前述の記憶キャッシュ決定処理において記憶キャッシュである場合、処理結果をキャッシュとして記憶しておく。
【０１３３】
次のステップ１００８では、ＹＣｒＣｂ→ＲＧＢ色空間変換処理を実行する。そして、ＲＧＢＣａｓｈが前述の記憶キャッシュ決定処理において記憶キャッシュである場合、処理結果をキャッシュとして記憶しておく。
【０１３４】
続いて前述したとおりのステップ１００９の処理を行ったのち、画像処理プログラム４０８によるキャッシュを利用した現像処理フローを終了する。
【０１３５】
なお、本フローでは、輝度系処理、色系処理の順に現像処理を行うフローとしたが、この限りでなく、図１のデータフローを実現する上で、これらの処理順序はいかようでもかまわない。
【０１３６】
図１０のごとき処理フローにおける、キャッシュシステムの有効性について、以下に述べる。
たとえば、各処理時間が以下のようであったとする。
補間処理・・・２００（ｍｓｅｃ）
ＷＢ調整・・・１００（ｍｓｅｃ）
ＲＧＢ→ＹＣｒＣｂ変換処理・・・５０（ｍｓｅｃ）
色系処理・・・３００（ｍｓｅｃ）
輝度系処理・・・５００（ｍｓｅｃ）
ＹＣｒＣｂ→ＲＧＢ変換処理・・・５０（ｍｓｅｃ）
トーンカーブ調整・・・１００（ｍｓｅｃ）
データ変換・・・５０（ｍｓｅｃ）
すると初回現像時に費やす時間
「初回現像時間」・・・２００＋１００＋５０＋３００＋５００＋５０＋１００＋５０＝１３５０（ｍｓｅｃ）
となる。
【０１３７】
次に、トーンカーブを最初に変更した際、キャッシュが全て無効であるため、同じ時間である１３５０（ｍｓｅｃ）の時間がかかってしまう。しかし、これはトーンカーブを動かし始めるときのみの処理時間であり、さらにトーンカーブ操作をスライド動作的に続けると、ＲＧＢＣａｓｈが有効となり、その後トーンカーブ操作中の現像処理時間は
「トーンカーブ操作中現像時間」・・・１００＋５０＝１５０（ｍｓｅｃ）
となり、トーンカーブを操作しながらほぼリアルタイムにユーザは調整結果を確認することが可能である。
【０１３８】
また、この際キャッシュとして必要なメモリ容量は横・縦４０００×３０００画素１６ビットデータのキャッシュを保持した場合、
ＲＧＢＣａｓｈ・・・ＲＧＢ  ３プレーン＝２４ＭＢ×３＝７２Ｍバイト
となり、現在一般的なＰＣに搭載されているメモリ容量でも問題のないサイズである。
【０１３９】
ここでは、同様にトーンカーブ以外のパラメータでである「色の濃さ」や、「シャープネス」を調整した場合であっても、上記と同様の効果が得られる。
【０１４０】
上記のとおり、第２の実施例では、大容量の作業メモリを使用しないためＰＣの演算負荷を削減し、ＲＡＷ現像処理を処理のレスポンスも快適で高速に行うことが可能な画像処理装置の実施例を示した。
【０１４１】
（他の実施形態）
上述の実施例では、ＲＡＷ画像はデジタルカメラによる撮影時に、撮像素子による光電変換後Ａ／Ｄ変換された画像データに画像処理を施すことなく保存された画像データだとして説明したが、撮像素子から得られた、出力アナログ信号でも良いし、Ａ／Ｄ変換を施した画像信号に、少なくともホワイトバランス処理を施していない段階のもの、撮像素子から得られた、Ａ／Ｄ変換を施した画像信号に輝度信号と色信号に分ける色分離処理をしていない段階もの、あるいは、色補間処理していない段階のもの等の撮像素子からの出力信号を損失が最小限の状態で保持しているデータであればよい。
【０１４２】
デジタルカメラによって撮影されたＲＡＷ画像を記録した記録媒体から読み出し、デジタルカメラ上で現像パラメータを入力して現像処理をしても良いし、ＰＣあるいはプリンタ等の装置とデジタルカメラを物理的または電気的に接続して、リモート操作によりＰＣ等デジタルカメラ外部から現像パラメータを入力する構成としても良い。
【０１４３】
また、本発明の目的は、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ（またはＣＰＵやＭＰＵ）が記憶媒体に格納されたプログラムコードを読出し実行することによっても、達成されることは言うまでもない。この場合、記憶媒体から読出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
【０１４４】
また、前述した実施形態の機能を実行するシステムあるいは装置は、ＰＣに限らず、デジタルカメラ等の撮像装置上であっても良い。その場合は、現像パラメータの入力から表示まで撮像装置単体で処理を完了することが可能である。
【０１４５】
プログラムコードを供給するための記憶媒体としては、例えば、フレキシブルディスク，ハードディスク，光ディスク，光磁気ディスク，ＣＤ−ＲＯＭ，ＣＤ−Ｒ，磁気テープ，不揮発性のメモリカード，ＲＯＭなどを用いることができる。
【０１４６】
一方、コンピュータが読出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているＯＳ（オペレーティングシステム）などが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【０１４７】
さらに、記憶媒体から読出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【図面の簡単な説明】
【０１４８】
【図１】現像処理データフロー図
【図２】第１、２の実施形態による画像処理装置基本構成図
【図３】第２の実施形態による現像処理シーケンス
【図４】基本構成の実施例
【図５】ユーザインタフェースの実施例
【図６】ＲＡＷ画像編集プログラム処理手順
【図７】現像シーケンスの実施例
【図８】無効キャッシュ破棄処理シーケンス
【図９】記憶キャッシュ決定処理シーケンス
【図１０】キャッシュを利用した現像処理フローチャート
【図１１】現像パラメータ入力履歴のデータの一例とキャッシュデータの扱い
【図１】
2005341551.tif 000003
【図２】
2005341551.tif 000004
【図３】
2005341551.tif 000005
【図４】
2005341551.tif 000006
【図５】
2005341551.tif 000007
【図６】
2005341551.tif 000008
【図７】
2005341551.tif 000009
【図８】
2005341551.tif 000010
【図９】
2005341551.tif 000011
【図１０】
2005341551.tif 000012
【図１１】
2005341551.tif 000013