説明

撮像装置及び情報処理装置及び画像処理方法

【課題】格子点データテーブルを用いた画像処理を実行する撮像装置において、格子点データテーブルの保持等に必要なメモリ量を低減させる。
【解決手段】撮影により得られた画像をデジタル処理するデジタルカメラは、3次元格子点データテーブルを用いて画像データの変換処理を行なう3次元格子データテーブルを有する。デジタルカメラは、上記変換処理をマトリクス演算により実現するためのマトリクス係数セットを保持し、このマトリクス係数セットを用いて3次元格子点データテーブルの各格子点の値を算出し、算出された値を上記変換処理で用いられる3次元格子データテーブルに設定する。そして、上記変換処理による変換後の画像データを非可逆圧縮して得られた圧縮画像データと、保持されているマトリクス係数とを付帯情報としたRAW画像ファイルが生成される。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、デジタルカメラ等の撮像装置における画像処理に関する。
【背景技術】
【0002】
一般に、デジタルカメラ内部の画像処理における各種変換処理(例えば、ガンマ変換等)の手法として、3×3のマトリクス演算や1次元のルックアップテーブルが用いられている。これら変換処理は、ハードウエアのメモリやゲート数を削減してチップ自身を小さくしたり、省エネルギーのために規模を小さくするためには、好適な手法である。しかしながら、近年、ハードウエアの微細化が進み、ICの電源電圧も下げられたことによって、チップ自身の小サイズ化、より強力な省エネルギー化を実現することが可能になった。その結果、複雑な回路や大量のメモリをIC内に搭載することが可能となっている。そのため、デジタルカメラにおいて、3次元のルックアップテーブル(以下、3次元格子点データテーブルという)や高次のマトリクス演算等を搭載し、カメラ内部の画像処理において複雑な画像処理を実行できる可能性が出てきている。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】米国特許第5073818号明細書
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、IC内のハードウエアでは、格子点の数やビット数に制約があり、アプリケーションで行うような、高精度の画像処理は行うことが出来ないことが多い。また、例えばアプリケーションでRAW画像データの現像処理を行う場合、撮影ファイルにルックアップテーブルのデータを記録しておく必要がある。このため、RAW画像のファイルサイズが大きくなってしまう。例えば、mグリッドの3次元格子点データテーブルでは、1次元あたりのグリッド数がm個であるので、全グリッド数はm3個となる。従って、各グリッドに3つのnバイト値が割り当てられたmグリッドの3次元格子点データテーブル(3次元ルックアップテーブル)は、m3×nバイトの容量を必要とする。具体的には、9グリッドの8ビットの3次元格子点データテーブルには、2187(=9×9×9×3)バイトの容量が必要になる。これに対して、33グリッド16ビットの3次元格子点データテーブルでは、215622(=33×33×33×2×3)バイトの容量が必要となり、実に100倍の容量が必要となる。また、例えばユーザによって選択可能な3次元ルックアップテーブルを複数持っている場合は、後の現像処理のために、全ての3次元ルックアップテーブルをファイルに記録しておくことが望ましい。そのため、ファイルサイズは更に膨大になり、メモリに記録するのに時間がかかってしまう。結果として、カメラの連続撮影枚数が制限されてしまう。
【0005】
特許文献1には、画像処理を行うためのルックアップテーブル回路を持つプリンタが記載されている。特許文献1によれば、ルックアップデータを全て格納するとファイルサイズが大きくなるため、補正関数から実際に画像を変換するためのルックアップテーブルが作成されることが記載されている。
【0006】
しかしながら、画像処理をビット精度よく行うために、ルックアップテーブルで全てのデータを作り上げようとすると、ルックアップテーブルのデータサイズが膨大になり、回路規模も大きくなってしまう。また、画像処理をビット精度よく行うために、高次のマトリクス演算を用いて画像処理を行なおうとすれば、掛け算器が大量に必要となり、ビット数が多くなるとゲート規模が著しく増大してしまう。実際には2次のマトリクス演算まで使われるとしても、3次元格子点データテーブルを用いた処理よりも画像処理の自由度が制限されてしまう。
【0007】
また、カメラ内の画像処理と異なるアルゴリズムの画像処理をアプリケーションで行う場合、あらかじめ、同じような処理結果になる係数をカメラ内にも持っておく必要がある。この場合、カメラ内の画像処理には用いない3次元格子点データテーブルのデータを大量にカメラ内のROMに記憶しておかなければならず、メモリの利用効率を著しく低下させてしまう。
【0008】
本発明は、上記の課題に鑑みてなされたものであり、格子点データテーブルを用いた画像処理を実行する撮像装置において、格子点データテーブルの保持等に必要なメモリ量を低減させることを目的とする。
【課題を解決するための手段】
【0009】
上記の目的を達成するための本発明による撮像装置は以下の構成を備える。即ち、
撮影により得られた画像をデジタル処理する撮像装置であって、
格子点データテーブルを用いて画像データの変換処理を行なう変換手段と、
前記変換処理をマトリクス演算により実現するためのマトリクス係数セットを保持する保持手段と、
前記マトリクス係数セットを用いて格子点データテーブルの各格子点の値を算出し、前記変換手段が用いる格子点データテーブルに設定する設定手段とを備える。
【発明の効果】
【0010】
本発明によれば、格子点データテーブルを用いた画像処理を実行する撮像装置において、格子点データテーブルの保持等に必要なメモリ量を低減させることができる。
【図面の簡単な説明】
【0011】
【図1】第1実施形態に係る撮像装置の全体を示すブロック図である。
【図2】図1の撮像装置における画像処理部7bの詳細を示すブロック図である。
【図3】第1実施形態に係る画像処理の色補間を示す図である。
【図4】第1実施形態に係る3次元格子点データテーブルを説明する図である。
【図5】第1実施形態に係るRAW画像ファイルの生成のための機能構成を示すブロック図である。
【図6】第1実施形態に係るRAW画像ファイルの生成処理を示すフローチャートである。
【図7】第1実施形態に係る情報処理装置の構成を示すブロック図である。
【図8】第1実施形態に係る情報処理装置のRAWデータ処理のための機能構成を示すブロック図である。
【図9】第1実施形態に係る情報処理装置のRAW画像ファイル処理を示すフローチャートである。
【図10】第2実施形態に係るRAW画像ファイルの生成のための機能構成を示すブロック図である。
【図11】第2実施形態に係るRAW画像ファイルの生成処理を示すフローチャートである。
【図12】第1実施形態に係るサムネイル画像生成を説明する図である。
【発明を実施するための形態】
【0012】
以下、添付の図面を参照して本発明の好適な実施形態を説明する。
【0013】
[第1実施形態]
図1は第1実施形態に係るデジタルカメラの構成を示すブロック図である。図1において、撮影レンズ1を通ってきた光は、赤外カットフィルタ2、光学LPF3を通過して撮像素子4に結像する。撮像素子4としては、CCDやCMOSセンサ等が挙げられる。一般に撮像素子4の受光面にはフォトダイオードによるセンサが平面的に配置されている。そして、例えば、R(赤)・G(緑)・B(青)の各原色カラーフィルタが所定の配列で配置されたカラーフィルタにより、各センサに1色のカラーが割り当てられる。或いは、撮像素子4を原色の数だけ用意して、各撮像素子に1色ずつ割り当てる形態でもよい。
【0014】
撮像素子4に結像された光は、各センサにおいて入射光量に応じた量の電荷に変換される。タイミングジェネレータ16が発生する信号は、水平駆動用ドライバ17と垂直駆動用ドライバ18に供給される。水平駆動用ドライバ17と垂直駆動用ドライバ18はタイミングジェネレータ16からの信号に従って撮像素子4に駆動信号を供給する。この駆動信号に従って撮像素子4からセンサに蓄積された電荷が伝送され、順次電圧信号に変換される。
【0015】
変換された電圧信号は、相関二重サンプリング/ゲイン調整部5(以下CDS/AGCと呼ぶ)でサンプリングされ、ゲイン調整された後、A/D変換器6でデジタル信号に変換される。A/D変換器6でデジタル信号に変換された画像データは、画像処理IC7に入力される。画像処理IC7では、まず、WB回路7aが入力された画像データに対してホワイトバランスのためのデータを算出する。ホワイトバランスのためのデータと画像データはいったんメモリ8に格納される。
【0016】
メモリ8に格納された画像データは、再び画像処理IC7に入力され、次の3つの処理が施される。
(1)デジタル信号に変換された画像データは、そのまま可逆圧縮部7dにおいてロスレス圧縮(可逆圧縮)され、RAWデータとしてCPUバス10に送り出される。
(2)デジタル信号に変換された画像データは、サムネイル生成部7cで間引き処理等のダウンサンプリングにより元の画像サイズより小さいサムネイル画像に変化され、CPUバス10に送られる。なお、間引き処理では、例えば図12のようにRAW画像データをブロック内平均することによりダウンサンプリングがなされる。
(3)JPEG圧縮するための画像を作るために、まず、画像処理部7b(詳細は図2により後述する)において画像処理が施される。その結果として出力されるYCbCr色空間の画像データは3次元格子点データテーブル7eに入力される。3次元格子点データテーブル7eにより変換された画像データは、JPEG圧縮部7fでラスタブロック変換されてJPEG圧縮され、CPUバス10に送られる。
なお、本実施形態において3次元ルックアップテーブルと3次元格子点データテーブルとは同義である。
【0017】
可逆圧縮されたRAWデータとJPEG圧縮された画像データはCPUバス10を経てメモリ9に格納される。CPU15はメモリ9に格納されたRAWデータにJPEG圧縮画像を付帯させてRAW画像ファイルを生成する。JPEG圧縮画像はRAWデータのプレビュー用のデータとして付帯される。生成されたRAW画像ファイルはインターフェース13を介して着脱可能に接続されている外部メモリ14に格納される。以上の構成において、3次元格子点データテーブル7eは、RAWデータと一緒に撮影時に生成されてRAW画像ファイルに付帯されるプレビュー用のJPEG画像を生成するためのものである。本実施形態では、後述するように、3次元格子点データテーブル7eの3次元格子点データを高次のマトリクス係数から生成して設定しており、3次元格子点データテーブル7eの元となったマトリクス係数もこのRAW画像ファイルに付帯される。
【0018】
なお、以上のCPU15による処理を実現するための制御プログラムはメモリ8或いはメモリ9に格納されているものとする。
【0019】
次に、画像処理部7bで行わる画像処理について、図2を参照してさらに詳しく説明をする。図2は画像処理部7bの構成の詳細を示すブロック図である。
【0020】
図2において、メモリ8から入力された画像データは、まずホワイトバランス処理部7b1に供給される。ホワイトバランス処理部7b1は、ホワイトバランス係数を用いて画像データにホワイトバランス処理を施す。なお、ホワイトバランス係数は、WB回路7aで算出されたホワイトバランスのためのデータに基づいてCPU15が算出したものであり、メモリ8に格納されており、必要に応じてIC7のレジスタにセットされる。もしくは、予め設定されているホワイトバランス係数(例えばデイライト、タングステン、蛍光灯等の光源に応じて予め設けられたホワイトバランス係数)を用いて入力された画像データに対してホワイトバランス処理が施されてもよい。ホワイトバランス処理された画像データは、色補間部7b2に入力され、色補間処理が施される。図3に示す様にRGBが格子状に配列されたパターン(a)、(b)のデータから、R、G、Bの3プレーン(c)が作り出される。
【0021】
次に、RGB3プレーンそろった画像データは、マスキング処理部7b3において、例えば、3×3のマトリクス演算(式1)等で色の最適化が行われる。
R’=m11×R + m12×G + m13×B
G’=m21×R + m22×G + m23×B
B’=m31×R + m32×G + m33×B …式(1)
【0022】
画像データはマスキング処理部7b3を経て、ガンマ変換部7b4に供給される。ガンマ変換部7b4は、画像データにガンマ変換を施す。YUV変換部7b5は、ガンマ変換部7b4でガンマ変換されたRGB信号の画像データを、輝度と色差成分からなるYUV信号に変換し、Y,Cb,Crの3プレーン(d)を生成する。YUV信号に変換するのは、偽色処理や、エッジ強調処理を行なうためである。
【0023】
JPEG画像を作成する場合、YUV信号のうちの輝度信号(Y)は、エッジ強調回路7b9でエッジ強調される。また、YUV信号のうちの色差成分信号(UV)は、メディアンフィルタ7b8で雑音処理が施される。
【0024】
エッジ強調されたY信号と、雑音処理されたUV信号は、次に3次元格子点データテーブル7eに入力され、色変換される。3次元格子点データテーブル7eから出力されるYUVのデータはJPEG圧縮回路7fでJPEG圧縮処理される。
【0025】
次に、3次元格子点データテーブル7eについて詳細に説明する。図4は3次元格子点データテーブルの一部を示す図である。ここでは、入力をRGB信号として説明しているが、図1、図2においては入力はYUV信号となっている。3次元格子点データテーブル7e内でYUV信号からRGB信号に変換しなおしても良いし、3次元格子点データテーブル自体をYUVで持つことも可能である。
【0026】
入力データが〔R1, G1, B1〕=〔155,155,140〕の場合、格子点数が9個(9グリッド)の3次元格子点データテーブルにおける位置は、図4のような8個の格子点に囲まれた位置となる。この場合、上記入力データについて単純な線形補間をすると、Redの値はP1とP2の位置のデータの補間と、P3とP4の位置のデータの補間と、P5とP6の位置のデータの補間と、P7とP8の位置のデータの補間を用いて算出することが出来る。なお、P1=〔128,128,128〕、P2=〔160,128,128〕である。また、P3=〔128,160,128〕、P4=〔160,160,128〕である。また、P5=〔128,128,160〕、P6=〔160,128,160〕である。また、P7=〔128,160,160〕、P8=〔160,160,160〕である。
【0027】
〔128,128,128〕の格子点(P1)の値が〔130,120,120〕で、〔160,128,128〕の格子点(P2)の値が〔165,120,120〕であったとすると、〔155,128,128〕の位置の値は、
(165−130)÷(160−128)×(155−128)+130=159.5 …式(2)
となる。同様に他の3ヶ所による補間(P3−P4、P5−P6、P7−P8)も行い、それらの結果から〔155,155,140〕の点のRedの値が確定する。これらの計算をGreenとBlueに関しても行い、〔155,155,140〕におけるRGB値が決定する。
【0028】
以上の計算は、非常に単純な計算であり、高次のマトリクス演算を行うよりはるかに回路規模を小さくすることが出来る。
【0029】
例えば、3次の項までマトリクス演算をするとすると、
Red=m01×R+m02×G+m03×B
+m04×R×R + m05×G×G + m06×B×B
+m07×R×G + m08×R×B + m09×G×B
+m10×R×R×G+m11×R×R×B+m12×R×R×R
+m13×R×G×G+m14×G×G×B+m15×G×G×G
+m16×R×B×B+m17×G×B×B+m18×B×B×B
+m19×R×G×B …式(3)
となり、19個の係数、45回の掛け算、18回の足し算を要する計算処理になってしまう。また、更にGreenとBlueも同様の回路が必要になる。
【0030】
以上のマトリクス演算をハードウエアで実現することは可能ではあるが、回路規模が大きくなることは避けられない。そこで、本実施形態では、3次元の格子点データテーブルを直接格納するのではなく、3次元格子点データテーブルの元になる高次のマトリクス係数セットをカメラ内に格納しておく。そして、この高次のマトリクス係数セットを用いて3次元格子点データテーブルを生成する。例えば、上記のm01〜m19のマトリクス係数セットを格納しておき、現像処理に先立って、3次元格子点データテーブルの各格子点のR,G,B値を式(3)に代入して各格子点のRed値を求める。同様に、Green,Blueの値を各格子点について求める。このようにして、3次元格子点データが生成され、生成されたデータは3次元格子点データテーブル7eに設定される。
【0031】
図5は第1実施形態の3次元格子点データテーブルの設定のための機能構成を説明するブロック図である。また、図6は、CPU15による3次元格子点データテーブルの設定処理を説明するフローチャートである。ステップS501においてマトリクス取得部51はマトリクス係数セットを取得する。マトリクス係数セットは例えばメモリ9に格納されている。なお、図5では複数のマトリクス係数セットがメモリ9に格納されており、ユーザが選択した撮影シーン(景色、人物等)に応じて適切な一つのマトリクス係数セットが選択される。ステップS502において、展開部52は、3次元格子点データテーブル7eの各格子点の値を、ステップS501で取得したマトリクス係数セットによって算出し、3次元格子点データテーブル7eに設定する。本実施形態では、3×19のマトリクス係数セットから9グリッドで各格子点データが3つの1バイト値を含む格子点データテーブルを生成するものとする。
【0032】
ここで、ホワイトバランス処理等の主だった画像処理を行わず、CCDやCMOSセンサ配列の出力のまま可逆圧縮等をしてデータ化したRAWデータをを用いた画像ファイルを生成する場合には、ステップS503からステップS504へ進む。ステップS504では、画像処理IC7により可逆圧縮されたRAW画像データと、JPEG圧縮されたJPEG画像データを生成させ、メモリ9に格納させる。画像ファイル生成部53は、これら可逆圧縮されたRAW画像データとJPEG圧縮されたJPEG画像データをメモリ9から取得する。ステップS505において、画像ファイル生成部53は、可逆圧縮されたRAWデータと、JPEG画像データと、メモリ9から取得したマトリクス係数セットを用いてRAW画像ファイルを生成する。ここで、JPEG画像データとマトリクス係数セットは付帯情報としてRAW画像ファイルに記録される。ステップS506において、生成したRAW画像ファイルを外部メモリ14に記録する。なお、図5に示されるように複数種類のマトリクス係数セットがメモリ9に格納されている場合は、ステップS505において、画像ファイル生成部53は、全てのマトリクス係数セットを取得し、これらを付帯情報としてRAW画像ファイルに記録する。なお、3次元格子データテーブル7eの格子点データを生成するのに用いたマトリクス係数セットのみを付帯情報としてRAW画像ファイルに記録するようにしてもよい。
【0033】
なお、RAWデータは、撮像素子から出力された信号をA/D変換後に可逆圧縮したデータを用いているが、A/D変換を行わない撮像素子から得られたアナログ信号でも良い。また、少なくともホワイトバランス処理、輝度信号と色信号に分ける色分離処理、あるいは、ベイヤー配列からの出力信号を色補間処理等の主な画像処理を施さないものであれば良い。
また、RAW画像ファイルは、RAWデータ、マトリクス係数を含む付帯情報、JPEG画像データが互いに関連付けられていれば、RAW画像ファイル9のような構造に限られるものではない。
【0034】
新たなRAW画像ファイルの生成を行う場合は上記のステップS503〜S506を繰り返す。ただし、撮影シーンの変更等により、使用するマトリクス係数セットが変更された場合は、ステップS501からの処理が実行され、新たなマトリクス係数セットを用いて得られた3次元格子点データが3次元格子点データテーブルに設定される。
【0035】
以上説明したように、第1実施形態のデジタルカメラによれば、画像ファイルに3次元格子点データテーブルを記述する代わりにマトリクス係数セットを記述するので、RAW画像ファイルのデータ量を低減できる。
【0036】
以上、デジタルカメラ側の3次元格子点データテーブルについて説明したが、上記のマトリクス係数から3次元格子点データテーブルを生成する構成は、情報処理装置上で動作するアプリケーションにも適用することができる。
【0037】
図7は情報処理装置の構成を示すブロック図である。情報処理装置としては一般的なパーソナルコンピュータを用いることができる。図7において、CPU501はROM502或いはRAM502に保持されたプログラムを実行することにより各処理を実現する。ROM502は情報処理装置における基本入出力システムやブートプログラム等が格納されている。RAM503はCPU501のメインメモリとして機能する。RAM503には、外部記憶装置504にインストールされているプログラムがCPU501による実行のためにロードされる。ディスプレイ505はCPU501の制御下で各種表示を行う。入力装置506はキーボードやポインティングデバイスで構成される。インターフェース507は例えば、デジタルカメラの外部メモリ14を装着可能とし、外部メモリ14に記録されているRAW画像ファイルをRAM503や外部記憶装置504に取り込むことができる。
【0038】
各種アプリケーションは外部記憶装置504にインストールされて、実行時にRAM507にロードされる。なお、外部記憶装置504としてはハードディスクが一般的である。以下では、上述のデジタルカメラによって生成されたRAW画像ファイルを処理するアプリケーションを説明する。
【0039】
図8は情報処理装置によって実現される画像処理の機能構成を示すブロック図である。図9は情報処理装置(CPU15)によって実行される画像処理を説明するフローチャートである。まず、ステップS601において、上記画像ファイル生成部53によって生成されたRAW画像ファイル57を取得する。そして、ステップS602において、マトリクス取得部58は、画像ファイル57のヘッダーからマトリクス係数セット58を取得する。上述したように、複数のマトリクス係数セットが記録されている場合は、それらのうちの一つをユーザに選択させる。例えば、アプリケーションは撮影シーンをユーザに選択させ、選択された撮影シーンに応じてマトリクス係数セットを選択する。ステップS603において、展開部59は、マトリクス取得部58が取得したマトリクス係数セットを用いて3次元格子点データテーブル512の各格子点に対応する値(3次元格子点データ)を算出する。そして、3次元格子点データテーブル512に3次元格子点データを設定する。なお、展開部59は、3×19のマトリクス係数セットから33グリッドで各格子点データが3つの2バイト値を含む格子点データテーブルを生成するものとする。
【0040】
ステップS604では、RAW画像ファイル57よりRAWデータ取得部510でRAWデータを取得し、ステップS605では取得したRAWデータに対して格子点データテーブル512を用いた画像処理を行い処理後の画像513を得る。すなわち、ステップS605は画像処理部511や3次元格子点データテーブル512を用いた処理部を構成している。
【0041】
なお、上記処理には示さなかったが、RAW画像ファイルに書き込まれているJPEG画像(画像ファイルのヘッダに書き込まれているとする)を用いて、当該画像のプレビュー表示が行われる。
【0042】
上述のようなアプリケーションにおいては、3次元格子点データテーブル512による変換処理を高次のマトリクス演算で実現することも可能である。しかしながら、マトリクス演算には時間がかかってしまう。そこで、本実施形態では、上記処理のように、マトリクス係数セットから3次元格子点データテーブルを生成し、これを用いることによって、処理時間を短縮する。例えば、33グリッドの3次元格子点データテーブルならば、33×33×33=35937ポイント分の計算をRGBで行うことによって3次元格子点データテーブルを作り出すことが出来る。1000万画素のデータに対してマトリクス演算をする場合に比べて、300分の1の演算時間で終わる。よって、その後に3次元格子点データテーブルを用いた変換処理を行なったとしても、すなわち3次元格子点データテーブルの生成とそれを利用した変換処理を行なったとしても、計算時間を短くすることが出来る。
【0043】
また、上述のような3次元格子点データテーブル512をデータとして持つようにRAW画像ファイルを構成した場合、16ビット精度で格納すると、データ量は210Kバイトを超えてしまう。更に、このような3次元格子点データを複数セット分カメラ内のメモリに保存し、撮影データごとに全ての格子点データを付帯情報としてRAW画像ファイルとして書き込む場合、画像ファイルの書き込みに非常に時間を要してしまうことは明らかである。
【0044】
上記構成に対して、本実施形態によれば、3次元格子点データテーブルの元となる高次のマトリクス係数セット(例えば3×19のマトリクス係数)を格納することによって、画像ファイルのデータ量を減らし、書き込み時間の短縮を図ることができる。また、マトリクス係数からは、必要に応じたグリッド数の3次元格子点データテーブルを作り出すことが出来る。例えば、カメラ内の3次元格子点データテーブルは1次元あたり9点とし、アプリケーションでは同じマトリクス係数セットから1次元あたり33点の3次元格子点データテーブルを生成するように構成できる。従って、アプリケーションにおいて高い精度を維持できる。カメラ内部とアプリケーションにおける色再現に精度の差は現れることにはなるが、有効な使い方である。
【0045】
[第2実施形態]
図10を用いて、第2実施形態によるデジタルカメラの画像処理について説明する。
【0046】
デジタルカメラは、カメラ自身で現像処理をし、JPEGデータを生成する場合と、RAWデータと呼ばれるデータを生成する場合がある。ここでは、RAWデータとは、例えば、ホワイトバランス処理等の主だった画像処理を行わず、CCDやCMOSセンサ配列の出力のまま可逆圧縮等をしてデータ化したものである。このRAWデータに対する画像処理はカメラ内の画像処理と全く同じである場合もあるが、特にその必要も無い。ハードウエアではできない画像処理をアプリケーション上で達成させ、よりよい画像を提供することも可能である。第1実施形態で示したアプリケーションソフトでは3次元格子点データテーブルの格子点数をカメラのハードウエアと同じにする必要がないことを示したが、これもその一例である。
【0047】
しかしながら、アプリケーションソフトでは、ビット精度は簡単に上げられるが、処理速度は、明らかにハードウエアより遅くなる。
【0048】
そこで、ハードウエアとは別の手段で高速化を行い、さらに不具合を対策するといった手段を施すことによって、アプリケーションの画像処理をカメラ内部の画像処理と異ならせることができる。一方、カメラ内部とアプリケーションで画像処理が異なる場合、両者で共通の3次元格子点データもしくは共通の高次のマトリクスデータを用いたのでは、違った処理結果になってしまう可能性がある。そこで、図10のメモリ9に示すように、カメラ内データにカメラ内部用の3次元格子点データ(9a)とアプリケーションソフト用の3次元の格子点テーブルデータの元になる高次のマトリクス係数セット(9b)を対応させて格納しておく。デジタルカメラ本体から出力されるJPEG画像と同じ画像をアプリケーションで出力できるように、マトリクス係数セットは設定されている。
【0049】
従って第2実施形態のデジタルカメラ(CPU15)による処理は図10、図11に示されるようになる。すなわち、まずステップS701において、データ設定部61は、メモリ9から使用すべき3次元格子点データを取得し、3次元格子点データテーブル7eにセットする。複数の3次元格子点データが存在する場合は、第1実施形態と同様に、例えばユーザが選択した撮影シーンに応じて使用すべき3次元格子点データが選択される。3次元格子点データはメモリ9に、図10に示されるように保持されており、3次元格子点データとマトリクス係数セットが対応付けられている。
【0050】
RAWデータを可逆圧縮したデータを用いた画像ファイルを生成する場合、処理はステップS702からステップS703へ進む。ステップS703において、画像ファイル生成部62は、可逆圧縮されたRAWデータと、JPEG圧縮された画像データをメモリ9から取得する。可逆圧縮されたRAWデータとJPEG圧縮された画像データは、上述したように画像処理IC7によって生成され、メモリ9に格納されている。ステップS704では、画像ファイル生成部62がJPEG圧縮に用いられた3次元格子点データテーブル7eに対応するマトリクス係数をメモリ9から取得する。そして、ステップS705において、画像ファイル生成部62は可逆圧縮されたRAWデータとJPEG圧縮された画像データと、ステップS704で取得したマトリクス係数を用いて画像ファイルを生成する。そして、ステップS706において、生成した画像ファイルを外部メモリ14に記録する。なお、メモリ9に複数のマトリクス係数が存在する場合は、第1実施形態と同様、それら全てのマトリクス係数をRAW画像ファイルに付帯させる。
【0051】
新たなRAW画像ファイルの生成を行う場合は上記のステップS702〜S706を繰り返す。ただし、撮影シーンの変更等により使用する3次元格子点データテーブルが変更された場合は、ステップS701からの処理を実行し、新たな3次元格子点データを用いて3次元格子点データテーブルをセットする。
【0052】
以上のように、第2実施形態では、画像信号を画像処理部7bで画像処理し、3次元格子点データテーブル7eに設定するべき3次元格子点データをメモリ9から取得する。第1実施形態のようにマトリクス係数セットから3次元格子点データを算出する必要がないので、カメラにおける画像の格納処理が高速になる。一方、RAW画像ファイルには第1実施形態と同様にマトリクス係数が格納される。従って、情報処理装置側のアプリケーションソフトは第1実施形態と同様の動作をすることになる。
【0053】
以上のように、第2実施形態によれば、異なる画像処理方法に対しても、一対になった3次元格子点データと高次のマトリクスデータをそれぞれの画像処理で用いることにより、同じ色再現の画像を得ることが可能になる。
【0054】
なお、第2実施形態において、RAW画像ファイルにJPEG画像とマトリクス係数を付帯させているが、更にJPEG画像の生成に用いた3次元格子点データを記録するようにしてよい。3次元格子点データを付帯させることにより、アプリケーションはJPEG画像を生成するのに用いられた3次元格子点データを知ることができるとともに、それを使用、再現できるようになる。
【0055】
以上説明したように、第1実施形態によれば、3次元格子点データテーブルの元となる高次のマトリクスの演算を行うことによって、必要とされる3次元格子点データテーブルの格子点データが算出される。このため、3次元格子点データテーブルを有するデジタルカメラにおいて、3次元格子点データテーブルに用いる格子点データを直接保持する必要がなくなる。また、3次元格子点データテーブルによって変換されるデータが格子点の中の場合、入力データを含む周りの格子点から計算されるので、格子点の間隔を粗くすることができる。このため、カメラ内に格納しておくデータを最小限にすることができる。また、第2実施形態によれば、カメラ内部で利用する3次元格子点データとRAW画像ファイルに付帯すべきマトリクス係数セットを保持するので、カメラ内部で3次元格子点データを算出する必要がなくなる。また、アプリケーションで利用するマトリクス係数セットとカメラ内部で利用する3次元格子点データテーブルを、アプリケーションとカメラ内部のそれぞれの画像処理に適合させることができる。そのため、両画像処理で同じ色再現の画像を得ることが可能になる。
【0056】
また、マトリクス係数は、センサ出力の偏り、カラーフィルタ特性などのカメラの個体や機種に依存したデータを含んでいる。従って、個体や機種の特性をマトリクス係数によって吸収しているため、ユーザは、カメラの個体や機種に依存した特性を考慮することなく、好みの撮像シーンの選択するだけで適切な色再現が行われる。アプリケーションソフトでは、所定のチャートを撮影した場合と同じ画像が得られることになる。
【0057】
なお、3次元格子点データテーブルのデータはRed、Green、BlueやY.U.Vの他、L*、a*、b*やX、Y、Zであってもよい。また、3次元格子点データテーブル7eは、色再現に関する計算処理を行う処理の最後に位置しているが、他の変換処理にも上述したような3次元格子点データテーブルを用いることができることはいうまでもない。また、デジタルカメラから情報処理装置への画像ファイルの受け渡しを外部メモリを用いて行う構成を示したが、USB等の通信手段を用いて画像ファイルを転送するようにしてもよい。また、情報処理装置としてプリンタを用いてもよい。更に、上記各実施形態では3次元の格子点データテーブル(3次元ルックアップテーブル)への本発明の適用を説明したが、格子点データテーブルの次元数は3次元に限られるものではない。例えば、4次元以上の、あるいは2次元や1次元の格子点データテーブル(2次元ルックアップテーブル、1次元ルックアップテーブル)に本発明が適用可能であることは明らかである。
【0058】
以上、実施形態を詳述したが、本発明は、例えば、システム、装置、方法、プログラムもしくは記憶媒体等としての実施態様をとることが可能である。具体的には、複数の機器から構成されるシステムに適用しても良いし、また、一つの機器からなる装置に適用しても良い。
【0059】
尚、本発明は、ソフトウェアのプログラムをシステム或いは装置に直接或いは遠隔から供給し、そのシステム或いは装置のコンピュータが該供給されたプログラムコードを読み出して実行することによって前述した実施形態の機能が達成される場合を含む。この場合、供給されるプログラムは実施形態で図に示したフローチャートに対応したプログラムである。
【0060】
従って、本発明の機能処理をコンピュータで実現するために、該コンピュータにインストールされるプログラムコード自体も本発明を実現するものである。つまり、本発明は、本発明の機能処理を実現するためのコンピュータプログラム自体も含まれる。
【0061】
その場合、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより実行されるプログラム、OSに供給するスクリプトデータ等の形態であっても良い。
【0062】
プログラムを供給するための記録媒体としては以下が挙げられる。例えば、フロッピー(登録商標)ディスク、ハードディスク、光ディスク、光磁気ディスク、MO、CD−ROM、CD−R、CD−RW、磁気テープ、不揮発性のメモリカード、ROM、DVD(DVD−ROM,DVD−R)などである。
【0063】
その他、プログラムの供給方法としては、クライアントコンピュータのブラウザを用いてインターネットのホームページに接続し、該ホームページから本発明のコンピュータプログラムをハードディスク等の記録媒体にダウンロードすることが挙げられる。この場合、ダウンロードされるプログラムは、圧縮され自動インストール機能を含むファイルであってもよい。また、本発明のプログラムを構成するプログラムコードを複数のファイルに分割し、それぞれのファイルを異なるホームページからダウンロードすることによっても実現可能である。つまり、本発明の機能処理をコンピュータで実現するためのプログラムファイルを複数のユーザに対してダウンロードさせるWWWサーバも、本発明に含まれるものである。
【0064】
また、本発明のプログラムを暗号化してCD−ROM等の記憶媒体に格納してユーザに配布するという形態をとることもできる。この場合、所定の条件をクリアしたユーザに、インターネットを介してホームページから暗号を解く鍵情報をダウンロードさせ、その鍵情報を使用して暗号化されたプログラムを実行し、プログラムをコンピュータにインストールさせるようにもできる。
【0065】
また、コンピュータが、読み出したプログラムを実行することによって、前述した実施形態の機能が実現される他、そのプログラムの指示に基づき、コンピュータ上で稼動しているOSなどとの協働で実施形態の機能が実現されてもよい。この場合、OSなどが、実際の処理の一部または全部を行ない、その処理によって前述した実施形態の機能が実現される。
【0066】
さらに、記録媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれて前述の実施形態の機能の一部或いは全てが実現されてもよい。この場合、機能拡張ボードや機能拡張ユニットにプログラムが書き込まれた後、そのプログラムの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行なう。

