説明

情報処理装置およびプログラム

【課題】 変換テーブルのデータ量および変換時の演算負荷を抑制しつつ、比較的精度の高い変換処理を実現する。
【解決手段】 格子状に分割された座標空間の座標の情報と、座標空間の格子点の座標に対応する出力データの情報とを含む変換テーブルについて、分割領域での出力の非線形性を補正するための局所座標の情報が変換テーブルに対応づけて記録される。変換時には、上記の局所座標を用いて分割領域内で入力画素値の座標を移動させることで、変換テーブルのデータ量および変換時の演算負荷を抑制しつつ、比較的精度の高い変換処理が実現できる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理装置およびプログラムに関する。
【背景技術】
【0002】
従来から、デジタルカメラ、プリンタ、ディスプレイを含む映像機器でデジタル画像が扱われているが、同一画像を複数の機器にまたがって扱う際には、各々の機器の色再現特性を考慮した画像信号の変換が必要となる。
【0003】
上記した画像信号の変換では、入力画素値と出力画素値との対応関係を示すルックアップテーブル(LUT)を用いた変換処理が公知である。また、変換空間を格子状に分割して格子点単位で画素値の情報をLUTに保持させるとともに、変換処理時には近傍格子点の画素値を用いた補間演算を行うことで、LUTのデータ量を小さくする技術も知られている。また、上記のLUTおよび補間演算による変換処理では、変換後のトーンジャンプを抑制するために、変換範囲のうちの一部分で格子状の分割領域をさらに細分化して高精度変換処理を行う技術も提案されている(例えば、特許文献1参照)。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特許3493104号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
従来のLUTおよび補間演算による変換処理では、格子点の刻みを小さくすれば変換精度を向上させることができる。しかし、上記の場合には、LUTのデータ量および変換時の演算負荷が著しく増大する点で、なお改善の余地があった。
【0006】
上記事情に鑑み、変換テーブルのデータ量および変換時の演算負荷を抑制しつつ、比較的精度の高い変換処理を実現する技術を提供する。
【課題を解決するための手段】
【0007】
一の態様の情報処理装置は、変換テーブルを取得する取得部と、演算部と、変換部と、記録処理部とを備える。変換テーブルは、画像変換時に入力画素値を用いて参照される座標空間の座標の情報と、座標空間の座標に対する出力データの情報とを含む。また、座標空間は複数の格子点で格子状に分割され、出力データはそれぞれ格子点単位で記録されている。演算部は、座標空間の分割領域を区画する各格子点から得た複数の出力データを用いて、分割領域内での出力の非線形性を補正する補正点の出力データを求める。変換部は、分割領域に対応する補正点の出力データを座標空間の局所座標に変換する。記録処理部は、分割領域に対応する局所座標の情報を変換テーブルに対応づけて記録する。
【0008】
一の態様において、演算部は、分割領域を区画する各格子点から得た複数の出力データを平均して補正点の出力データを求めてもよい。また、変換部は、出力データを座標空間の座標に変換するための逆変換処理を用いて変換空間で局所座標を求めてもよい。
【0009】
一の態様の情報処理装置は、座標空間の座標を出力データに変換して変換テーブルを作成するテーブル作成部をさらに備えていてもよい。そして、取得部は、テーブル作成部が作成した変換テーブルを取得してもよい。
【0010】
一の態様において、演算部は、座標空間に含まれる複数の分割領域のうち、指定された分割領域について補正点の出力データを求めてもよい。このとき、演算部は、座標空間に含まれる各分割領域内で格子点の座標に対する出力データの2次微分を求めてもよい。そして、演算部は、2次微分の結果から求まる変換誤差が閾値を超えるときに、補正点の出力データを求める分割領域として指定してもよい。
【0011】
他の態様の情報処理装置は、一の態様に記載の局所座標の情報および変換テーブルを取得する取得部と、参照処理部と、座標移動部と、画素値演算部とを備える。参照処理部は、処理対象の画像データの入力画素値を用いて変換テーブルの座標空間を参照する。そして、参照処理部は、入力画素値の属する分割領域に対応した局所座標を取得する。座標移動部は、取得した局所座標を用いて、座標空間の分割領域内で入力画素値の座標を移動させる。画素値演算部は、分割領域を区画する各格子点から得た複数の出力データを用いて、移動後の入力画素値の座標に対応する出力画素値を求める。
【0012】
他の態様において、座標移動部は、局所座標から分割領域の中心座標に向かうベクトルを求めてもよい。また、座標移動部は、座標空間の分割領域内で、局所座標と入力画素値の座標とを通過する直線上に基準座標を設定してもよい。また、座標移動部は、基準座標から入力画素値の座標までの第1距離と、基準座標から局所座標までの第2距離との距離比を求めてもよい。そして、座標移動部は、距離比およびベクトルを用いて、入力画素値の座標を移動させてもよい。
【0013】
他の態様において、座標移動部は、入力画素値が指定された分割領域に属するときに、入力画素値の座標を移動させてもよい。
【0014】
なお、コンピュータを上記の情報処理装置として動作させるプログラムや、上記のプログラムを記憶した記憶媒体や、上記の情報処理装置の動作を方法のカテゴリで表現したものは、いずれも本発明の具体的態様として有効である。
【発明の効果】
【0015】
分割領域での出力の非線形性を補正するための局所座標の情報が変換テーブルに対応づけて記録される。変換時には、上記の局所座標を用いて分割領域内で入力画素値の座標を移動させることで、変換テーブルのデータ量および変換時の演算負荷を抑制しつつ、比較的精度の高い変換処理が実現できる。
【図面の簡単な説明】
【0016】
【図1】第1の情報処理装置の一例であるコンピュータの構成例を示す図
【図2】一の実施形態におけるコンピュータの動作例を示す流れ図
【図3】変換テーブルの分割領域の例を示す図
【図4】変換データセットのデータ構造例を示す模式図
【図5】第2の情報処理装置の一例である電子カメラの構成例を示す図
【図6】一の実施形態における電子カメラの動作例を示す流れ図
【図7】正規化された分割領域の座標空間における各座標の位置関係の例を示す図
【図8】RAW−ディスプレイ変換の例を示す図
【発明を実施するための形態】
【0017】
以下、図面を参照しつつ、一の実施形態での画像処理システムの例を説明する。一の実施形態での画像処理システムは、RAW画像データから写真に相当する色再現画像データへの変換(RAW−ディスプレイ変換と称する)を行うために用いられる。一の実施形態での画像処理システムは、RAW−ディスプレイ変換に用いる変換データセットを生成する第1の情報処理装置と、上記の変換データセットを用いてRAW−ディスプレイ変換を行う第2の情報処理装置とを有している。
【0018】
ここで、RAW画像データは、入射光の光量に対する出力信号値の関係が線形性を有するデジタルのカラー画像データである。このRAW画像は、欠陥画素の補正処理が施されたものであってもよい。また、RAW画像は、色補間前の状態であるベイヤ配列構造のモザイク状の画像であってもよく、あるいは色補間処理が施された後のカラー画像であってもよい。一の実施形態でのRAW画像データは、各色階調が16ビットのRGB画像データである。また、一の実施形態での色再現画像データは、各色階調が8ビットのRGB画像データである。
【0019】
RAW−ディスプレイ変換は、一例として、階調変換処理、色変換処理を含む。上記のRAW−ディスプレイ変換の変換特性は、例えば、撮像素子の特性、表示デバイスの特性、画像の色再現の意図などを考慮して調整される。また、上記のRAW−ディスプレイ変換は、一般的にデバイスの機種別にそれぞれ異なる処理が行われる。また、1つの機種上で複数の色再現モード(例えばStandardモード、Neutralモード、Vividモードなど)がある場合、各々の色再現モードに対応するRAW−ディスプレイ変換はそれぞれ異なる処理となる。なお、一の実施形態の画像処理システムは、RAW−ディスプレイ変換の処理ごとに、それぞれ異なる変換データセットを用意する。
【0020】
また、一の実施形態でのRAW−ディスプレイ変換は、入力画像データ(RAW画像データ)の画素値を出力画像データ(色再現画像データ)の画素値に変換する変換テーブルを用いて行われる。
【0021】
変換テーブルは、RAW画像データの画素値を用いて参照される座標空間での座標の情報と、色再現画像データの画素値を示す出力データの情報とを対応付けて記録している。すなわち、RAW画像データの入力画素値を参照して座標空間の座標を求め、この座標に対応する出力データを得る処理により、RAW画像データの画素値は色再現画像データの画素値に変換される。
【0022】
一の実施形態において座標空間は、RGB色空間に対応する立方体状の三次元空間である。また、RAW画像データの各色成分はそれぞれ16ビット(0〜65535)で表現され、色再現画像データの各色成分はそれぞれ8ビット(0〜255)で表現される。
【0023】
また、変換テーブルの座標空間は、複数の格子点で格子状に分割されている。例えば、座標空間の各色成分は、16個の格子点で全階調範囲が15の区間に等分割されている。よって、座標空間は、3375(=15×15×15)個の立方体状の分割領域を有している(図3参照)。
【0024】
そして、変換テーブルでの出力データの値はそれぞれ格子点単位で記録されている。例えば、座標空間の座標から出力データの値を求める場合、注目する座標の存在する分割領域に属する格子点の座標を取得し、これらの座標を用いて補間演算を行うことで、注目する座標に対応する出力データの値が求められる。
【0025】
(第1の情報処理装置の説明)
図1は、第1の情報処理装置の一例であるコンピュータの構成例を示す図である。第1の情報処理装置は、分割領域での出力の非線形性を補正するための局所座標の情報を上記の変換テーブルに付与し、変換データセットを生成する。
【0026】
図1に示すコンピュータ11は、データ読込部12と、記憶装置13と、CPU14と、メモリ15および入出力I/F16と、バス17とを有している。データ読込部12、記憶装置13、CPU14、メモリ15および入出力I/F16は、バス17を介して相互に接続されている。さらに、コンピュータ11には、入出力I/F16を介して、入力デバイス18(キーボード、ポインティングデバイスなど)とモニタ19とがそれぞれ接続されている。なお、入出力I/F16は、入力デバイス18からの各種入力を受け付けるとともに、モニタ19に対して表示用のデータを出力する。
【0027】
データ読込部12は、上記の変換テーブルのデータや、後述の変換式のデータや、コンピュータ11が実行するプログラムなどを外部から読み込むときに用いられる。例えば、データ読込部12は、着脱可能な記憶媒体からデータを取得する読込デバイス(光ディスク、磁気ディスク、光磁気ディスクの読込装置など)や、公知の通信規格に準拠して外部の装置と通信を行う通信デバイス(USBインターフェース、LANモジュール、無線LANモジュールなど)である。
【0028】
記憶装置13は、例えば、ハードディスクや、不揮発性の半導体メモリなどの記憶媒体で構成される。この記憶装置13には、上記のプログラムや各種のデータが記録されている。
【0029】
CPU14は、コンピュータ11の各部を統括的に制御するプロセッサである。このCPU14は、上記のプログラムの実行によって、演算部21、変換部22、テーブル作成部23、記録処理部24として機能する。
【0030】
演算部21は、注目する分割領域内での出力の非線形性を補正する補正点での出力データの値を求める。例えば、演算部21は、注目する分割領域を区画する各格子点の出力データの値を平均化することで補正点での出力データの値を求める。
【0031】
変換部22は、変換テーブルに対応した変換式を用いて、RAW画像データの画素値を色再現画像データの画素値に変換する変換処理(RAW−ディスプレイ変換)と、色再現画像データの画素値をRAW画像データの画素値に変換する逆変換処理(ディスプレイ−RAW変換)とをそれぞれ実行する。また、変換部22は、上記の逆変換処理により、上記の補正点の出力データの値から座標空間での局所座標を求める。
【0032】
テーブル作成部23は、変換部22の変換式を用いて座標空間の座標を出力データの値に変換し、変換テーブルを作成する。
【0033】
記録処理部24は、分割領域ごとに求められた局所座標の情報を変換テーブルに対応づけて記録し、変換データセットを生成する。
【0034】
メモリ15は、プログラムでの各種演算結果を一時的に記憶する。このメモリ15は、例えば揮発性のSDRAMなどで構成される。
【0035】
次に、図2の流れ図を参照しつつ、一の実施形態におけるコンピュータ11の動作例を説明する。図2の流れ図の処理は、ユーザからの変換データセットの生成指示に応じてCPU14が開始する。
【0036】
ステップ#101:CPU14は、変換テーブルの読み込みまたは変換テーブルの作成のいずれかの指示がユーザによって入力されたか否かを判定する。変換テーブルの読み込みが指示された場合には、#102に処理が移行する。一方、変換テーブルの作成が指示された場合には、#104に処理が移行する。
【0037】
ステップ#102:CPU14は、予め作成されている処理対象の変換テーブルをデータ読込部12から読み込んで取得する。#102で取得された変換テーブルは、CPU14の制御によって記憶装置13またはメモリ15に記録される。
【0038】
ステップ#103:CPU14は、処理対象の変換テーブル(#102)に対応する変換式のデータをデータ読込部12から読み込んで取得する。#103で取得された変換式のデータは、CPU14の制御によって記憶装置13またはメモリ15に記録される。なお、変換式のデータが予め記憶装置13に記憶されている場合には、CPU14は#103の処理を省略してもよい。その後、CPU14は#106に処理を移行させる。
【0039】
ステップ#104:CPU14は、作成すべき変換テーブルに対応する変換式のデータをデータ読込部12から読み込んで取得する。なお、#104の処理は、#103の処理に対応するので重複説明は省略する。
【0040】
ステップ#105:テーブル作成部23は、変換式のデータ(#104)を用いて変換テーブルのデータを作成する。
【0041】
一例として、#105でのテーブル作成部23は、座標空間での格子点の刻みと、各格子点の座標との入力を受け付ける。例えば、テーブル作成部23には、格子点の刻みとして16×16×16の値が入力される。ここで、座標空間での各格子点の座標は、RAW画像データのRGB画素値に一致する。すなわち、座標空間で各色成分の階調範囲は0〜65535であり、座標空間での格子点の刻みは4369(=65535/(16−1))となる。
【0042】
これにより、テーブル作成部23は、座標空間での各格子点での座標を順次取得できる[例えば、(0,0,0),(0,0,4369),…,(0,0,65535),(0,4369,0),…,(0,4369,65535),…,(65535,65535,65535)]。なお、記録処理部24は、上記の各格子点の座標をメモリ15等に記録する。なお、図3に、変換テーブルの分割領域の例を示す。
【0043】
次に、テーブル作成部23は、RAW−ディスプレイ変換により、各格子点の座標に対応する出力データの値を順次求める[例えば、(0,0,0),(2,5,10),…,(30,80,255),(2,5,1),…,(35,90,255),…,(255,255,255)]。ここで、色再現画像データの各色成分の階調範囲は0〜255である。RAW−ディスプレイ変換は非線形の変換であるため、各格子点の座標と出力データの値とは非線形の関係となる。
【0044】
その後、テーブル作成部23は、座標空間の各格子点での座標と出力データの値との対応関係をメモリ15等に記録して変換テーブルを作成する。これにより、CPU14は、処理対象の変換テーブルを取得できる(図4参照)。
【0045】
ステップ#106:CPU14は、全ての分割領域(D1〜D3375)のうちから、演算対象となる注目分割領域を指定する。なお、CPU14は、全ての分割領域(D1〜D3375)を順番に注目分割領域に指定するものとする。
【0046】
ステップ#107:演算部21は、処理対象の変換テーブル(#102、#105)を用いて、注目分割領域を対象として、分割領域内での出力の非線形性を補正する補正点での出力データの値をそれぞれ求める。#107での演算部21は、注目分割領域を区画する各格子点から得た複数の出力データの値を平均して、上記の補正点での出力データの値を求める。
【0047】
一例として、座標空間上の分割領域D1の場合を考える。上記の分割領域D1は、M1(0,0,0)、M2(0,0,4369)、M3(0,4369,0)、M4(0,4369,4369)、M5(4369,0,0)、M6(4369,0,4369)、M7(4369,4369,0)、M8(4369,4369,4369)の8つの格子点で区画される。変換テーブルには、M1〜M8の各格子点に対応する8つの出力データの値が記録されている。演算部21は、格子点M1〜M8の出力データの値をRGBの各色別に平均化する。そして、演算部21は、M1〜M8での出力データのRGBの各平均値を、分割領域D1の補正点での出力データの値とする。
【0048】
ステップ#108:変換部22は、補正点での出力データの値(#107)に対して逆変換処理(ディスプレイ−RAW変換)を施す。これにより、変換部22は、補正点での出力データの値(各格子点での出力データの平均値)を注目分割領域内の座標に変換する。
【0049】
分割領域D1の例で云えば、M1〜M8での出力データの平均値による補正点に対応する座標(#108)は、分割領域D1の立体中心と必ずしも一致しない。これは、各格子点の座標と各出力データの値とが非線形の関係にあるためである。なお、一の実施形態の例では、分割領域D1における補正点の座標空間の座標を(4000,3000,2000)とし、分割領域D1の立体中心からずれているものとする。
【0050】
ステップ#109:変換部22は、#108で求めた座標を局所座標に変換する。具体的には、#109での変換部22は、#108で求めた座標の最大値を1.0に正規化して局所座標とする。なお、#109で求めた局所座標の情報は、CPU14の制御によりメモリ15に記録される。
【0051】
上記の分割領域D1の例では、変換部22は以下の演算により局所座標L1を算出できる。
【0052】
(4000/4369,3000/4369,2000/4369)=L1(0.9155,0.6867,0.4578)
ステップ#110:CPU14は、全ての分割領域が注目分割領域に指定されたか否かを判定する。上記要件を満たす場合(YES側)には、#111に処理が移行する。一方、上記要件を満たさない場合(NO側)には、CPU14は#106に戻って新たな注目分割領域を指定し、上記の動作を繰り返す。#106から#110のNO側のループにより、全ての分割領域D1〜D3375に対応する局所座標L1〜L3375の情報がそれぞれ生成される。
【0053】
ステップ#111:記録処理部24は、処理対象の変換テーブル(#102、#105)に、局所座標L1〜L3375の情報を対応付けて記録し、変換データセットを生成する。図4に、変換データセットのデータ構造例を模式的に示す。この変換データセットは、CPU14の制御により記憶装置13に記録される。以上で、図2の流れ図の説明を終了する。
【0054】
なお、複数種類の変換データセットが必要となる場合は、図2の流れ図の処理を各変換テーブルについてそれぞれ実行すればよい。
【0055】
(第2の情報処理装置の説明)
図5は、第2の情報処理装置の一例である電子カメラの構成例を示す図である。第2の情報処理装置は、上記の第1の情報処理装置で生成された変換データセットを用いて、RAW画像データを色再現画像データに変換する。
【0056】
図5に示す電子カメラ31は、撮像素子32と、信号処理部33と、第1バッファメモリ34と、不揮発性メモリ35と、画像処理エンジン36と、第2バッファメモリ37と、モニタ38と、記録I/F39と、CPU40とを有している。撮像素子32、信号処理部33、画像処理エンジン36、記録I/F39はそれぞれCPU40と接続されている。このCPU40は、電子カメラ31の各部動作を統括的に制御するプロセッサである。また、第1バッファメモリ34、不揮発性メモリ35および第2バッファメモリ37は、画像処理エンジン36に接続されている。
【0057】
撮像素子32は、撮影光学系(不図示)を通過した光束による被写体の結像を撮像するデバイスである。この撮像素子32の出力は信号処理部33に接続されている。上記の撮像素子32は、順次走査方式の固体撮像素子(例えばCCD)であってもよく、XYアドレス方式の固体撮像素子(例えばCMOS)であってもよい。
【0058】
また、撮像素子32の受光面には、複数の受光素子がマトリックス状に配列されている。また、撮像素子32の各受光素子にはカラーフィルタが配置されている。例えば、一の実施形態では、RGBのカラーフィルタが公知のベイヤ配列にしたがって各受光素子に配置されている。そのため、撮像素子32の各受光素子は、カラーフィルタでの色分解によって各色に対応する画像信号を出力する。これにより、撮像素子32は、撮影時にカラーの画像を取得できる。
【0059】
信号処理部33は、入力画像信号に対して相関二重サンプリング、A/D変換、欠陥画素補正などの信号処理を実行し、後段にRAW画像データを出力する回路である。この信号処理部33の出力は第1バッファメモリ34に接続されている。
【0060】
第1バッファメモリ34は、RAW画像データを一時的に記録する。第1バッファメモリ34は、例えば揮発性の記憶媒体であるSDRAMで構成される。また、不揮発性メモリ35は、上記の第1の情報処理装置で生成された変換データセットや、画像処理エンジン36で実行されるプログラムを記憶する。
【0061】
画像処理エンジン36は、バッファメモリのRAW画像データを色再現画像データに変換するプロセッサである。この画像処理エンジン36は、プログラムの実行により、参照処理部41、座標移動部42、画素値演算部43として機能する(参照処理部41、座標移動部42、画素値演算部43の各機能は後述する)。
【0062】
第2バッファメモリ37は、画像処理エンジン36から出力される色再現画像データを一時的に記録する。第2バッファメモリ37にはモニタ38および記録I/F39が接続されている。なお、第2バッファメモリ37は、例えば揮発性の記憶媒体であるSDRAMで構成される。
【0063】
モニタ38は、色再現画像データに基づく出力画像を表示する表示デバイスである。また、記録I/F39は、不揮発性の記憶媒体44を接続するためのコネクタを有している。そして、記録I/F39は、コネクタに接続された記憶媒体44に対してデータの書き込み/読み込みを実行する。上記の記憶媒体44は、ハードディスクや、半導体メモリを内蔵したメモリカードなどで構成される。なお、図5では記憶媒体44の一例としてメモリカードを図示する。
【0064】
次に、図6の流れ図を参照しつつ、一の実施形態における電子カメラ31の動作例を説明する。以下の動作例は、画像撮影時にRAW画像データを色再現画像データに変換するケースである。なお、図6の流れ図の処理は、ユーザの撮影画像の取得指示(電子カメラ31のレリーズ釦の全押し操作など)に応じてCPU40が開始する。
【0065】
ステップ#201:CPU40は、撮像素子32を駆動させて被写体の像を撮影する。撮像素子32から出力された画像信号は、信号処理部33をパイプライン式に通過する。そして、第1バッファメモリ34には、処理対象となるRAW画像データが蓄積される。なお、簡単のため、RAW画像データはこの段階で色補間処理が施された状態にあるものとする。
【0066】
ステップ#202:画像処理エンジン36は、今回のRAW−ディスプレイ変換に対応する変換データセットを不揮発性メモリ35から読み出して取得する。
【0067】
ステップ#203:画像処理エンジン36は、RAW画像データのうちから注目画素を指定する。そして、画像処理エンジン36は、第1バッファメモリ34からRAW画像データの注目画素のRGB画素値を読み込む。なお、画像処理エンジン36は、順次走査で画像内の全画素を順番に注目画素に指定するものとする。
【0068】
ステップ#204:画像処理エンジン36の参照処理部41は、注目画素(#203)のRGB画素値を用いて変換テーブルの座標空間を参照する。そして、参照処理部41は、注目画素に対応する座標空間の座標を求める。また、参照処理部41は、変換テーブルの全分割領域のうちで注目画素の座標が属する分割領域を求める。そして、参照処理部41は、変換データセットを参照し、注目画素が属する分割領域に対応する局所座標Lの情報を取得する。
【0069】
具体的には、参照処理部41は、注目画素のRGB画素値(r,g,b)を以下の式(1)〜式(3)に代入し、rI、gI、bIの各値を求める。なお、下式(1)〜(3)の「INT()」は、括弧内の値の整数部分を返す関数である。
rI=INT((r/65535)×(16−1))×4369 ……(1)
gI=INT((g/65535)×(16−1))×4369 ……(2)
bI=INT((b/65535)×(16−1))×4369 ……(3)
上記の(rI,gI,bI)は、注目画素の属する分割領域において原点に最も近い格子点の座標となる。よって、参照処理部41は、上記の(rI,gI,bI)から注目画素の座標が属する分割領域を求めることができる。
【0070】
一例として、注目画素のRGB画素値が(2600,1300,1700)である場合を考える。この場合、(rI,gI,bI)=(0,0,0)となるので、M1(0,0,0)が原点に最も近い格子点である分割領域D1に注目画素の座標が属していると分かる。よって、参照処理部41は、変換データセットから分割領域D1に対応する局所座標L1の情報を読み出せばよい。
【0071】
ステップ#205:参照処理部41は、注目画素のRGB画素値(r,g,b)を最大値が1.0となるように正規化する。これにより、正規化後の注目画素の画素値は、局所座標Lと同じ形式の座標Pに換算される。
【0072】
具体的には、参照処理部41は、以下の式(4)〜式(6)の演算により、正規化後の注目画素の座標P(r’,g’,b’)を求める。
r’=(r/65535)×(16−1)−rI ……(4)
g’=(g/65535)×(16−1)−gI ……(5)
b’=(b/65535)×(16−1)−bI ……(6)
一例として、上記のように注目画素のRGB画素値が(2600,1300,1700)のとき、式(4)〜式(6)より、座標P(r’,g’,b’)=(0.5951,0.6867,0.4578)となる。
【0073】
ステップ#206:座標移動部42は、最大値が1.0に正規化された分割領域の座標空間において、局所座標L(#204)から分割領域の中心座標C(0.5,0.5,0.5)に向かうベクトルLCを求める。図7は、正規化された分割領域(D1)の座標空間における各座標の位置関係の例を示す。
【0074】
【数1】

【0075】
ステップ#207:座標移動部42は、正規化された分割領域の座標空間内で、局所座標Lと座標P(#205)とを通過する直線上に基準座標Sを設定する。一例として、座標移動部42は、座標Lから座標Pに向かう直線の延長線と、分割領域の4つの格子点がなす正方形の境界面との交点に基準座標Sを設定する(図7参照)。
【0076】
【数2】

【0077】
となるので、α=1.765となる。
【0078】
【数3】

【0079】
ステップ#208:座標移動部42は、基準座標Sから座標Pまでの第1距離と、基準座標Sから局所座標Lまでの第2距離との距離比s(=PS/LS)を求める。
【0080】
上記の例であれば、距離比s=(1.765−1.0)/(1.765)=0.4334となる。
【0081】
ステップ#209:座標移動部42は、距離比s(#208)とベクトルLC(#206)とを用いて分割領域内で座標Pを移動させる。なお、移動後の座標はP’と表記する。上記の例であれば、座標移動部42は下記の演算で座標P’を求めることができる。
【0082】
【数4】

【0083】
よって、座標P’=(0.4150,0.2167,0.4074)となる。かかる座標P’は、後段の線形補間処理での入力座標となる。#209の処理において、座標移動部42は、局所座標Lおよび中心座標Cの関係を用いて、分割領域内での出力の非線形性を補正するように座標Pを座標P’へ移動させる。
【0084】
ここで、注目画素の座標Pが局所座標Lと一致する場合には、#209の処理により座標Pが中心座標Cに移動する。この場合の線形補間処理での出力データの値は、分割領域を区画する格子点の出力データの平均値と等しくなる。なお、分割領域の4つの格子点がなす正方形の境界面上に座標Pが位置する場合には、#209の処理で座標Pは移動しない。
【0085】
ここで、図8を参照しつつ、一の実施形態において局所座標Lを用いて座標Pを移動させる理由を説明する。なお、簡単のため、図8では一次元の補間処理の例を示す。図8の横軸は入力信号xの値を示し、図8の縦軸は出力信号yの値を示す。また、図8の例では、y=x2の画像変換が行われるものとする。また、図8の座標(0,0)、(1,1)、(2,4)がそれぞれ格子点の位置に相当する。
【0086】
図8(i)はy=x2の変換結果を示している(図中の細実線)。これに対し、図8(ii)は、格子間隔1.0で格子点間を線形補間した結果を示している(図中の破線)。図8(ii)では、x<1.0の区間はy=xで変換され、x≧1.0の区間はy=3x−2で変換される。図8(ii)の補間では、x=1.0を境界として急激な出力変化が生じる。
【0087】
図8(iii)は、一の実施形態の手法による変換の結果を示している(図中の太実線)。図8(iii)では、まず、格子点間の出力平均値から局所座標Lとなるx値を求める。そして、図8(iii)では、局所座標Lが格子点間の中心になるように、xの座標を移動させる。
【0088】
図8の例において、0≦x<1.0区間の出力平均は、y=(1.0−0.0)/2=0.5である。よって、0≦x<1.0区間の局所座標Lは、x=(0.5)(1/2)=0.7071となる。同様に、1.0≦x<2.0区間の出力平均は、y=(1.0+4.0)/2=2.5である。よって、1.0≦x<2.0区間の局所座標Lは、x=(2.5)(1/2)=1.581となる。
【0089】
そして、0≦x<1.0区間では、x=0.7071をx=0.5に移動させる。1.0≦x<2.0区間では、x=1.581をx=1.5に移動させる。なお、その他の点は上記の座標移動に応じて線形変換すればよい。
【0090】
よって、図8(iii)の座標変換は、0≦x<1.0区間で以下のようになる。
x’=(0.5/0.7071)x [x≦0.7071]
x’=(0.5/(1−0.7071))(x−1)+1 [x>0.7071]
また、図8の(iii)の座標変換は、1.0≦x<2.0区間で以下のようになる。
x’=((1.5−1)/(1.581−1))(x−1)+1 [x≦1.581]
x’=((2−1.5)/(2−1.581))(x−2)+2 [x>1.581]
上記の座標変換後に、0≦x<1.0区間ではy=x’の補間処理が行われる。同様に、1.0≦x<2.0区間ではy=3x’−2の補間処理が行われる。これにより、図8(iii)の例では太実線で示す入出力特性を得ることができる。図8(iii)の場合、単純な補間処理の場合(図8(ii))と比べて、理想的なy=x2の変換(図8(i))によく近似することが分かる。
【0091】
ステップ#210:画素値演算部43は、分割領域を区画する各格子点から得た複数の出力データの値を用いて、移動後の座標P’に対応する出力データの値を線形補間で求める。この座標P’に対応する出力データの値は、色再現画像データでの注目画素の画素値となる。なお、#210で求めた注目画素の画素値は第2バッファメモリ37に逐次記録される。
【0092】
ステップ#211:画像処理エンジン36は、RAW画像データの全画素が注目画素に指定されたか否かを判定する。上記要件を満たす場合(YES側)には、#212に処理が移行する。一方、上記要件を満たさない場合(NO側)には、画像処理エンジン36は#203に戻って新たな注目画素を指定し、上記の動作を繰り返す。#203から#211のNO側のループにより、RAW画像データの全画素が色再現画像データに変換される。
【0093】
ステップ#212:CPU40は、第2バッファメモリ37に蓄積された変換後の色再現画像のデータを記憶媒体44に記録する。また、CPU40は、色再現画像データによる出力画像をモニタ38に表示する。以上で、図6の流れ図の説明を終了する。
【0094】
一の実施形態での第1の情報処理装置は、座標空間の格子点単位で出力データの値の情報をもつ変換テーブルに、分割領域ごとの局所座標の情報を対応づけて変換データセットを生成する。そして、一の実施形態での第2の情報処理装置は、RAW−ディスプレイ変換時に、上記の局所座標を用いて分割領域内で入力画素値の座標を移動させる。これにより、格子点間で線形補間する場合と比べて精度の高いRAW−ディスプレイ変換処理が実現できる。また、一の実施形態での変換データセットのデータ構造によれば、例えば変換テーブルの格子点の刻みを小さくする場合と比べて、変換テーブルのデータ量や変換時の演算負荷を抑制しつつ、精度の高いRAW−ディスプレイ変換を行うことができる。
【0095】
<実施形態の補足事項>
(変形例1):一の実施形態の説明では、局所座標の記録、使用により理想の変換に近い変換を実現できることを示した。しかし、第1の情報処理装置は、局所座標への変換前(正規化される前)の座標を変換データセットに記録しても良い。例えば、第1の情報処理装置は、上記の例において、局所座標L1(0.9155,0.6867,0.4578)の代わりに、座標(4000,3000,2000)を記録してもよい。また、第1の情報処理装置は、局所座標Lから中心座標Cに向かうベクトル(図7のベクトルLC)を記録しても良い。
【0096】
(変形例2):一の実施形態の説明では逆変換処理で局所座標を求めたが、本発明は上記実施形態の例に限定されない。例えば、第1の情報処理装置は、順方向の変換を実験的に何回か行い、平均値に近い出力となる入力値を調査することで局所座標を求めてもよい。また、局所座標の認識は順方向の変換にとどまらない。例えば、カラーマネジメントにおけるプリンタプロファイルの作成に適用することができる。プリンタプロファイルの作成のためにはプリント時にプリンタに送信するデータ(カラーパッチのデータ)と、これをプリントして測定器で測定したときの測定値との対応関係(LUT)を得ることになる。このLUTの格子点で形成される立体について、より理想的な変換を求める場合、本発明の局所座標を利用する方法が適用できる。そのためには例えばデータ間隔を細かくしたカラーパッチを作成し、これをプリントして、立体を構成する格子点の出力平均となる入力データを調査すればよい。
【0097】
(変形例3):一の実施形態では、全分割領域で局所座標を算出する例を説明したが、本発明は上記実施形態の例に限定されない。例えば、第1の情報処理装置は、分割領域のうち、通常の線形補間を行った場合に理想の変換との変換誤差が大きいものを対象として局所座標を算出してもよい。より具体的には、第1の情報処理装置は、各分割領域内において格子点の座標に対する出力データの値の2次微分を求め、この2次微分の結果から求まる変換誤差が閾値を超えるときに、局所座標を求める分割領域として指定してもよい。
【0098】
上記の処理で生成された変換データセットは、変換誤差が大きくなる分割領域のみ局所座標の情報をもつことになる。そのため、上記の変換データセットを適用するケースにおいて、第2の情報処理装置は、局所座標の情報をもつ分割領域を指定して入力画素値の座標を移動させる処理を行えばよい。なお、局所座標の情報がない分割領域については、第2の情報処理装置は、複数の格子点を用いた通常の線形補間処理で出力画素値を求めればよい。
【0099】
(変形例4):一の実施形態では、第2の情報処理装置が電子カメラ31に実装される例を説明した。しかし、本発明の第2の情報処理装置は電子カメラに限定されず、RAW−ディスプレイ変換を行う電子デバイス全般(例えば、フォトビューア、プリンタなど)に広く適用できる。また、第2の情報処理装置としての電子カメラは、記憶媒体44に記憶されているRAW画像データを再生するときに、図6の#202〜#211の処理を実行してもよい。
【0100】
(変形例5):一の実施形態での第1の情報処理装置は、演算部21、変換部22、記録処理部24の各処理をソフトウエア的に実現する例を説明した。同様に、一の実施形態での第2の情報処理装置は、参照処理部41、座標移動部42、画素値演算部43の各処理をソフトウエア的に実現する例を説明した。しかし、本発明では、ASICによって上記の各処理をハードウエア的に実現しても勿論かまわない。
【0101】
(変形例6):一の実施形態では、変換テーブルの座標空間がRGB色空間に対応する3次元空間である例を説明した。しかし、本発明は上記実施形態の構成に限定されることなく、平面座標が格子状に分割された二次元空間の変換テーブルの場合にも応用できる。例えば、第1の情報処理装置は、明るさと色とを変換する二次元の変換テーブルを対象として、分割領域に対応する局所座標を求めてもよい。
【0102】
(変形例7):一の実施形態の第1の情報処理装置は、1つの分割領域内に局所座標を2点以上設定してもよい。また、一の実施形態の第1の情報処理装置は、複数の格子点での出力データの平均値以外で補正点を求めてもよい。
【0103】
以上の詳細な説明により、実施形態の特徴点および利点は明らかになるであろう。これは、特許請求の範囲が、その精神および権利範囲を逸脱しない範囲で前述のような実施形態の特徴点および利点にまで及ぶことを意図するものである。また、当該技術分野において通常の知識を有する者であれば、あらゆる改良および変更に容易に想到できるはずであり、発明性を有する実施形態の範囲を前述したものに限定する意図はなく、実施形態に開示された範囲に含まれる適当な改良物および均等物によることも可能である。
【符号の説明】
【0104】
11…コンピュータ、12…データ読込部、13…記憶装置、14…CPU、15…メモリ、16…入出力I/F、17…バス、18…入力デバイス、19…モニタ、21…演算部、22…変換部、23…テーブル作成部、24…記録処理部、31…電子カメラ、32…撮像素子、33…信号処理部、34…第1バッファメモリ、35…不揮発性メモリ、36…画像処理エンジン、37…第2バッファメモリ、38…モニタ、39…記録I/F、40…CPU、41…参照処理部、42…座標移動部、43…画素値演算部、44…記憶媒体

【特許請求の範囲】
【請求項1】
画像変換時に入力画素値を用いて参照される座標空間の座標の情報と、前記座標空間の座標に対する出力データの情報とを含み、前記座標空間は複数の格子点で格子状に分割され、前記出力データはそれぞれ格子点単位で記録されている変換テーブルを取得する取得部と、
前記座標空間の分割領域を区画する各格子点から得た複数の出力データを用いて、前記分割領域内での出力の非線形性を補正する補正点の出力データを求める演算部と、
前記分割領域に対応する前記補正点の出力データを前記座標空間の局所座標に変換する変換部と、
前記分割領域に対応する前記局所座標の情報を前記変換テーブルに対応づけて記録する
記録処理部と、
を備える情報処理装置。
【請求項2】
請求項1に記載の情報処理装置において、
前記演算部は、前記分割領域を区画する各格子点から得た複数の出力データを平均して前記補正点の出力データを求め、
前記変換部は、前記出力データを前記座標空間の座標に変換するための逆変換処理を用いて前記変換空間で局所座標を求める情報処理装置。
【請求項3】
請求項1または請求項2に記載の情報処理装置において、
前記座標空間の座標を前記出力データに変換して変換テーブルを作成するテーブル作成部をさらに備え、
前記取得部は、前記テーブル作成部が作成した前記変換テーブルを取得する情報処理装置。
【請求項4】
請求項1から請求項3のいずれか1に記載の情報処理装置において、
前記演算部は、前記座標空間に含まれる複数の分割領域のうち、指定された分割領域について前記補正点の出力データを求める情報処理装置。
【請求項5】
請求項4に記載の情報処理装置において、
前記演算部は、前記座標空間に含まれる各分割領域内で格子点の座標に対する出力データの2次微分を求めるとともに、前記2次微分の結果から求まる変換誤差が閾値を超えるときに、前記補正点の出力データを求める分割領域として指定する情報処理装置。
【請求項6】
請求項1から請求項5のいずれか1項に記載の局所座標の情報および変換テーブルを取得する取得部と、
処理対象の画像データの入力画素値を用いて変換テーブルの座標空間を参照し、前記入力画素値の属する分割領域に対応した局所座標を取得する参照処理部と、
取得した前記局所座標を用いて、前記座標空間の分割領域内で前記入力画素値の座標を移動させる座標移動部と、
前記分割領域を区画する各格子点から得た複数の出力データを用いて、移動後の前記入力画素値の座標に対応する出力画素値を求める画素値演算部と、
を備える情報処理装置。
【請求項7】
請求項6に記載の情報処理装置において、
前記座標移動部は、
前記局所座標から前記分割領域の中心座標に向かうベクトルを求め、
前記座標空間の分割領域内で、前記局所座標と前記入力画素値の座標とを通過する直線上に基準座標を設定し、
前記基準座標から前記入力画素値の座標までの第1距離と、前記基準座標から前記局所座標までの第2距離との距離比を求め、
前記距離比および前記ベクトルを用いて、前記入力画素値の座標を移動させる情報処理装置。
【請求項8】
請求項6または請求項7に記載の情報処理装置において、
前記座標移動部は、前記入力画素値が指定された分割領域に属するときに、前記入力画素値の座標を移動させる情報処理装置。
【請求項9】
コンピュータを請求項1から請求項8のいずれか1項に記載の情報処理装置として動作させるプログラム。


【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate


【公開番号】特開2012−39438(P2012−39438A)
【公開日】平成24年2月23日(2012.2.23)
【国際特許分類】
【出願番号】特願2010−178471(P2010−178471)
【出願日】平成22年8月9日(2010.8.9)
【出願人】(000004112)株式会社ニコン (12,601)
【Fターム(参考)】