(57)【要約】【課題】格子点データテーブルを用いた画像処理を実行する撮像装置において、格子点データテーブルの保持等に必要なメモリ量を低減させる。【解決手段】撮影により得られた画像をデジタル処理するデジタルカメラは、３次元格子点データテーブルを用いて画像データの変換処理を行なう３次元格子データテーブルを有する。デジタルカメラは、上記変換処理をマトリクス演算により実現するためのマトリクス係数セットを保持し、このマトリクス係数セットを用いて３次元格子点データテーブルの各格子点の値を算出し、算出された値を上記変換処理で用いられる３次元格子データテーブルに設定する。そして、上記変換処理による変換後の画像データを非可逆圧縮して得られた圧縮画像データと、保持されているマトリクス係数とを付帯情報としたＲＡＷ画像ファイルが生成される。【選択図】図５
2011155669.tif 000002
【特許請求の範囲】
【請求項１】
撮影により得られた画像データをデジタル処理する撮像装置であって、
複数の撮影シーンにそれぞれ対応する複数のマトリクス係数セット、及び前記複数の撮影シーンにそれぞれ対応する格子点データセットを保持する保持手段と、
前記複数の格子点データセットのうちの一つを用いて、格子点データテーブルに各格子点の値を設定する設定手段と、
前記設定手段により各格子点の値を設定された格子点データテーブルを用いて前記画像データの色変換処理を行なう変換手段と、
前記設定手段で用いられた格子点データセットの対応する撮影シーンに対応するマトリクス係数セット、及び前記変換手段による変換後の画像データを有する画像ファイルを生成する生成手段と、を備え、
格子点データセット及びマトリクス係数セットは、前記変換手段による色変換処理の内容を規定するものであり、
マトリクス係数セットは、前記格子点データテーブルの各格子点の値をマトリクス演算により算出するための係数のセットであることを特徴とする撮像装置。
【請求項２】
前記変換手段による変換後の画像データを非可逆圧縮して得られた圧縮画像データを前記画像ファイルに含むことを特徴とする請求項１に記載の撮像装置。
【請求項３】
前記画像ファイルはＲＡＷ画像を含むファイルであり、前記圧縮画像データと前記変換手段による色変換処理に用いられたマトリクス係数セットが付帯データとして該画像ファイルに含まれることを特徴とする請求項２に記載の撮像装置。
【請求項４】
前記変換手段は、前記格子点データテーブルの格子点以外の位置の値を、該位置を内包する格子の頂点に位置する格子点の値を用いた補間処理によって得ることを特徴とする請求項１乃至３のいずれか１項に記載の撮像装置。
【請求項５】
前記生成手段は、前記複数のマトリクス係数セットを含む画像ファイルを生成することを特徴とする請求項１または２に記載の撮像装置。
【請求項６】
前記格子点データテーブルは３次元格子点データテーブルであることを特徴とする請求項１乃至５のいずれか１項に記載の撮像装置。
【請求項７】
撮影により得られた画像データをデジタル処理する撮像装置と、画像処理アプリケーションが動作する情報処理装置からなる情報処理システムであって、
前記撮像装置は、
複数の撮影シーンにそれぞれ対応する複数のマトリクス係数セット、及び前記複数の撮影シーンにそれぞれ対応する格子点データセットを保持する保持手段と、
前記複数の格子点データセットのうちの一つを用いて、格子点データテーブルに各格子点の値を設定する第１の設定手段と、
前記第１の設定手段により各格子点の値を設定された格子点データテーブルを用いて画像データの色変換処理を行なう第１の変換手段と、
前記第１の設定手段で用いられた格子点データセットの対応する撮影シーンに対応するマトリクス係数セット、及び前記変換手段による変換後の画像データを有する画像ファイルを生成する第１の生成手段と、を備え、
前記情報処理装置は、
前記画像ファイルよりマトリクス係数セットを取得し、該マトリクス係数セットを用いてマトリクス演算により格子点データテーブルの各格子点の値を生成する第２の生成手段と、
前記第２の生成手段で生成された各格子点の値を前記格子点データテーブルに設定する第２の設定手段と、
前記画像ファイルより画像データを取得し、前記第２の設定手段で格子点データが設定された格子点データテーブルを用いて変換処理を行なう第２の変換手段と、を備え、
格子点データセット及びマトリクス係数セットは、前記変換手段による色変換処理の内容を規定するものであり、
マトリクス係数セットは、前記格子点データテーブルの各格子点の値をマトリクス演算により算出するための係数のセットであり、
前記画像ファイルの画像データに変換処理を行うために前記第２の変換手段によって前記マトリクス係数セットを用いて生成される前記格子点データテーブルの格子点数は、前記画像ファイルの画像データに色変換処理を行うために前記撮像装置にて前記第１の設定手段によって格子点データセットを用いて設定される前記格子点データテーブルの格子点数よりも多いことを特徴とする情報処理システム。
【請求項８】
複数の撮影シーンにそれぞれ対応する複数のマトリクス係数セット、及び前記複数の撮影シーンにそれぞれ対応する格子点データセットを保持する保持手段を備え、撮影により得られた画像データをデジタル処理する撮像装置の画像処理方法であって、
前記複数の格子点データセットのうちの一つを用いて、格子点データテーブルに各格子点の値を設定する設定工程と、
前記設定工程にて各格子点の値を設定された格子点データテーブルを用いて前記画像データの色変換処理を行なう変換工程と、
前記設定工程で用いられた格子点データセットの対応する撮影シーンに対応するマトリクス係数セット、及び前記変換工程による変換後の画像データを有する画像ファイルを生成する生成工程と、を備え、
格子点データセット及びマトリクス係数セットは、前記変換工程による色変換処理の内容を規定するものであり、
マトリクス係数セットは、前記格子点データテーブルの各格子点の値をマトリクス演算により算出するための係数のセットであることを特徴とする撮像装置の画像処理方法。
【請求項９】
請求項８に記載の画像処理方法をコンピュータに実行させるための制御プログラム。
【請求項１０】
請求項９に記載の制御プログラムを格納したコンピュータ読み取り可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、デジタルカメラ等の撮像装置における画像処理に関する。
【背景技術】
【０００２】
一般に、デジタルカメラ内部の画像処理における各種変換処理（例えば、ガンマ変換等）の手法として、３×３のマトリクス演算や１次元のルックアップテーブルが用いられている。これら変換処理は、ハードウエアのメモリやゲート数を削減してチップ自身を小さくしたり、省エネルギーのために規模を小さくするためには、好適な手法である。しかしながら、近年、ハードウエアの微細化が進み、ＩＣの電源電圧も下げられたことによって、チップ自身の小サイズ化、より強力な省エネルギー化を実現することが可能になった。その結果、複雑な回路や大量のメモリをＩＣ内に搭載することが可能となっている。そのため、デジタルカメラにおいて、３次元のルックアップテーブル（以下、３次元格子点データテーブルという）や高次のマトリクス演算等を搭載し、カメラ内部の画像処理において複雑な画像処理を実行できる可能性が出てきている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】米国特許第５０７３８１８号明細書
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、ＩＣ内のハードウエアでは、格子点の数やビット数に制約があり、アプリケーションで行うような、高精度の画像処理は行うことが出来ないことが多い。また、例えばアプリケーションでＲＡＷ画像データの現像処理を行う場合、撮影ファイルにルックアップテーブルのデータを記録しておく必要がある。このため、ＲＡＷ画像のファイルサイズが大きくなってしまう。例えば、ｍグリッドの３次元格子点データテーブルでは、１次元あたりのグリッド数がｍ個であるので、全グリッド数はｍ3個となる。従って、各グリッドに３つのｎバイト値が割り当てられたｍグリッドの３次元格子点データテーブル（３次元ルックアップテーブル）は、ｍ3×ｎバイトの容量を必要とする。具体的には、９グリッドの８ビットの３次元格子点データテーブルには、２１８７（＝９×９×９×３）バイトの容量が必要になる。これに対して、３３グリッド１６ビットの３次元格子点データテーブルでは、２１５６２２（＝３３×３３×３３×２×３）バイトの容量が必要となり、実に１００倍の容量が必要となる。また、例えばユーザによって選択可能な３次元ルックアップテーブルを複数持っている場合は、後の現像処理のために、全ての３次元ルックアップテーブルをファイルに記録しておくことが望ましい。そのため、ファイルサイズは更に膨大になり、メモリに記録するのに時間がかかってしまう。結果として、カメラの連続撮影枚数が制限されてしまう。
【０００５】
特許文献１には、画像処理を行うためのルックアップテーブル回路を持つプリンタが記載されている。特許文献１によれば、ルックアップデータを全て格納するとファイルサイズが大きくなるため、補正関数から実際に画像を変換するためのルックアップテーブルが作成されることが記載されている。
【０００６】
しかしながら、画像処理をビット精度よく行うために、ルックアップテーブルで全てのデータを作り上げようとすると、ルックアップテーブルのデータサイズが膨大になり、回路規模も大きくなってしまう。また、画像処理をビット精度よく行うために、高次のマトリクス演算を用いて画像処理を行なおうとすれば、掛け算器が大量に必要となり、ビット数が多くなるとゲート規模が著しく増大してしまう。実際には２次のマトリクス演算まで使われるとしても、３次元格子点データテーブルを用いた処理よりも画像処理の自由度が制限されてしまう。
【０００７】
また、カメラ内の画像処理と異なるアルゴリズムの画像処理をアプリケーションで行う場合、あらかじめ、同じような処理結果になる係数をカメラ内にも持っておく必要がある。この場合、カメラ内の画像処理には用いない３次元格子点データテーブルのデータを大量にカメラ内のＲＯＭに記憶しておかなければならず、メモリの利用効率を著しく低下させてしまう。
【０００８】
本発明は、上記の課題に鑑みてなされたものであり、格子点データテーブルを用いた画像処理を実行する撮像装置において、格子点データテーブルの保持等に必要なメモリ量を低減させることを目的とする。
【課題を解決するための手段】
【０００９】
上記の目的を達成するための本発明による撮像装置は以下の構成を備える。即ち、
撮影により得られた画像をデジタル処理する撮像装置であって、
格子点データテーブルを用いて画像データの変換処理を行なう変換手段と、
前記変換処理をマトリクス演算により実現するためのマトリクス係数セットを保持する保持手段と、
前記マトリクス係数セットを用いて格子点データテーブルの各格子点の値を算出し、前記変換手段が用いる格子点データテーブルに設定する設定手段とを備える。
【発明の効果】
【００１０】
本発明によれば、格子点データテーブルを用いた画像処理を実行する撮像装置において、格子点データテーブルの保持等に必要なメモリ量を低減させることができる。
【図面の簡単な説明】
【００１１】
【図１】第１実施形態に係る撮像装置の全体を示すブロック図である。
【図２】図１の撮像装置における画像処理部７ｂの詳細を示すブロック図である。
【図３】第１実施形態に係る画像処理の色補間を示す図である。
【図４】第１実施形態に係る３次元格子点データテーブルを説明する図である。
【図５】第１実施形態に係るＲＡＷ画像ファイルの生成のための機能構成を示すブロック図である。
【図６】第１実施形態に係るＲＡＷ画像ファイルの生成処理を示すフローチャートである。
【図７】第１実施形態に係る情報処理装置の構成を示すブロック図である。
【図８】第１実施形態に係る情報処理装置のＲＡＷデータ処理のための機能構成を示すブロック図である。
【図９】第１実施形態に係る情報処理装置のＲＡＷ画像ファイル処理を示すフローチャートである。
【図１０】第２実施形態に係るＲＡＷ画像ファイルの生成のための機能構成を示すブロック図である。
【図１１】第２実施形態に係るＲＡＷ画像ファイルの生成処理を示すフローチャートである。
【図１２】第１実施形態に係るサムネイル画像生成を説明する図である。
【発明を実施するための形態】
【００１２】
以下、添付の図面を参照して本発明の好適な実施形態を説明する。
【００１３】
［第１実施形態］
図１は第１実施形態に係るデジタルカメラの構成を示すブロック図である。図１において、撮影レンズ１を通ってきた光は、赤外カットフィルタ２、光学ＬＰＦ３を通過して撮像素子４に結像する。撮像素子４としては、ＣＣＤやＣＭＯＳセンサ等が挙げられる。一般に撮像素子４の受光面にはフォトダイオードによるセンサが平面的に配置されている。そして、例えば、Ｒ（赤）・Ｇ(緑)・Ｂ（青）の各原色カラーフィルタが所定の配列で配置されたカラーフィルタにより、各センサに１色のカラーが割り当てられる。或いは、撮像素子４を原色の数だけ用意して、各撮像素子に１色ずつ割り当てる形態でもよい。
【００１４】
撮像素子４に結像された光は、各センサにおいて入射光量に応じた量の電荷に変換される。タイミングジェネレータ１６が発生する信号は、水平駆動用ドライバ１７と垂直駆動用ドライバ１８に供給される。水平駆動用ドライバ１７と垂直駆動用ドライバ１８はタイミングジェネレータ１６からの信号に従って撮像素子４に駆動信号を供給する。この駆動信号に従って撮像素子４からセンサに蓄積された電荷が伝送され、順次電圧信号に変換される。
【００１５】
変換された電圧信号は、相関二重サンプリング／ゲイン調整部５（以下ＣＤＳ／ＡＧＣと呼ぶ）でサンプリングされ、ゲイン調整された後、Ａ／Ｄ変換器６でデジタル信号に変換される。Ａ／Ｄ変換器６でデジタル信号に変換された画像データは、画像処理ＩＣ７に入力される。画像処理ＩＣ７では、まず、ＷＢ回路７ａが入力された画像データに対してホワイトバランスのためのデータを算出する。ホワイトバランスのためのデータと画像データはいったんメモリ８に格納される。
【００１６】
メモリ８に格納された画像データは、再び画像処理ＩＣ７に入力され、次の３つの処理が施される。
（１）デジタル信号に変換された画像データは、そのまま可逆圧縮部７ｄにおいてロスレス圧縮（可逆圧縮）され、ＲＡＷデータとしてＣＰＵバス１０に送り出される。
（２）デジタル信号に変換された画像データは、サムネイル生成部７ｃで間引き処理等のダウンサンプリングにより元の画像サイズより小さいサムネイル画像に変化され、ＣＰＵバス１０に送られる。なお、間引き処理では、例えば図１２のようにＲＡＷ画像データをブロック内平均することによりダウンサンプリングがなされる。
（３）ＪＰＥＧ圧縮するための画像を作るために、まず、画像処理部７ｂ（詳細は図２により後述する）において画像処理が施される。その結果として出力されるＹＣｂＣｒ色空間の画像データは３次元格子点データテーブル７ｅに入力される。３次元格子点データテーブル７ｅにより変換された画像データは、ＪＰＥＧ圧縮部７ｆでラスタブロック変換されてＪＰＥＧ圧縮され、ＣＰＵバス１０に送られる。
なお、本実施形態において３次元ルックアップテーブルと３次元格子点データテーブルとは同義である。
【００１７】
可逆圧縮されたＲＡＷデータとＪＰＥＧ圧縮された画像データはＣＰＵバス１０を経てメモリ９に格納される。ＣＰＵ１５はメモリ９に格納されたＲＡＷデータにＪＰＥＧ圧縮画像を付帯させてＲＡＷ画像ファイルを生成する。ＪＰＥＧ圧縮画像はＲＡＷデータのプレビュー用のデータとして付帯される。生成されたＲＡＷ画像ファイルはインターフェース１３を介して着脱可能に接続されている外部メモリ１４に格納される。以上の構成において、３次元格子点データテーブル７ｅは、ＲＡＷデータと一緒に撮影時に生成されてＲＡＷ画像ファイルに付帯されるプレビュー用のＪＰＥＧ画像を生成するためのものである。本実施形態では、後述するように、３次元格子点データテーブル７ｅの３次元格子点データを高次のマトリクス係数から生成して設定しており、３次元格子点データテーブル７ｅの元となったマトリクス係数もこのＲＡＷ画像ファイルに付帯される。
【００１８】
なお、以上のＣＰＵ１５による処理を実現するための制御プログラムはメモリ８或いはメモリ９に格納されているものとする。
【００１９】
次に、画像処理部７ｂで行わる画像処理について、図２を参照してさらに詳しく説明をする。図２は画像処理部７ｂの構成の詳細を示すブロック図である。
【００２０】
図２において、メモリ８から入力された画像データは、まずホワイトバランス処理部７ｂ１に供給される。ホワイトバランス処理部７ｂ１は、ホワイトバランス係数を用いて画像データにホワイトバランス処理を施す。なお、ホワイトバランス係数は、ＷＢ回路７ａで算出されたホワイトバランスのためのデータに基づいてＣＰＵ１５が算出したものであり、メモリ８に格納されており、必要に応じてＩＣ７のレジスタにセットされる。もしくは、予め設定されているホワイトバランス係数（例えばデイライト、タングステン、蛍光灯等の光源に応じて予め設けられたホワイトバランス係数）を用いて入力された画像データに対してホワイトバランス処理が施されてもよい。ホワイトバランス処理された画像データは、色補間部７ｂ２に入力され、色補間処理が施される。図３に示す様にＲＧＢが格子状に配列されたパターン（ａ）、（ｂ）のデータから、Ｒ、Ｇ、Ｂの３プレーン（ｃ）が作り出される。
【００２１】
次に、ＲＧＢ３プレーンそろった画像データは、マスキング処理部７ｂ３において、例えば、３×３のマトリクス演算（式１）等で色の最適化が行われる。
Ｒ’＝ｍ11×Ｒ ＋ ｍ12×Ｇ ＋ m13×Ｂ
Ｇ’＝ｍ21×Ｒ ＋ ｍ22×Ｇ ＋ m23×Ｂ
Ｂ’＝ｍ31×Ｒ ＋ ｍ32×Ｇ ＋ m33×Ｂ          …式（１）
【００２２】
画像データはマスキング処理部７ｂ３を経て、ガンマ変換部７ｂ４に供給される。ガンマ変換部７ｂ４は、画像データにガンマ変換を施す。ＹＵＶ変換部７ｂ５は、ガンマ変換部７ｂ４でガンマ変換されたＲＧＢ信号の画像データを、輝度と色差成分からなるＹＵＶ信号に変換し、Ｙ，Ｃｂ，Ｃｒの３プレーン（ｄ）を生成する。ＹＵＶ信号に変換するのは、偽色処理や、エッジ強調処理を行なうためである。
【００２３】
ＪＰＥＧ画像を作成する場合、ＹＵＶ信号のうちの輝度信号（Ｙ）は、エッジ強調回路７ｂ９でエッジ強調される。また、ＹＵＶ信号のうちの色差成分信号（ＵＶ）は、メディアンフィルタ７ｂ８で雑音処理が施される。
【００２４】
エッジ強調されたＹ信号と、雑音処理されたＵＶ信号は、次に３次元格子点データテーブル７ｅに入力され、色変換される。３次元格子点データテーブル７ｅから出力されるＹＵＶのデータはＪＰＥＧ圧縮回路７ｆでＪＰＥＧ圧縮処理される。
【００２５】
次に、３次元格子点データテーブル７ｅについて詳細に説明する。図４は３次元格子点データテーブルの一部を示す図である。ここでは、入力をＲＧＢ信号として説明しているが、図１、図２においては入力はＹＵＶ信号となっている。３次元格子点データテーブル７ｅ内でＹＵＶ信号からＲＧＢ信号に変換しなおしても良いし、３次元格子点データテーブル自体をＹＵＶで持つことも可能である。
【００２６】
入力データが〔R1, G1, B1〕＝〔155，155，140〕の場合、格子点数が９個（９グリッド）の３次元格子点データテーブルにおける位置は、図４のような８個の格子点に囲まれた位置となる。この場合、上記入力データについて単純な線形補間をすると、Ｒｅｄの値はＰ１とＰ２の位置のデータの補間と、Ｐ３とＰ４の位置のデータの補間と、Ｐ５とＰ６の位置のデータの補間と、Ｐ７とＰ８の位置のデータの補間を用いて算出することが出来る。なお、Ｐ１＝〔128，128，128〕、Ｐ２＝〔160，128，128〕である。また、Ｐ３＝〔128，160，128〕、Ｐ４＝〔160，160，128〕である。また、Ｐ５＝〔128，128，160〕、Ｐ６＝〔160，128，160〕である。また、Ｐ７＝〔128，160，160〕、Ｐ８＝〔160，160，160〕である。
【００２７】
〔128，128，128〕の格子点（Ｐ１）の値が〔130，120，120〕で、〔160，128，128〕の格子点（Ｐ２）の値が〔165，120，120〕であったとすると、〔155，128，128〕の位置の値は、
（165−130）÷（160−128）×（155−128）＋130＝159.5      …式（２）
となる。同様に他の３ヶ所による補間（Ｐ３−Ｐ４、Ｐ５−Ｐ６、Ｐ７−Ｐ８）も行い、それらの結果から〔155，155，140〕の点のＲｅｄの値が確定する。これらの計算をＧｒｅｅｎとＢｌｕｅに関しても行い、〔155，155，140〕におけるＲＧＢ値が決定する。
【００２８】
以上の計算は、非常に単純な計算であり、高次のマトリクス演算を行うよりはるかに回路規模を小さくすることが出来る。
【００２９】
例えば、３次の項までマトリクス演算をするとすると、
Ｒｅｄ＝ｍ01×Ｒ＋ｍ02×Ｇ＋ｍ03×Ｂ
＋ｍ04×Ｒ×Ｒ    ＋  ｍ05×Ｇ×Ｇ  ＋  ｍ06×Ｂ×Ｂ
＋ｍ07×Ｒ×Ｇ    ＋  ｍ08×Ｒ×Ｂ  ＋  ｍ09×Ｇ×Ｂ
＋ｍ10×Ｒ×Ｒ×Ｇ＋ｍ11×Ｒ×Ｒ×Ｂ＋ｍ12×Ｒ×Ｒ×Ｒ
＋ｍ13×Ｒ×Ｇ×Ｇ＋ｍ14×Ｇ×Ｇ×Ｂ＋ｍ15×Ｇ×Ｇ×Ｇ
＋ｍ16×Ｒ×Ｂ×Ｂ＋ｍ17×Ｇ×Ｂ×Ｂ＋ｍ18×Ｂ×Ｂ×Ｂ
＋ｍ19×Ｒ×Ｇ×Ｂ                                      …式（３）
となり、１９個の係数、４５回の掛け算、１８回の足し算を要する計算処理になってしまう。また、更にＧｒｅｅｎとＢｌｕｅも同様の回路が必要になる。
【００３０】
以上のマトリクス演算をハードウエアで実現することは可能ではあるが、回路規模が大きくなることは避けられない。そこで、本実施形態では、３次元の格子点データテーブルを直接格納するのではなく、３次元格子点データテーブルの元になる高次のマトリクス係数セットをカメラ内に格納しておく。そして、この高次のマトリクス係数セットを用いて３次元格子点データテーブルを生成する。例えば、上記のｍ01〜ｍ19のマトリクス係数セットを格納しておき、現像処理に先立って、３次元格子点データテーブルの各格子点のＲ，Ｇ，Ｂ値を式（３）に代入して各格子点のＲｅｄ値を求める。同様に、Ｇｒｅｅｎ，Ｂｌｕｅの値を各格子点について求める。このようにして、３次元格子点データが生成され、生成されたデータは３次元格子点データテーブル７ｅに設定される。
【００３１】
図５は第１実施形態の３次元格子点データテーブルの設定のための機能構成を説明するブロック図である。また、図６は、ＣＰＵ１５による３次元格子点データテーブルの設定処理を説明するフローチャートである。ステップＳ５０１においてマトリクス取得部５１はマトリクス係数セットを取得する。マトリクス係数セットは例えばメモリ９に格納されている。なお、図５では複数のマトリクス係数セットがメモリ９に格納されており、ユーザが選択した撮影シーン（景色、人物等）に応じて適切な一つのマトリクス係数セットが選択される。ステップＳ５０２において、展開部５２は、３次元格子点データテーブル７ｅの各格子点の値を、ステップＳ５０１で取得したマトリクス係数セットによって算出し、３次元格子点データテーブル７ｅに設定する。本実施形態では、３×１９のマトリクス係数セットから９グリッドで各格子点データが３つの１バイト値を含む格子点データテーブルを生成するものとする。
【００３２】
ここで、ホワイトバランス処理等の主だった画像処理を行わず、ＣＣＤやＣＭＯＳセンサ配列の出力のまま可逆圧縮等をしてデータ化したＲＡＷデータをを用いた画像ファイルを生成する場合には、ステップＳ５０３からステップＳ５０４へ進む。ステップＳ５０４では、画像処理ＩＣ７により可逆圧縮されたＲＡＷ画像データと、ＪＰＥＧ圧縮されたＪＰＥＧ画像データを生成させ、メモリ９に格納させる。画像ファイル生成部５３は、これら可逆圧縮されたＲＡＷ画像データとＪＰＥＧ圧縮されたＪＰＥＧ画像データをメモリ９から取得する。ステップＳ５０５において、画像ファイル生成部５３は、可逆圧縮されたＲＡＷデータと、ＪＰＥＧ画像データと、メモリ９から取得したマトリクス係数セットを用いてＲＡＷ画像ファイルを生成する。ここで、ＪＰＥＧ画像データとマトリクス係数セットは付帯情報としてＲＡＷ画像ファイルに記録される。ステップＳ５０６において、生成したＲＡＷ画像ファイルを外部メモリ１４に記録する。なお、図５に示されるように複数種類のマトリクス係数セットがメモリ９に格納されている場合は、ステップＳ５０５において、画像ファイル生成部５３は、全てのマトリクス係数セットを取得し、これらを付帯情報としてＲＡＷ画像ファイルに記録する。なお、３次元格子データテーブル７ｅの格子点データを生成するのに用いたマトリクス係数セットのみを付帯情報としてＲＡＷ画像ファイルに記録するようにしてもよい。
【００３３】
なお、ＲＡＷデータは、撮像素子から出力された信号をＡ／Ｄ変換後に可逆圧縮したデータを用いているが、Ａ／Ｄ変換を行わない撮像素子から得られたアナログ信号でも良い。また、少なくともホワイトバランス処理、輝度信号と色信号に分ける色分離処理、あるいは、ベイヤー配列からの出力信号を色補間処理等の主な画像処理を施さないものであれば良い。
また、ＲＡＷ画像ファイルは、ＲＡＷデータ、マトリクス係数を含む付帯情報、ＪＰＥＧ画像データが互いに関連付けられていれば、ＲＡＷ画像ファイル９のような構造に限られるものではない。
【００３４】
新たなＲＡＷ画像ファイルの生成を行う場合は上記のステップＳ５０３〜Ｓ５０６を繰り返す。ただし、撮影シーンの変更等により、使用するマトリクス係数セットが変更された場合は、ステップＳ５０１からの処理が実行され、新たなマトリクス係数セットを用いて得られた３次元格子点データが３次元格子点データテーブルに設定される。
【００３５】
以上説明したように、第１実施形態のデジタルカメラによれば、画像ファイルに３次元格子点データテーブルを記述する代わりにマトリクス係数セットを記述するので、ＲＡＷ画像ファイルのデータ量を低減できる。
【００３６】
以上、デジタルカメラ側の３次元格子点データテーブルについて説明したが、上記のマトリクス係数から３次元格子点データテーブルを生成する構成は、情報処理装置上で動作するアプリケーションにも適用することができる。
【００３７】
図７は情報処理装置の構成を示すブロック図である。情報処理装置としては一般的なパーソナルコンピュータを用いることができる。図７において、ＣＰＵ５０１はＲＯＭ５０２或いはＲＡＭ５０２に保持されたプログラムを実行することにより各処理を実現する。ＲＯＭ５０２は情報処理装置における基本入出力システムやブートプログラム等が格納されている。ＲＡＭ５０３はＣＰＵ５０１のメインメモリとして機能する。ＲＡＭ５０３には、外部記憶装置５０４にインストールされているプログラムがＣＰＵ５０１による実行のためにロードされる。ディスプレイ５０５はＣＰＵ５０１の制御下で各種表示を行う。入力装置５０６はキーボードやポインティングデバイスで構成される。インターフェース５０７は例えば、デジタルカメラの外部メモリ１４を装着可能とし、外部メモリ１４に記録されているＲＡＷ画像ファイルをＲＡＭ５０３や外部記憶装置５０４に取り込むことができる。
【００３８】
各種アプリケーションは外部記憶装置５０４にインストールされて、実行時にＲＡＭ５０７にロードされる。なお、外部記憶装置５０４としてはハードディスクが一般的である。以下では、上述のデジタルカメラによって生成されたＲＡＷ画像ファイルを処理するアプリケーションを説明する。
【００３９】
図８は情報処理装置によって実現される画像処理の機能構成を示すブロック図である。図９は情報処理装置（ＣＰＵ１５）によって実行される画像処理を説明するフローチャートである。まず、ステップＳ６０１において、上記画像ファイル生成部５３によって生成されたＲＡＷ画像ファイル５７を取得する。そして、ステップＳ６０２において、マトリクス取得部５８は、画像ファイル５７のヘッダーからマトリクス係数セット５８を取得する。上述したように、複数のマトリクス係数セットが記録されている場合は、それらのうちの一つをユーザに選択させる。例えば、アプリケーションは撮影シーンをユーザに選択させ、選択された撮影シーンに応じてマトリクス係数セットを選択する。ステップＳ６０３において、展開部５９は、マトリクス取得部５８が取得したマトリクス係数セットを用いて３次元格子点データテーブル５１２の各格子点に対応する値（３次元格子点データ）を算出する。そして、３次元格子点データテーブル５１２に３次元格子点データを設定する。なお、展開部５９は、３×１９のマトリクス係数セットから３３グリッドで各格子点データが３つの２バイト値を含む格子点データテーブルを生成するものとする。
【００４０】
ステップＳ６０４では、ＲＡＷ画像ファイル５７よりＲＡＷデータ取得部５１０でＲＡＷデータを取得し、ステップＳ６０５では取得したＲＡＷデータに対して格子点データテーブル５１２を用いた画像処理を行い処理後の画像５１３を得る。すなわち、ステップＳ６０５は画像処理部５１１や３次元格子点データテーブル５１２を用いた処理部を構成している。
【００４１】
なお、上記処理には示さなかったが、ＲＡＷ画像ファイルに書き込まれているＪＰＥＧ画像（画像ファイルのヘッダに書き込まれているとする）を用いて、当該画像のプレビュー表示が行われる。
【００４２】
上述のようなアプリケーションにおいては、３次元格子点データテーブル５１２による変換処理を高次のマトリクス演算で実現することも可能である。しかしながら、マトリクス演算には時間がかかってしまう。そこで、本実施形態では、上記処理のように、マトリクス係数セットから３次元格子点データテーブルを生成し、これを用いることによって、処理時間を短縮する。例えば、３３グリッドの３次元格子点データテーブルならば、３３×３３×３３＝３５９３７ポイント分の計算をＲＧＢで行うことによって３次元格子点データテーブルを作り出すことが出来る。１０００万画素のデータに対してマトリクス演算をする場合に比べて、３００分の１の演算時間で終わる。よって、その後に３次元格子点データテーブルを用いた変換処理を行なったとしても、すなわち３次元格子点データテーブルの生成とそれを利用した変換処理を行なったとしても、計算時間を短くすることが出来る。
【００４３】
また、上述のような３次元格子点データテーブル５１２をデータとして持つようにＲＡＷ画像ファイルを構成した場合、１６ビット精度で格納すると、データ量は２１０Ｋバイトを超えてしまう。更に、このような３次元格子点データを複数セット分カメラ内のメモリに保存し、撮影データごとに全ての格子点データを付帯情報としてＲＡＷ画像ファイルとして書き込む場合、画像ファイルの書き込みに非常に時間を要してしまうことは明らかである。
【００４４】
上記構成に対して、本実施形態によれば、３次元格子点データテーブルの元となる高次のマトリクス係数セット（例えば３×１９のマトリクス係数）を格納することによって、画像ファイルのデータ量を減らし、書き込み時間の短縮を図ることができる。また、マトリクス係数からは、必要に応じたグリッド数の３次元格子点データテーブルを作り出すことが出来る。例えば、カメラ内の３次元格子点データテーブルは１次元あたり９点とし、アプリケーションでは同じマトリクス係数セットから１次元あたり３３点の３次元格子点データテーブルを生成するように構成できる。従って、アプリケーションにおいて高い精度を維持できる。カメラ内部とアプリケーションにおける色再現に精度の差は現れることにはなるが、有効な使い方である。
【００４５】
［第２実施形態］
図１０を用いて、第２実施形態によるデジタルカメラの画像処理について説明する。
【００４６】
デジタルカメラは、カメラ自身で現像処理をし、ＪＰＥＧデータを生成する場合と、ＲＡＷデータと呼ばれるデータを生成する場合がある。ここでは、ＲＡＷデータとは、例えば、ホワイトバランス処理等の主だった画像処理を行わず、ＣＣＤやＣＭＯＳセンサ配列の出力のまま可逆圧縮等をしてデータ化したものである。このＲＡＷデータに対する画像処理はカメラ内の画像処理と全く同じである場合もあるが、特にその必要も無い。ハードウエアではできない画像処理をアプリケーション上で達成させ、よりよい画像を提供することも可能である。第１実施形態で示したアプリケーションソフトでは３次元格子点データテーブルの格子点数をカメラのハードウエアと同じにする必要がないことを示したが、これもその一例である。
【００４７】
しかしながら、アプリケーションソフトでは、ビット精度は簡単に上げられるが、処理速度は、明らかにハードウエアより遅くなる。
【００４８】
そこで、ハードウエアとは別の手段で高速化を行い、さらに不具合を対策するといった手段を施すことによって、アプリケーションの画像処理をカメラ内部の画像処理と異ならせることができる。一方、カメラ内部とアプリケーションで画像処理が異なる場合、両者で共通の３次元格子点データもしくは共通の高次のマトリクスデータを用いたのでは、違った処理結果になってしまう可能性がある。そこで、図１０のメモリ９に示すように、カメラ内データにカメラ内部用の３次元格子点データ（９ａ）とアプリケーションソフト用の３次元の格子点テーブルデータの元になる高次のマトリクス係数セット（９ｂ）を対応させて格納しておく。デジタルカメラ本体から出力されるＪＰＥＧ画像と同じ画像をアプリケーションで出力できるように、マトリクス係数セットは設定されている。
【００４９】
従って第２実施形態のデジタルカメラ（ＣＰＵ１５）による処理は図１０、図１１に示されるようになる。すなわち、まずステップＳ７０１において、データ設定部６１は、メモリ９から使用すべき３次元格子点データを取得し、３次元格子点データテーブル７ｅにセットする。複数の３次元格子点データが存在する場合は、第１実施形態と同様に、例えばユーザが選択した撮影シーンに応じて使用すべき３次元格子点データが選択される。３次元格子点データはメモリ９に、図１０に示されるように保持されており、３次元格子点データとマトリクス係数セットが対応付けられている。
【００５０】
ＲＡＷデータを可逆圧縮したデータを用いた画像ファイルを生成する場合、処理はステップＳ７０２からステップＳ７０３へ進む。ステップＳ７０３において、画像ファイル生成部６２は、可逆圧縮されたＲＡＷデータと、ＪＰＥＧ圧縮された画像データをメモリ９から取得する。可逆圧縮されたＲＡＷデータとＪＰＥＧ圧縮された画像データは、上述したように画像処理ＩＣ７によって生成され、メモリ９に格納されている。ステップＳ７０４では、画像ファイル生成部６２がＪＰＥＧ圧縮に用いられた３次元格子点データテーブル７ｅに対応するマトリクス係数をメモリ９から取得する。そして、ステップＳ７０５において、画像ファイル生成部６２は可逆圧縮されたＲＡＷデータとＪＰＥＧ圧縮された画像データと、ステップＳ７０４で取得したマトリクス係数を用いて画像ファイルを生成する。そして、ステップＳ７０６において、生成した画像ファイルを外部メモリ１４に記録する。なお、メモリ９に複数のマトリクス係数が存在する場合は、第１実施形態と同様、それら全てのマトリクス係数をＲＡＷ画像ファイルに付帯させる。
【００５１】
新たなＲＡＷ画像ファイルの生成を行う場合は上記のステップＳ７０２〜Ｓ７０６を繰り返す。ただし、撮影シーンの変更等により使用する３次元格子点データテーブルが変更された場合は、ステップＳ７０１からの処理を実行し、新たな３次元格子点データを用いて３次元格子点データテーブルをセットする。
【００５２】
以上のように、第２実施形態では、画像信号を画像処理部７ｂで画像処理し、３次元格子点データテーブル７ｅに設定するべき３次元格子点データをメモリ９から取得する。第１実施形態のようにマトリクス係数セットから３次元格子点データを算出する必要がないので、カメラにおける画像の格納処理が高速になる。一方、ＲＡＷ画像ファイルには第１実施形態と同様にマトリクス係数が格納される。従って、情報処理装置側のアプリケーションソフトは第１実施形態と同様の動作をすることになる。
【００５３】
以上のように、第２実施形態によれば、異なる画像処理方法に対しても、一対になった３次元格子点データと高次のマトリクスデータをそれぞれの画像処理で用いることにより、同じ色再現の画像を得ることが可能になる。
【００５４】
なお、第２実施形態において、ＲＡＷ画像ファイルにＪＰＥＧ画像とマトリクス係数を付帯させているが、更にＪＰＥＧ画像の生成に用いた３次元格子点データを記録するようにしてよい。３次元格子点データを付帯させることにより、アプリケーションはＪＰＥＧ画像を生成するのに用いられた３次元格子点データを知ることができるとともに、それを使用、再現できるようになる。
【００５５】
以上説明したように、第１実施形態によれば、３次元格子点データテーブルの元となる高次のマトリクスの演算を行うことによって、必要とされる３次元格子点データテーブルの格子点データが算出される。このため、３次元格子点データテーブルを有するデジタルカメラにおいて、３次元格子点データテーブルに用いる格子点データを直接保持する必要がなくなる。また、３次元格子点データテーブルによって変換されるデータが格子点の中の場合、入力データを含む周りの格子点から計算されるので、格子点の間隔を粗くすることができる。このため、カメラ内に格納しておくデータを最小限にすることができる。また、第２実施形態によれば、カメラ内部で利用する３次元格子点データとＲＡＷ画像ファイルに付帯すべきマトリクス係数セットを保持するので、カメラ内部で３次元格子点データを算出する必要がなくなる。また、アプリケーションで利用するマトリクス係数セットとカメラ内部で利用する３次元格子点データテーブルを、アプリケーションとカメラ内部のそれぞれの画像処理に適合させることができる。そのため、両画像処理で同じ色再現の画像を得ることが可能になる。
【００５６】
また、マトリクス係数は、センサ出力の偏り、カラーフィルタ特性などのカメラの個体や機種に依存したデータを含んでいる。従って、個体や機種の特性をマトリクス係数によって吸収しているため、ユーザは、カメラの個体や機種に依存した特性を考慮することなく、好みの撮像シーンの選択するだけで適切な色再現が行われる。アプリケーションソフトでは、所定のチャートを撮影した場合と同じ画像が得られることになる。
【００５７】
なお、３次元格子点データテーブルのデータはＲｅｄ、Ｇｒｅｅｎ、ＢｌｕｅやＹ．Ｕ．Ｖの他、Ｌ*、ａ*、ｂ*やＸ、Ｙ、Ｚであってもよい。また、３次元格子点データテーブル７ｅは、色再現に関する計算処理を行う処理の最後に位置しているが、他の変換処理にも上述したような３次元格子点データテーブルを用いることができることはいうまでもない。また、デジタルカメラから情報処理装置への画像ファイルの受け渡しを外部メモリを用いて行う構成を示したが、ＵＳＢ等の通信手段を用いて画像ファイルを転送するようにしてもよい。また、情報処理装置としてプリンタを用いてもよい。更に、上記各実施形態では３次元の格子点データテーブル（３次元ルックアップテーブル）への本発明の適用を説明したが、格子点データテーブルの次元数は３次元に限られるものではない。例えば、４次元以上の、あるいは２次元や１次元の格子点データテーブル（２次元ルックアップテーブル、１次元ルックアップテーブル）に本発明が適用可能であることは明らかである。
【００５８】
以上、実施形態を詳述したが、本発明は、例えば、システム、装置、方法、プログラムもしくは記憶媒体等としての実施態様をとることが可能である。具体的には、複数の機器から構成されるシステムに適用しても良いし、また、一つの機器からなる装置に適用しても良い。
【００５９】
尚、本発明は、ソフトウェアのプログラムをシステム或いは装置に直接或いは遠隔から供給し、そのシステム或いは装置のコンピュータが該供給されたプログラムコードを読み出して実行することによって前述した実施形態の機能が達成される場合を含む。この場合、供給されるプログラムは実施形態で図に示したフローチャートに対応したプログラムである。
【００６０】
従って、本発明の機能処理をコンピュータで実現するために、該コンピュータにインストールされるプログラムコード自体も本発明を実現するものである。つまり、本発明は、本発明の機能処理を実現するためのコンピュータプログラム自体も含まれる。
【００６１】
その場合、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより実行されるプログラム、ＯＳに供給するスクリプトデータ等の形態であっても良い。
【００６２】
プログラムを供給するための記録媒体としては以下が挙げられる。例えば、フロッピー（登録商標）ディスク、ハードディスク、光ディスク、光磁気ディスク、ＭＯ、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷ、磁気テープ、不揮発性のメモリカード、ＲＯＭ、ＤＶＤ（ＤＶＤ−ＲＯＭ，ＤＶＤ−Ｒ）などである。
【００６３】
その他、プログラムの供給方法としては、クライアントコンピュータのブラウザを用いてインターネットのホームページに接続し、該ホームページから本発明のコンピュータプログラムをハードディスク等の記録媒体にダウンロードすることが挙げられる。この場合、ダウンロードされるプログラムは、圧縮され自動インストール機能を含むファイルであってもよい。また、本発明のプログラムを構成するプログラムコードを複数のファイルに分割し、それぞれのファイルを異なるホームページからダウンロードすることによっても実現可能である。つまり、本発明の機能処理をコンピュータで実現するためのプログラムファイルを複数のユーザに対してダウンロードさせるＷＷＷサーバも、本発明に含まれるものである。
【００６４】
また、本発明のプログラムを暗号化してＣＤ−ＲＯＭ等の記憶媒体に格納してユーザに配布するという形態をとることもできる。この場合、所定の条件をクリアしたユーザに、インターネットを介してホームページから暗号を解く鍵情報をダウンロードさせ、その鍵情報を使用して暗号化されたプログラムを実行し、プログラムをコンピュータにインストールさせるようにもできる。
【００６５】
また、コンピュータが、読み出したプログラムを実行することによって、前述した実施形態の機能が実現される他、そのプログラムの指示に基づき、コンピュータ上で稼動しているＯＳなどとの協働で実施形態の機能が実現されてもよい。この場合、ＯＳなどが、実際の処理の一部または全部を行ない、その処理によって前述した実施形態の機能が実現される。
【００６６】
さらに、記録媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれて前述の実施形態の機能の一部或いは全てが実現されてもよい。この場合、機能拡張ボードや機能拡張ユニットにプログラムが書き込まれた後、そのプログラムの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行なう。
【図１】
2011155669.tif 000003
【図２】
2011155669.tif 000004
【図３】
2011155669.tif 000005
【図４】
2011155669.tif 000006
【図５】
2011155669.tif 000007
【図６】
2011155669.tif 000008
【図７】
2011155669.tif 000009
【図８】
2011155669.tif 000010
【図９】
2011155669.tif 000011
【図１０】
2011155669.tif 000012
【図１１】
2011155669.tif 000013
【図１２】
2011155669.tif 000014