【特許請求の範囲】
【請求項1】
撮影により得られた画像データをデジタル処理する撮像装置であって、
複数の撮影シーンにそれぞれ対応する複数のマトリクス係数セット、及び前記複数の撮影シーンにそれぞれ対応する格子点データセットを保持する保持手段と、
前記複数の格子点データセットのうちの一つを用いて、格子点データテーブルに各格子点の値を設定する設定手段と、
前記設定手段により各格子点の値を設定された格子点データテーブルを用いて前記画像データの色変換処理を行なう変換手段と、
前記設定手段で用いられた格子点データセットの対応する撮影シーンに対応するマトリクス係数セット、及び前記変換手段による変換後の画像データを有する画像ファイルを生成する生成手段と、を備え、
子点データセット及びマトリクス係数セットは、前記変換手段による色変換処理の内容を規定するものであり、
マトリクス係数セットは、前記格子点データテーブルの各格子点の値をマトリクス演算により算出するための係数のセットであることを特徴とする撮像装置。
【請求項2】
前記変換手段による変換後の画像データを非可逆圧縮して得られた圧縮画像データを前記画像ファイルに含むことを特徴とする請求項1に記載の撮像装置。
【請求項3】
前記画像ファイルはRAW画像を含むファイルであり、前記圧縮画像データと前記変換手段による色変換処理に用いられたマトリクス係数セット付帯データとして該画像ファイルに含まれることを特徴とする請求項2に記載の撮像装置。
【請求項4】
前記変換手段は、前記格子点データテーブルの格子点以外の位置の値を、該位置を内包する格子の頂点に位置する格子点の値を用いた補間処理によって得ることを特徴とする請求項1乃至3のいずれか1項に記載の撮像装置。
【請求項5】
前記生成手段は、前記複数マトリクス係数セットを含む画像ファイルを生成することを特徴とする請求項1または2に記載の撮像装置。
【請求項6】
前記格子点データテーブルは3次元格子点データテーブルであることを特徴とする請求項1乃至5のいずれか1項に記載の撮像装置。
【請求項7】
撮影により得られた画像データをデジタル処理する撮像装置と、画像処理アプリケーションが動作する情報処理装置からなる情報処理システムであって、
前記撮像装置は、
複数の撮影シーンにそれぞれ対応する複数のマトリクス係数セット、及び前記複数の撮影シーンにそれぞれ対応する格子点データセットを保持する保持手段と、
前記複数の格子点データセットのうちの一つを用いて、格子点データテーブルに各格子点の値を設定する第1の設定手段と、
前記第1の設定手段により各格子点の値を設定された格子点データテーブルを用いて画像データの色変換処理を行なう第1の変換手段と、
前記第1の設定手段で用いられた格子点データセットの対応する撮影シーンに対応するマトリクス係数セット、及び前記変換手段による変換後の画像データを有する画像ファイルを生成する第1の生成手段と、を備え、
前記情報処理装置は、
前記画像ファイルよりマトリクス係数セットを取得し、該マトリクス係数セットを用いてマトリクス演算により格子点データテーブルの各格子点の値を生成する第2の生成手段と、
前記第2の生成手段で生成された各格子点の値を前記格子点データテーブルに設定する第2の設定手段と、
前記画像ファイルより画像データを取得し、前記第2の設定手段で格子点データが設定された格子点データテーブルを用いて変換処理を行なう第2の変換手段と、を備え、
格子点データセット及びマトリクス係数セットは、前記変換手段による色変換処理の内容を規定するものであり、
マトリクス係数セットは、前記格子点データテーブルの各格子点の値をマトリクス演算により算出するための係数のセットであり、
前記画像ファイルの画像データに変換処理を行うために前記第2の変換手段によって前記マトリクス係数セットを用いて生成される前記格子点データテーブルの格子点数は、前記画像ファイルの画像データに色変換処理を行うために前記撮像装置にて前記第1の設定手段によって格子点データセットを用いて設定される前記格子点データテーブルの格子点数よりも多いことを特徴とする情報処理システム。
【請求項8】
複数の撮影シーンにそれぞれ対応する複数のマトリクス係数セット、及び前記複数の撮影シーンにそれぞれ対応する格子点データセットを保持する保持手段を備え、撮影により得られた画像データをデジタル処理する撮像装置の画像処理方法であって、
前記複数の格子点データセットのうちの一つを用いて、格子点データテーブルに各格子点の値を設定する設定工程と、
前記設定工程にて各格子点の値を設定された格子点データテーブルを用いて前記画像データの色変換処理を行なう変換工程と、
前記設定工程で用いられた格子点データセットの対応する撮影シーンに対応するマトリクス係数セット、及び前記変換工程による変換後の画像データを有する画像ファイルを生成する生成工程と、を備え、
格子点データセット及びマトリクス係数セットは、前記変換工程による色変換処理の内容を規定するものであり、
マトリクス係数セットは、前記格子点データテーブルの各格子点の値をマトリクス演算により算出するための係数のセットであることを特徴とする撮像装置の画像処理方法。
【請求項9】
請求項に記載の画像処理方法をコンピュータに実行させるための制御プログラム。
【請求項10】
請求項に記載の制御プログラムを格納したコンピュータ読み取り可能な記憶媒体。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate


【公開番号】特開2011−155669(P2011−155669A)
【公開日】平成23年8月11日(2011.8.11)
【国際特許分類】
【出願番号】特願2011−49484(P2011−49484)
【出願日】平成23年3月7日(2011.3.7)
【分割の表示】特願2005−236734(P2005−236734)の分割
【原出願日】平成17年8月17日(2005.8.17)
【出願人】(000001007)キヤノン株式会社 (59,756)
【Fターム(参考)】