(57)【特許請求の範囲】
【請求項１】
カラー画像を構成する各画素の第１の画素値を、所定の変換式によって対応づけられる第２の画素値に置き換える方法で、多次元色空間を複数のブロックに分割し、該各ブロックの各頂点座標について前記変換式に基づく演算を行って変換値を求めておき、前記第１の画素値について該画素値のブロック内の位置に応じて定まる頂点ごとの重み係数と前記画素値を含むブロックの頂点座標の前記変換値とに基づく補間演算を行うことによって前記第２の画素値を求める画像変換方法において、
前記各頂点座標の変換値をブロックごとに記録した変換値テーブルと、１つのブロックの頂点を隣接する順に並べた頂点データ列と、０以外の重み係数を有する頂点の数、前記頂点データ列の中の前記０以外の重み係数を有する頂点が連続して並ぶ部分を指し示すポインタ、および前記０以外の重み係数を有する頂点の重み係数をブロック内の位置ごとに記録した係数テーブルとを予めメモリに記憶しておき、
前記変換値テーブルに記録された変換値と、前記係数テーブルの前記ポインタが指し示す頂点および該頂点の重み係数とに基づいて、重み係数が０以外の頂点のみを用いて前記補間演算を行うことを特徴とする画像変換方法。
【請求項２】
カラー画像を構成する各画素の第１の画素値を、所定の変換式によって対応づけられる第２の画素値に置き換える装置であって、複数のブロックに分割された多次元色空間の前記各ブロックの各頂点座標について前記変換式に基づく演算を行って変換値を求める変換手段と、該変換手段により求められた変換値を記憶する記憶手段と、前記第１の画素値について該画素値のブロック内の位置に応じて定まる頂点ごとの重み係数と前記画素値を含むブロックの頂点座標の前記変換値とに基づく補間演算を行うことによって前記第２の画素値を求める補間演算手段とを備えた画像変換装置において、
前記記憶手段が、前記各頂点座標の変換値をブロックごとに記録した変換値テーブルと、１つのブロックの頂点を隣接する順に並べた頂点データ列と、０以外の重み係数を有する頂点の数、前記頂点データ列の中の前記０以外の重み係数を有する頂点が連続して並ぶ部分を指し示すポインタ、および前記０以外の重み係数を有する頂点の重み係数をブロック内の位置ごとに記録した係数テーブルとを記憶し、
前記補間演算手段が、前記記憶手段に記憶された前記変換値テーブルの変換値と、前記係数テーブルの前記ポインタが指し示す頂点および該頂点の重み係数とに基づいて、重み係数が０以外の頂点のみを用いて前記補間演算を行うものであることを特徴とする画像変換装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、カラー画像の変換方法および装置に関し、特に詳しくは、一部の値（色）について予め演算を行って変換値を求めておき、その変換値を用いて補間演算を行うことにより任意の画素値の変換値を求める画像変換方法および装置に関するものである。
【０００２】
【従来の技術】
従来、デジタル画像処理の１つとして色変換が行われている。例えば、カラー写真のデジタル処理では、プリント作成用に処理されたデジタル画像は、そのままモニタに表示すると必ずしも適切な色には見えないため、所定の変換式に基づく色変換を施してからモニタ表示するのが望ましいとされている。
【０００３】
カラー画像の色変換は、各画素の画素値を、変換式に基づく演算を行うことにより文字どおり変換してもよいが、この方法は、関係式が複雑な場合には演算時間が長くなるという問題がある。このため、写真のデジタル処理のように高速処理を要求されているシステムでは、通常ダイレクトマッピング法と呼ばれる方法が用いられている。
【０００４】
ダイレクトマッピング法は、一部の色について予め正確な演算を行って変換値を求め、求めた変換値をメモリに記憶しておき、実際に入力された値を変換するときには正確な演算は行わずに、予め求めておいた変換値を用いて補間演算を行って変換値を推定する方法である。具体的には、多次元色空間を複数のブロックに分割し、その各ブロックの各頂点座標について変換式に基づく正確な演算を行って変換値を求めておき、任意の点の変換値をこの頂点座標の変換値から補間して求めるというものである。
【０００５】
補間演算を行うときには、まず入力された画素値を取り囲む８つの頂点を特定し、その８つの頂点の座標の変換値をメモリから読み出し、その画素値のブロック内での位置に基づいて８つの頂点に重み付けをして、各頂点の重みを表す係数とメモリから読み出した各変換値とを掛け合わせ、掛けた結果を足し合わせることにより補間値を得る。この補間演算は掛け算と足し算のみの単純な演算であるため、変換式に基づいて演算する場合に比べれば、高速な処理が可能となる。
【０００６】
【発明が解決しようとする課題】
ここで、上記方法では１回の補間演算について８回の乗算と７回の加算（８個の値を足しあわせる）が必ず行われる。しかしながら、入力された画素値がブロックの面上や線上の点である場合には、その面や線を構成する頂点以外の頂点の重み係数は０となるため、実際には掛け算をする必要はない。
【０００７】
また、この方法では画素値が入力される度に重み係数を求めているが、実際にはブロック内の相対位置が同じであれば重み係数もまた同じになるため、同じパターンについて何度も重み係数を求めていることになる。
【０００８】
本発明は、ダイレクトマッピング法における上記のような無駄な処理をなくし、高速な変換処理を実現することを目的とするものである。
【０００９】
【課題を解決するための手段】
本発明の画像変換方法は、カラー画像を構成する各画素の第１の画素値を、所定の変換式によって対応づけられる第２の画素値に置き換える際に用いられる方法で、多次元色空間を複数のブロックに分割し、該各ブロックの各頂点座標について前記変換式に基づく演算を行って変換値を求めておき、前記第１の画素値について該画素値のブロック内の位置に応じて定まる頂点ごとの重み係数と前記画素値を含むブロックの頂点座標の前記変換値とに基づく補間演算を行うことによって前記第２の画素値を求めるものであり、前記各頂点座標の変換値をブロックごとに記録した変換値テーブル、および０以外の重み係数を有する頂点と該頂点の重み係数とをブロック内の位置ごとに記録した係数テーブルを予めメモリに記憶しておき、前記変換値テーブルに記録された変換値と、前記係数テーブルに記録された頂点および重み係数とに基づいて、重み係数が０以外の頂点のみを用いて前記補間演算を行うことを特徴とするものである。
【００１０】
前記画素値は（Ｒ，Ｇ，Ｂ）によって表される値である。また、多次元色空間は、Ｒ、Ｇ、Ｂを軸とする座標空間であり、画素値（色）を座標点として視覚的に表すものである。
【００１１】
重み係数は、例えばある画素値が頂点ａと頂点ｂの中間点に位置していれば、頂点ａの重み係数も頂点ｂの重み係数も１／２であり、頂点ａと頂点ｂを結ぶ線を１：２に分割する点（頂点ａ寄り）に位置していれば、頂点ａの重み係数が２／３、頂点ｂの重み係数が１／３となる。すなわち、頂点の座標値とは無関係に、頂点との位置関係、すなわち画素値のブロック内の位置に応じて定まるものであるため、ブロックサイズが同じ場合には、いずれか１つのブロックについてのみそのブロックに含まれる全ての点について重み係数を求めれば、他のブロック内の画素値についてもその重み係数を適用することができる。
【００１２】
また、本明細書において「ブロック内」とはブロックの境界線、境界面、頂点を含むものとする。
【００１３】
したがって、「ブロック内の位置ごとに」記録した係数テーブルは、例えばブロックが８画素×８画素×８画素の立方体であれば、５１２個のデータからなるテーブルとなる。
【００１４】
なお、ブロックのサイズについては特に限定しないが、サイズを大きくすればブロック内の点が増えるため係数テーブルが大きくなり、サイズを小さくすれば頂点の数が増えるため変換値を求めるために予め行う演算量が増える。したがって、メモリや演算量を考慮して適当な値を選択すればよい。
【００１５】
また、係数テーブルに「０以外の重み係数を有する頂点」を記録する際には、例えば色空間の原点に最も近い頂点をａというように、相対位置ごとに名前をつけてその名前をテーブルに記録してもよいし、各頂点をブロックの一辺を１とした単位座標として（０，０，０）、（１，０，０）、（０，１，０）のように表して記録してもよい。
【００１６】
さらには、１つのブロックの頂点を隣接する順に並べた頂点データ列を前記メモリに記憶しておき、前記０以外の重み係数を有する頂点を、該頂点の数と、前記頂点データ列の中の該頂点が連続して並ぶ部分を指し示すポインタとにより表す方法も好ましい。
【００１７】
また、本発明の画像変換装置は、上記画像変換方法にしたがって、カラー画像を構成する各画素の第１の画素値を、所定の変換式によって対応づけられる第２の画素値に置き換える装置であり、複数のブロックに分割された多次元色空間の前記各ブロックの各頂点座標について前記変換式に基づく演算を行って変換値を求める変換手段と、該変換手段により求められた変換値を記憶する記憶手段と、前記第１の画素値について該画素値のブロック内の位置に応じて定まる頂点ごとの重み係数と前記画素値を含むブロックの頂点座標の変換値とに基づく補間演算を行うことによって前記第２の画素値を求める補間演算手段とを備えた画像変換装置において、前記記憶手段が、前記各頂点座標の変換値をブロックごとの変換値テーブルと、０以外の重み係数を有する頂点と該頂点の重み係数をブロック内の位置ごとに記録した係数テーブルを記憶し、前記補間演算手段が、前記記憶手段に記憶された前記変換値テーブルの変換値と、前記係数テーブルの頂点および重み係数とに基づいて、重み係数が０以外の頂点のみを用いて前記補間演算を行うものであることを特徴とするものである。
【００１８】
また、この際、前記記憶手段が、１つのブロックの頂点を隣接する順に並べた頂点データ列をさらに記憶し、前記０以外の重み係数を有する頂点を、該頂点の数と、前記頂点データ列の中の該頂点が連続して並ぶ部分を指し示すポインタとの組み合わせとして記憶するようにしてもよい。
【００１９】
【発明の効果】
本発明の画像変換方法および装置によれば、補間演算に必要な頂点とその頂点の重み係数が記録された係数テーブルを参照して補間演算を行うため、重み係数が０の頂点について無用な演算を繰り返すことがなく、また画素値が入力される度に重み係数を求める必要もなく、結果として高速な処理を実現することができる。この際、行う演算処理は単純な積和演算のみであるため、パイプライン処理にも適している。
【００２０】
また、係数テーブルに重み係数が０以外の頂点を記録する際に、頂点そのものを記録するかわりに、補間演算に使用する頂点の数と頂点データ列の中のその頂点が連続して並ぶ部分を指し示すポインタとを記録するようにすれば、係数テーブルのデータサイズを小さくすることができ、より効率的にメモリを使用できる。
【００２１】
【発明の実施の形態】
以下、本発明の一実施の形態について、図面を参照して詳細に説明する。図１は本発明の画像変換方法の概要を示す図である。
【００２２】
この図に示されるように、本発明の方法は、変換値テーブル４と係数テーブル５を予め作成しておき、カラー画像７が入力された際にこれらのテーブルの値を参照して補間演算を行うことにより変換画像８を生成するものである。
【００２３】
はじめに、変換値テーブル４の作成方法および内容について説明する。色空間１は、Ｒ、Ｇ、Ｂを軸とする３次元座標空間で、空間内の各座標点がそれぞれ１つの色を表している。フルカラー画像の場合、Ｒ、Ｇ、Ｂはそれぞれ０から２５５の範囲の値をとるので、色空間１の中には、色を表す点が２５６3＝１６７７７２１６個存在することになる。本実施の形態では、この色空間１を８×８×８のブロック２に分割し、各ブロック２の頂点座標についてのみ変換手段３により変換式に基づく正確な演算を行う。このとき、頂点の数は（２５６／８）3＝３２７６８個であるが、この程度の数であれば、変換式が多少複雑であってもコンピュータにより短時間で処理することができる。
【００２４】
各頂点座標の変換値はブロックごとに１つのデータとしてテーブルに記述しておく。すなわち、表１に示すように、変換値テーブルの１つのデータは、ブロックを特定するためのブロックＮｏと８個の変換値（ＲＧＢ座標値）の計９個の要素からなる。この際、例えば隣接するブロックの頂点は同じ座標であるため、同じ変換値を複数のデータの要素として重複して記憶することになるが、本発明の方法はメモリの使用効率よりも高速処理を優先するものであるため、テーブル参照時の効率を考慮してこのようなデータ構造としている。
【００２５】
【表１】
0003905182.tif 000002
【００２６】
次に、係数テーブル５の作成方法および内容について説明する。上述のように、本実施の形態では１ブロックのサイズは８×８×８であるため、ブロック内（境界を含む）には５１２個の座標点（色）が存在する。これら各色の変換値は、頂点座標の変換値を用いて補間演算を行うことにより求められるが、従来のダイレクトマッピング法では、補間演算に必要な重み係数を補間演算を行う度に求めていた。これに対し、本発明の方法では、この重み係数を予め係数テーブル５に記録しておくが、この際全ての頂点についての重み係数を記録するのではなく、補間演算に使用する重み係数のみを記録する。また、この重み係数はブロック内の位置によって定まるものであるため、１ブロックに含まれる座標点の数（512個）分だけデータを記憶しておけよい。表２に、係数テーブル５の一例を示す。
【００２７】
【表２】
0003905182.tif 000003
【００２８】
表２において、「パターン」は上記ブロック内の位置を識別するための番号である。「頂点数」は補間演算に用いられる頂点の数である。例えば、画素値が頂点座標に相当する場合には、１つの頂点の値のみで演算を行うことができ、同様にブロックの境界線上であれば２つ、境界面上であれば４つの頂点座標の変換値のみで補間を行うことができる。補間演算に必要な頂点の数が予めわかっていれば、その数の回数だけ演算を行った時点で処理を終了できるので、重み係数が０の場合に頂点座標の変換値を０倍するといった無駄な処理を省くことができる。
【００２９】
ここで、頂点数が８個よりも少ない場合には、使用する頂点がどれであるかをテーブルに示しておかなければならない。本実施の形態では、隣接する頂点が連続して並ぶような順番で（一筆書きでなぞれる順番で）頂点を並べた頂点データ列を予め定義しておき、係数テーブル５には「スタート位置」として、このデータ列のうち、補間演算に使用する頂点が連続して並ぶ部分を指し示すポインタを記録する。但し、頂点データ列における「頂点」は、ブロック内において各頂点を区別するための相対的な値であるため、表２の例では、頂点を（０，０，０）、（１，０，０）のような単位座標により表している。
【００３０】
以上、変換値テーブル４および係数テーブル５の作成方法および内容について説明したが、次にこのテーブルを参照することによる画素値を置き換える処理（補間演算手段６の処理）について説明する。
【００３１】
カラー画像７が入力されると、補間演算手段６は各画素の画素値について以下の処理を施す。はじめにその画素値が色空間１において属するブロックのブロックＮｏを求め、変換値テーブル４からそのブロックＮｏのデータを検索し、そのブロックの頂点（入力された画素値を取り囲む頂点）の変換値を読み込む。
【００３２】
次にその画素値のブロックの中での位置を求め、係数テーブル５からその位置のデータを検索し、頂点の数と、スタート位置と、重み係数を読み込む。次に、頂点データ列のスタート位置によって示された頂点の座標の変換値（変換値テーブル４から読み込んだもの）と、その頂点の重み係数（係数テーブル５から読み込んだもの）を乗じ、さらに頂点の数が２以上であれば頂点データ列のスタート位置の次の頂点の座標の変換値と、その頂点の重み係数を乗じ、頂点の数分だけ同じ処理を繰り返した後、全ての乗算結果を積算して、補間する画素値を求め、最後にカラー画像７の画素値を求めた画素値に置き換える。この処理を画素ごとに繰り返して、カラー画像７の変換画像８を得る。
【００３３】
以上説明した実施の形態では、従来のダイレクトマッピング法の約１／３の処理時間で画像変換を行うことができ、実用上の効果は極めて大きい。
【００３４】
なお、本実施の形態では色空間を立方体のブロックに分割したが、本発明はこれに限定されるものではなく、例えば三角柱、あるいは三角錐を１ブロックとしてもよい。
【図面の簡単な説明】
【図１】本発明の画像変換方法の概要を示す図
【符号の説明】
１  色空間
２  ブロック
７  カラー画像
８  変換画像
【図１】
0003905182.tif 000004