JP4035176B2 - Image processing apparatus and method - Google Patents

Image processing apparatus and method Download PDF

Info

Publication number
JP4035176B2
JP4035176B2 JP28727095A JP28727095A JP4035176B2 JP 4035176 B2 JP4035176 B2 JP 4035176B2 JP 28727095 A JP28727095 A JP 28727095A JP 28727095 A JP28727095 A JP 28727095A JP 4035176 B2 JP4035176 B2 JP 4035176B2
Authority
JP
Japan
Prior art keywords
grid point
interpolation
point data
input
color
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP28727095A
Other languages
Japanese (ja)
Other versions
JPH09130627A (en
Inventor
信孝 三宅
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Canon Inc filed Critical Canon Inc
Priority to JP28727095A priority Critical patent/JP4035176B2/en
Priority to US08/691,588 priority patent/US6415065B1/en
Publication of JPH09130627A publication Critical patent/JPH09130627A/en
Application granted granted Critical
Publication of JP4035176B2 publication Critical patent/JP4035176B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Description

【0001】
【発明の属する技術分野】
本発明は、画像処理を行う画像処理装置及び方法に関する。
【0002】
【従来の技術】
従来より、画像入力装置等により入力したカラー情報をカラープリンタ等に出力する際に、デバイスインデペントな色空間から、カラープリンタ固有のデバイスデペントに色成分に変換する色変換技術について様々な提案がされてきている。画像入力装置から入力される色成分はレッド(以下、Rとする)、グリーン(以下、Gとする)、ブルー(以下、Bとする)の3成分であり、出力される色成分はプリンタの色材固有なシアン(以下、Cとおく)、マゼンタ(以下、Mとおく)、イエロー(以下、Yとおく)の3成分であり、また、CMY3色では墨を表現するのが困難な時には、ブラック(以下、Kとおく)を含めて4成分で表現する。古くより行われてきた、入力RGBから出力CMYKへの信号の流れを図2に示す。図中、入力するR、G、Bの各色成分の信号は、例えば、NTSCやPAL等の標準に準拠したRGBでも良いし、また、RGB以外にも、均等色空間であるL* ,a* ,b* 等を用いる方式も考えられる。201はlog変換、及び入力γ補正を示し、対数をとることによって、補色であるCMYの各成分を作成する(201にて作成したC、M、Yを、それぞれ、C0、M0、Y0、とおく。)。その後、202にて下色除去(UCR)、及び墨生成を行い、Kの成分を作成する。203のマスキング手段にて、プリンタ特有の色材に適合させたデバイスデペンドな色空間への変換を行う。この変換は、ブラックボックスモデルを用いた変換係数の算出方法が従来より提案されている。この変換式は、例えば3×3の変換マトリクスによる線形的なものも、また、精度を良くする為に、より高次の項まで含めた非線形的なものも考えられる。
【0003】
また、Kの項をマスキング手段の入力に含める構成も、UCR自体をマスキング手段内に含めることも考えられる。204は、出力γ補正手段を示し、作成した4色の色成分を、プリンタの特性に合わせて補正する手段である。205は、疑似階調処理を示し、プリンタの出力可能な階調数に疑似階調処理され、プリンタエンジンに送信され、出力される。
【0004】
図2の従来例は、マスキング手段203を、線形、もしくは、非線形の演算に近似して変換する手段について述べたが、昨今では、より精度の良い変換方式には3次元の色補正テーブルを用いる方法が主流になりつつある。例えば、特開昭63−2669号公報には、全ての組み合わせによる色補正テーブルを用いる、いわゆるダイレクトマッピング法により、色変換を行う方法が提案されているし、また、全ての組み合わせを用意するのではなく、量子化された少ない格子点にてテーブルを作成し、格子点以外の入力値には、補間演算により色変換値を算出する方式が、古くから各種提案されている。例えば、最も簡単な形で、立方体の8頂点による補間を考える。図3を用いて説明する。図3はテーブルに格納している各格子点中の、ある1立方体内の各頂点(a〜h)を基に入力点(i)を補間する方法を示したものである。テーブル内には、この各頂点の変換情報が格納されていて、その変換をfとおくと(テーブルに格納されているa〜hの各情報をf(a)〜f(h)とする。)、変換後のeの値g(e)は、

Figure 0004035176
で算出される。
【0005】
この方式は少ないテーブル容量で、格子点による立方体内を線形と近似することにより、容易に所望の色変換が実行できる。
【0006】
また、他の従来例として、特開平7−30772号公報では、疑似階調処理を用いて補間演算をすることなしに疑似的に色変換を行う提案がなされている。この方式では、疑似階調処理を2段回用意し、プレ階調数変換では色変換の格子点以外の入力値をなくす為に、疑似階調処理を用いて最適格子点の座標値に変換している。また、ポスト階調数変換では、プリンタに出力可能な量子化を、再び疑似階調処理により実現している。この提案は、ポスト階調数変換で粗い量子化(例えば2値化)をするのであれば、プレ階調数変換において疑似階調処理により階調数を制限しても画質的に問題ないという思想である。
【0007】
【発明が解決しようとする課題】
しかし、上記従来例には以下に示す問題点がある。色変換処理は、カラーのインクジェットプリンタや、溶融型熱転写、昇華型熱転写方式のプリンタ等では、ホストコンピュータ上でのプリンタドライバソフトにおいて実行されることが多い。昨今、プリンタエンジンの高解像化に伴い、処理する画素数が倍増し、プリンタドライバソフトの処理時間が大幅にかかってしまうという問題点が発生している。その為、色変換処理も精度を落とさずに、実行時間を少しでも短縮することが大きな課題となっている。従来例で示した格子点内の補正値を補間演算により算出する方式では、g(e)の1点を算出するのに24回の乗算と7回の加算が必要となり莫大な実行時間がかかってしまう問題点がある。
【0008】
また、特開平7−30772の疑似階調処理を用いて格子点に入力する以前に格子点以外の入力値をなくしてしまうプレ階調変換を用いて方式では、前述の補間演算よりも処理速度は速くなるが、プレ階調数変換の量子化数を数多くとらない(細かい量子化ステップにしない)と、プレ階調数変換の時点で疑似輪郭が発生してしまい、ポスト階調数変換においても画質は劣化したまま変換されてしまう。プレ階調数変換の量子化数を数多くとるということは、それだけテーブル容量が大きくなることに相当し、その為、ホストコンピュータ内のメモリの負荷が増加したり、また、大容量テーブルのアドレス探索の為に、結局は多くの時間がかかったりするという問題点がある。
【0009】
また、プリンタエンジンが高解像になった場合、処理する対象の画素を少なくする為に入力解像度を低く設定し、色変換後に拡大処理を行う方法や、2値化時に拡大処理を行い出力解像度相当に変換する構成も考えられる。上記の構成の場合、色変換実行時の解像度が低解像状態であればあるほど、色変換の精度の要求も高くなる。前述の従来例では、画質とスピード、また、画質とテーブル容量はトレードオフの関係になっているが、全てを満足できる色変換処理は存在しなかった。
【0010】
本願発明は、上述の点に鑑みてなされたものであり、良好な画像処理が極めて高速に実現できるようにすることを目的とする。
【0011】
【課題を解決するための手段】
上記目的を達成するために、本願発明は以下のような構成を有する。
【0012】
本願請求項1記載の発明は、テーブルを用いて画像処理を行う画像処理装置であって、入出力画像データの関係を示す複数の格子点データを有するテーブルを格納する格納手段と、画像データを入力する入力手段と、前記入力画像データに基づき、前記テーブルに格納されている格子点データからM個の格子点データを選択する第1の選択手段と、前記選択されたM個の格子点データの各々に対する前記画像データの相対位置に基づき、該格子点データの各々に対する補間割合を算出する算出手段と、前記M個の格子点データから補間割合の高いN個(N<M)の格子点データを選択する第2の選択手段と、前記N個の格子点データに基づき補間演算を行い、前記入力画像データに対する出力画像データを求める補間演算手段とを有することを特徴とする。
【0015】
【発明の実施の形態】
本発明にかかるシステムの概略の1例をブロック図を図13に示す。
【0016】
システムは、ホストコンピュータ10とカラープリンタ20で構成されている。
【0017】
画像データ発生部11は、例えばDTPソフト等により、ユーザによって原稿となる画像を生成する。色処理部12は、生成されたRGBM値をカラープリンタ20のインク特性等を考慮したデータであるプリンタデバイスに依存したC1111 M値に変換する。疑似階調処理部13は、色処理されたC2222 M値に対して疑似階調処理を行い、カラープリンタ20の記録部が画像形成することができるN値(N<M)に変換する。疑似階調処理としては、例えば、濃度保存型の誤差拡散法や、ディザ法等がある。転送部14はカラープリンタ20の処理に同期してC2222 N値を転送する。
【0018】
上述の各処理部は、CPUバス15を介して接続されているCPU16によって制御されている。CPU16はROM17に格納されているプログラムに基づき、RAM18をワークメモリとして用いることにより各処理部を制御する。
【0019】
カラープリンタ20は受信したC2222 N値データに基づき、CMYKの各色ヘッドを駆動させ、記録媒体上に画像形成する。
【0020】
本システムでは、カラープリンタ20のヘッドで再現できる1画素における階調数がN値と限られている。
【0021】
該カラープリンタ20で(入力原稿を高品位に再現できるように)、C1111 N値に疑似階調処理によって、複数画素を用いて、入力原稿の色を高品位に再現できるようにする。
【0022】
以下、本発明にかかる色処理部12を具体的に各実施形態で説明する。
【0023】
(実施形態1)
図1は、本発明にかかる実施形態1を示す要部ブロック図である。本実施形態では、入力したデバイス非依存なRGBの24ビット情報を、プリンタデバイスに依存したCMYK32ビット情報に変換する例について述べる。101はlog変換手段を示し、RGBの対数変換をすることで、補色であるCMYの情報を作成している。当然、このCMYはデバイス非依存な色成分である。この時に図2の従来例と同様、入力γ補正を施しても良い。作成したCMY信号は、ディザ信号発生部102から発生されたディザ信号を加算器103において、それぞれ付加する。付加するディザ信号は、簡易的には、各色同一信号であっても良いが、CMYの各軸に各々振らせた3次元的なディザ信号が好ましい。すなわち、色立体中の、或る1点の原信号を考えた場合、前者はディザ信号の大小にかかわらず、ディザ付加信号が直線上に乗るのに対し、後者はディザ付加信号が3次元空間中に分散される。各々付加された後の信号(ディザ付加信号)は8ビットのビット長にクリップ(不図示)された後、量子化部104に入力される。量子化部104では、ディザ付加信号を上位Mビット分(1≦M<7)以外をマスクし、各々Mビット分、すなわち、CMY3色で(M×3)ビット分の情報を得る。ディザ信号発生部102は複数画素に対応する所定エリアの各画素ごとに加算値が設定されているディザマトリクスを格納し、入力画像データの位置に応じたディザ付加信号を出力する。Mの値は、ホストコンピュータ内に格納できるテーブル容量、画質、処理スピード等により実験的に決定するのが良い。105はLUT(ルックアップテーブル)を示し、従来例と同様、各量子化点毎に出力装置特有の色再現特性に適合させたCMYKの補正値が格納されている。
【0024】
LUT105のアドレスは((2^M+1)^3)ほど必要になる。(a^bはaのb乗を意味する)。
【0025】
例えば、M=3の場合について説明する。M=3の場合には、各色3ビット分割になる為、状態数は8になる。補間の為には、各状態数の前後に補正値が必要な為、分割数+1である9点の補正値が必要である。図4に1次元の分割の例を示す。M=3である為、5ビット毎の量子化ステップになり、8ビット信号の最大値である“255”にも補正値を格納しておく。1次元で9点の補正値を格納する為、3次元では9^3である729色分の補正値を格納することになる。
【0026】
LUT105からは、入力した(M×3)ビットの情報を基に、色立体中に分割された、どこの立方体内に入っているかを判断する。分割されている立方体の数は状態数(M^3)と一致し、対象と判断された立方体を以後、適合立方体と称する。LUT105からは、補間に必要となる適合立方体の各頂点である8格子点分の補正値を出力し、8格子点格納部106に格納する。
【0027】
一方、量子化部によりマスクされた下位ビットのうち、上位(M+1)ビット目の各色1ビット、計3ビット情報は、補正値の格納されている立方体内で、いかなる相対的な位置にあるかを判定する情報である。絶対的な位置である適合立方体の8格子点に格納された補正値と、立方体内での相対的な位置関係の前述3ビット情報により、近似値算出部107にて、注目画素の補正値が算出される。
【0028】
本実施形態の特徴である、近似値算出部107の処理内容を図5、及び図6のフローチャートを基に説明する。
【0029】
図5中の最も大きい立方体は、適合立方体を示している。●印の各頂点は適合立方体の各頂点を示し、各頂点には、デバイス非依存な色空間からデバイス依存の色空間への変換補正値が格納されている。各頂点の補正値をLUTDATA〔i〕(0≦i≦7)と称する。○印の各頂点は●印の補正値から補間する点を示し、○印による立方体を補間立方体と称する。本従来例の思想は、高速に色変換を実行する為に、高速演算の可能な相対位置のみを補間し、それ以外の相対位置に関しては疑似階調を用いることによって、その相対位置に近似する方法である。すなわち、この補間立方体の各頂点のみが補間の対象である。
【0030】
図6のフローチャートを基に説明する。S601は、適合立方体でいかなる相対位置にあるかを算出するステップである。ここでは、相対位置を“point”という変数で表現する。また、各色の(M+1)ビット目の1ビット情報をC成分はclow,M成分はmlow,Y成分はylowと表現している。S601では、C成分を3ビット目、M成分を2ビット目、Y成分を1ビット目に配置して3ビット情報として扱う。S602からS608までは、3ビット情報の“point”変数が、いかなる値かを判定し、その相対位置に応じた補間演算を実行する。
【0031】
S602に適合すると、補間する補正値をIPDATAとすると、相対位置がLUTDATA〔0〕と同位置である為に、IPDATA=LUTDATA〔0〕とする(S609)。
【0032】
S603に適合すると、LUTDATA〔0〕とLUTDATA〔1〕の中間点である為に、IPDATA=(LUTDATA〔0〕+LUTDATA〔1〕)>>1(“>>n”は右方向にnビットシフトを示す。1/(2^n)と等価。)とする(S610)。
【0033】
S604に適合すると、LUTDATA〔0〕とLUTDATA〔2〕の中間的である為に、IPDATA=(LUTDATA〔0〕+LUTDATA〔2〕)>>1とする(S611)。
【0034】
S605に適合すると、LUTDATA〔0〕、LUTDATA〔1〕、LUTDATA〔2〕、LUTDATA〔3〕の4点から等距離になる為に、
IPDATA=(LUTDATA〔0〕+LUTDATA〔1〕+LUTDATA〔2〕+LUTDATA〔3〕)>>2とする(S612)。
【0035】
S606に適合すると、LUTDATA〔0〕とLUTDATA〔4〕の中間的である為に、IPDATA=(LUTDATA〔0〕+LUTDATA〔4〕)>>1とする(S613)。
【0036】
S607に適合すると、LUTDATA〔0〕、LUTDATA〔1〕、LUTDATA〔4〕、LUTDATA〔5〕の4点から等距離になる為に、
IPDATA=(LUTDATA〔0〕+LUTDATA〔1〕+LUTDATA〔4〕+LUTDATA〔5〕)>>2とする(S614)。
【0037】
S608に適合すると、LUTDATA〔0〕、LUTDATA〔2〕、LUTDATA〔4〕、LUTDATA〔6〕の4点から等距離になる為に、
IPDATA=(LUTDATA〔0〕+LUTDATA〔2〕+LUTDATA〔4〕+LUTDATA〔6〕)>>2とする(S615)。
【0038】
S602〜S608全てに適合しない場合、すなわちpoint=7の場合には、LUTDATA〔0〕〜LUTDATA〔7〕の8点の中心になる為に、
IPDATA=(LUTDATA〔0〕+LUTDATA〔1〕+LUTDATA〔2〕+LUTDATA〔3〕+LUTDATA〔4〕+LUTDATA〔5〕+LUTDATA〔6〕+LUTDATA〔7〕)>>3とする(S616)。
【0039】
以上が、本実施形態に用いる補間演算であるが、S609〜S616の補間演算から明らかなように、乗算は全く用いていない。最も演算子の多いS616の処理においても、7回の加算とビットシフトのみで算出することができる。高解像度プリンタにおいては、処理する画素数が従来よりも大量に増加する為、1画素の変換の時間差が僅かでも画像全体では大きな差となって表われてくる。本実施形態との差異は、入力点iに対する要求する色変換補正情報g(i)をいかに求めるかという点にある。本実施形態では色変換の近似に大きな特徴がある。すなわちLUTを用いる従来例で補間演算を使うものは、上位ビット格子点の補正情報から、下位ビット全てを用いて、線形的にg(i)を積和演算に算出するものであり、また、LUTに入力する以前に格子点分の階調数にプレ階調変換する従来例は、f(a)やf(b)といった格子点の補正結果をもってg(i)の代用にしている。
【0040】
両者の違いは、下位ビットをいかに用いるかであって、前者では、LUT後の補間演算、後者はLUT入力前の最適格子点探索に用いている。
【0041】
それらの従来例に比べ、本実施形態の思想は、積和演算が必要な補間演算をする代わりに、加算とビットシフトにて演算できる相対位置に近似している点が大きな特徴である。つまり、本実施形態は、前者の従来例よりは、遥かに高速に処理が実行でき、また後者の従来例に比べ、テーブル容量は等しく、かつ、処理速度をほとんど増加させずに各色1ビット分量子化ビット数を増加させたものに近づくことになる(但し、適合立方体内では非線形性は取り除けない)。
【0042】
図7は、2つの従来例と、本発明の思想の違いを簡単に2次元のモデルを用いて示したものである。図7(1)は補間演算によるもので、座標値の補正値を算出している。そのため、所望の座標値(×印)は移動しない。図7(2)はプレ階調変換によるもので、格子点による補正値にて代用している。そのため、所望の座標値の移動(量子化誤差)が大きい。図7(3)は本発明によるもので、量子化誤差を(2)の1/2にすることにより、求めたい補正値を格子点以外にも容易に近似することが可能になる。
【0043】
また、本実施形態では、いかなる相対位置にあっても予め適合立方体の8点の補正情報をLUTから取りだし格納している例について述べたが、8点の情報を用いる相対位置は補間立方体の一頂点のみ(前述の例では“point=7”)である為、当然、相対位置に応じて、適合立方体の必要となる頂点の補正情報のみをLUTから取り出す様にしても良い。
【0044】
(実施形態2)
図8は、実施形態2を示す要部ブロック図である。本実施形態は、図1に示す実施形態1と一部が異なるだけであり、同一部には同一番号を付して異なっている点を説明する。図中801は量子化部を示し、各色上位Mビットと下位Nビットに分離される。例えば、各色8ビットであれば、M+N≦8になる。各色、下位Nビットは、補間係数発生部802に送信され、適合立方体の各頂点の比率を発生する。この補間係数の発生が本実施形態の特徴であるが、詳細は後述する。補間係数に基づき設定される補間に必要な格子点は格子点決定部803に送信され、適合立方体のいかなる頂点のアドレスをLUT105に入力するかが決定される。LUT105は、図1の実施形態1と同様、上位ビットによるデバイス非依存のCMYからデバイス依存のCMYKの変換値が格納されている。近似値算出部804はLUT105からの各頂点の変換補正値、補間係数発生部802からの各頂点の補間係数を基に、補間演算を実行し、近似値を算出する。
【0045】
次に、図9のフローチャートを基に補間演算を説明する。
【0046】
図中にS901は初期化を表し、適合立方体の各頂点(0〜7)の頂点番号の変数をiで表し、非零の補間係数をカウントするカウンタ変数をcで表す。IPDATAは図1の実施形態1同様、入力点デバイス依存のCMYK補正情報を表す。
【0047】
S902は、頂点iにおける補間係数p(i)が非零か否かを判断している。もし、p(i)=0の場合には、S903にてiを更新し、次の頂点に進む。もし、p(i)が非零であった時のみS904にて非零の補間係数のカウンタ変数cを1だけ加算する。
【0048】
非零の補間係数を有する頂点では、S905にて格子点である入力アドレスを決定する。すなわち、適合立方体の頂点iの絶対位置をLUTに送信することになる。S906では、送信されたアドレスに格納されているエンジン依存のCMYK補正値(LUTDATA〔i〕とおく)を出力する。S907では、補間係数p(i)と、補正値LUTDATA〔i〕との積和演算を行なう。積和結果は新たにIPDATAに加算されていく。S908で、非零のカウンタ変数cが予め設定している規定回数n(n<8)に達したか、もしくは、頂点が7(最終頂点)まで達したか否かを判断している。もし、どちらかの変数が達していた場合には終了し、達していない場合には、S903にて次の頂点に移行する。
【0049】
図9のフローチャートでも明らかな様に補間係数が0である頂点の数が多ければ多いほど処理速度は速くなる。すなわち、本実施例では、S908の規定回数nの値によって速度を制御することになる。言い換えれば、適合立方体の8頂点のうち、n点の頂点のみを補間演算に用いることによって積和演算の回数を減少させている。
【0050】
従来例でも説明したように通常の8頂点による補間演算は24回の乗算と7回の加算によって算出できる。本実施形態では、補間係数の発生を少し工夫することによって、n回の演算と(n−1)回の加算で代用させることができる。当然、立方体内での相対位置点と補間係数が一致しない入力点が発生するが、前段でディザ信号を付加している為、複数画素を面積的に見れば色変換誤差はほとんど問題ない。
【0051】
次に、補間係数発生部802で行われる、予め、非零の補間係数をn点以内に抑え込む動作手順の一例を図10に示す。
【0052】
まず、S1001において、各頂点の相対位置に見合った正しい補間割合を整数比にて算出する。S1002では、補間割合が非零である頂点の数をカウントし、その数が、予め設定した規定回数n以下になっているか否かを判断する。もし、はじめからn以下であれば、各頂点の正確な補間割合を補間係数として設定することができる(S1003)。もし、非零の頂点の数がnを越えていたら、S1004にて、非零である頂点の中で補間割合を基にソートを実行する。ソートした後の最小の補間割合である頂点の割合をkとすると、S1005にて補間割合kを0に置き換える。kを0に置き換えた分だけ係数が余ってしまう為、S1006にてkの値を消費する。すなわち、最大補間割合である頂点から順にk回分だけを+1ずつ加算していく。もし、非零の全頂点に+1ずつ加算してもkの値が消費できない場合には、また、最大補間割合である頂点に戻り、再び、+1ずつ加算していく。このS1004、S1005、S1006の動作を非零の頂点がn以下になるまで繰り返す(ソート順位を記憶しておけばソートの動作は毎回実行しなくても構わない)。
【0053】
実際の補間割合と補間係数の設定の例について図11、図12を基に説明する。図11は適合立方体を示し、説明を容易にする為、各頂点をa〜hの記号で表している。量子化した上位ビットが各6ビット、マスクされた下位ビットが各2ビットと仮定し、補間係数算出部へは各2ビットの3色分で6ビット情報が入力されるとする。いま、入力された情報の適合立方体内の相対位置が図11のiの位置と仮定する。立方格子内のiの相対位置は、立方体の1辺の長さを1に正規化し、下位ビットで形成する相対的な立方体の各頂点をa〜hとすると、頂点aから3軸ともに1/4だけ離れた距離にあるものとする(各軸2ビットの為、00、01、10、11の入力が可能であり、頂点aの座標を(00、00、00)とすると、iの座標は(01、01、01)とする。)いま、iの座標を各頂点から補間しようとすると、3次元の線形補間では体積比となる為、図12の“補間割合”の欄に記載されている比率によって補間演算がなされる。(各割合を積和して、64で割る(6ビットシフト)。)この補間割合では、8頂点全てに係数がかかってしまう為、積和回数が増加してしまう。(予め補間割合を演算しておいて積和演算を行なっても8回の乗算と7回の加算になる)そこで、積和回数を減少させる為に、図10のフローチャートを用いてn=4に設定して非零の係数を減らした結果が“補間係数”の欄に記載した値である。n=4の為、4回の乗算と3回の加算で補間(近似)が実行できる。
【0054】
なお、図9のフローチャートでも補間係数が、1で正規化していないで、合計が2のべき乗である整数比にしている場合には、積和演算の後にビットシフトをして除算しなくてはならない。
【0055】
また、設定されたnの値で処理時間及び補間精度が変わるので、nの値をユーザが用途に応じて設定できるようにしても構わない。
【0056】
また、補間係数発生部は、前述したn点以内に抑えこんだ補間係数をLUTの形で格納しても良いし、勿論、他の構成でも構わない。
【0057】
また、図1及び図8においてLUT入力以前にlog変換を実行しているが、当然log変換をLUT内部に入れてしまう構成も考えられる。
【0058】
上述の各実施形態における色処理をホストコンピュータ10の色処理部12に適用することにより、良好な色処理を高速に行うことができる。
【0059】
特に、図13に示すシステムの場合、カラープリンタ20の各記録部がHレベルしか忠実に再現することができません。
【0060】
したがって、色処理において上述のような近似を適用することにより画質にはほとんど影響を与えずに高速に処理することができる。
【0061】
【発明の効果】
本願請求項1記載の発明によれば、簡単な構成で高速にテーブルに格納されている出力画像データから入力画像データに対応する出力画像データを算出することができる。
【0062】
本願請求項7記載の発明によれば、補間処理にかかる積和演算の処理回数を制限することができ、補間処理にかかる時間を短縮することができる。
【0063】
また、高速にかつ近似精度が高い画像処理を実現することができる。
【図面の簡単な説明】
【図1】実施形態1を示す要部ブロック図。
【図2】従来例を示す要部ブロック図。
【図3】従来例の補間を示す図。
【図4】第1の量子化を示す図。
【図5】実施形態1の適合立方体の説明図。
【図6】実施形態1の近似値算出の動作手順を示すフローチャート。
【図7】実施形態1と従来例との思想の比較。
【図8】実施形態2を示す要部ブロック図。
【図9】実施形態2の近似値算出の動作手順を示すフローチャート。
【図10】実施形態2の補間係数の設定手順を示すフローチャート。
【図11】補間係数の設定例を示す適合立方体の説明図。
【図12】補間係数の発生例を示す図。
【図13】本願発明にかかるシステムの1例を示す概略図。[0001]
BACKGROUND OF THE INVENTION
The present invention relates to an image processing apparatus and method for performing image processing.
[0002]
[Prior art]
Various proposals have been made for color conversion technology that converts color information input from an image input device or the like into a color printer from a device-independent color space to a color printer-specific device dependent. Has been done. The color components input from the image input device are three components of red (hereinafter referred to as R), green (hereinafter referred to as G), and blue (hereinafter referred to as B), and the output color components are those of the printer. When there are three components of cyan (hereinafter referred to as “C”), magenta (hereinafter referred to as “M”), and yellow (hereinafter referred to as “Y”) unique to the color material, and when it is difficult to express black with CMY three colors , And black (hereinafter referred to as K). FIG. 2 shows a signal flow from input RGB to output CMYK, which has been performed since ancient times. In the figure, R, G, and B color component signals to be input may be RGB that conforms to standards such as NTSC and PAL, and other than RGB, L is a uniform color space. * , A * , B * A method using the above can also be considered. 201 represents log conversion and input γ correction, and each component of CMY that is a complementary color is created by taking a logarithm (C, M, and Y created in 201 are C0, M0, Y0, and deep.). Thereafter, under color removal (UCR) and black generation are performed at 202, and a K component is created. The masking means 203 performs conversion to a device-dependent color space adapted to the color material specific to the printer. For this conversion, a conversion coefficient calculation method using a black box model has been conventionally proposed. For example, a linear expression based on a 3 × 3 conversion matrix or a non-linear expression including higher-order terms can be considered to improve accuracy.
[0003]
Further, it is conceivable that the K term is included in the input of the masking means, and the UCR itself is included in the masking means. Reference numeral 204 denotes output γ correction means for correcting the created four color components in accordance with the characteristics of the printer. Reference numeral 205 denotes pseudo gradation processing. The pseudo gradation processing is performed to the number of gradations that can be output by the printer, and is transmitted to the printer engine for output.
[0004]
In the conventional example of FIG. 2, the masking means 203 has been described as means for converting it by approximating linear or non-linear calculation. However, recently, a three-dimensional color correction table is used for a more accurate conversion method. The method is becoming mainstream. For example, Japanese Patent Laid-Open No. 63-2669 proposes a method for performing color conversion by a so-called direct mapping method using a color correction table for all combinations, and prepares all combinations. Instead, various methods have been proposed for a long time to create a table with a small number of quantized grid points and calculate color conversion values by interpolation for input values other than the grid points. For example, consider interpolation with eight vertices of a cube in the simplest form. This will be described with reference to FIG. FIG. 3 shows a method of interpolating the input point (i) based on each vertex (a to h) in a certain cube among the lattice points stored in the table. The conversion information of each vertex is stored in the table, and if the conversion is set to f (information of a to h stored in the table is set to f (a) to f (h). ), And the converted value e (g) is
Figure 0004035176
Is calculated by
[0005]
This method has a small table capacity, and can easily perform desired color conversion by approximating a cube with lattice points to be linear.
[0006]
As another conventional example, Japanese Patent Application Laid-Open No. 7-30772 proposes a pseudo color conversion without performing an interpolation operation using a pseudo gradation process. In this method, pseudo gradation processing is prepared twice, and in pre-gradation conversion, the input values other than the color conversion lattice points are eliminated and converted to the optimal lattice point coordinate values using pseudo gradation processing. is doing. In post-gradation conversion, quantization that can be output to the printer is realized again by pseudo-gradation processing. In this proposal, if coarse quantization (for example, binarization) is performed by post-gradation conversion, there is no problem in image quality even if the gradation is limited by pseudo gradation processing in pre-gradation conversion. It is an idea.
[0007]
[Problems to be solved by the invention]
However, the conventional example has the following problems. The color conversion process is often executed in printer driver software on a host computer in a color ink jet printer, a fusion type thermal transfer, a sublimation type thermal transfer type printer, or the like. Recently, as the resolution of the printer engine is increased, the number of pixels to be processed doubles, and the processing time of the printer driver software is greatly increased. For this reason, it is a big problem to shorten the execution time even a little without degrading the accuracy of the color conversion processing. In the method of calculating the correction value in the lattice point shown in the conventional example by interpolation calculation, it takes 24 multiplications and 7 additions to calculate one point of g (e), and it takes enormous execution time. There is a problem.
[0008]
Further, in the method using the pre-gradation conversion that eliminates the input values other than the lattice points before inputting to the lattice points using the pseudo gradation processing of JP-A-7-30772, the processing speed is faster than the above-described interpolation calculation. However, if the number of pre-gradation conversions is not large (no fine quantization step), pseudo contours will occur at the time of pre-gradation conversion, However, the image quality is deteriorated and converted. Taking a large number of quantizations for pre-gradation conversion corresponds to an increase in the table capacity, which increases the load on the memory in the host computer, and searches for addresses in large-capacity tables. Therefore, there is a problem that it takes a lot of time in the end.
[0009]
In addition, when the printer engine becomes high resolution, the input resolution is set low to reduce the number of pixels to be processed, and the enlargement process is performed after color conversion, or the enlargement process is performed during binarization and the output resolution. A configuration for substantial conversion is also conceivable. In the case of the above configuration, the lower the resolution at the time of color conversion execution, the higher the requirement for color conversion accuracy. In the above-described conventional example, image quality and speed, and image quality and table capacity are in a trade-off relationship, but there is no color conversion process that can satisfy all of them.
[0010]
The present invention has been made in view of the above-described points, and an object of the present invention is to realize good image processing at extremely high speed.
[0011]
[Means for Solving the Problems]
In order to achieve the above object, the present invention has the following configuration.
[0012]
The invention described in claim 1 is an image processing apparatus that performs image processing using a table, a storage unit that stores a table having a plurality of lattice point data indicating the relationship between input and output image data, and image data. Input means for inputting; first selection means for selecting M pieces of grid point data from the grid point data stored in the table based on the input image data; and the selected M pieces of grid point data. Calculating means for calculating an interpolation ratio for each of the grid point data based on the relative position of the image data with respect to each of the image data, and N (N <M) grid points having a high interpolation ratio from the M grid point data A second selection unit that selects data; and an interpolation calculation unit that performs an interpolation calculation based on the N pieces of grid point data and obtains output image data for the input image data. And features.
[0015]
DETAILED DESCRIPTION OF THE INVENTION
A schematic example of the system according to the present invention is shown in a block diagram in FIG.
[0016]
The system includes a host computer 10 and a color printer 20.
[0017]
The image data generation unit 11 generates an image to be a document by the user using, for example, DTP software. The color processing unit 12 uses the generated RGBM values as C data depending on the printer device, which is data that considers ink characteristics of the color printer 20 and the like. 1 M 1 Y 1 K 1 Convert to M value. The pseudo gradation processing unit 13 performs color processing on the C 2 M 2 Y 2 K 2 Pseudo gradation processing is performed on the M value to convert it to an N value (N <M) at which the recording unit of the color printer 20 can form an image. Examples of the pseudo gradation processing include a density preservation type error diffusion method and a dither method. The transfer unit 14 synchronizes with the processing of the color printer 20 and performs C 2 M 2 Y 2 K 2 Transfer N value.
[0018]
Each processing unit described above is controlled by a CPU 16 connected via a CPU bus 15. The CPU 16 controls each processing unit by using the RAM 18 as a work memory based on a program stored in the ROM 17.
[0019]
The color printer 20 receives the received C 2 M 2 Y 2 K 2 Based on the N-value data, the CMYK color heads are driven to form an image on a recording medium.
[0020]
In this system, the number of gradations per pixel that can be reproduced by the head of the color printer 20 is limited to N values.
[0021]
With the color printer 20 (so that the input document can be reproduced with high quality), C 1 M 1 Y 1 K 1 By using a plurality of pixels by pseudo gradation processing on the N value, the color of the input document can be reproduced with high quality.
[0022]
Hereinafter, the color processing unit 12 according to the present invention will be specifically described in each embodiment.
[0023]
(Embodiment 1)
FIG. 1 is a principal block diagram showing Embodiment 1 according to the present invention. In this embodiment, an example will be described in which input device-independent RGB 24-bit information is converted into CMYK 32-bit information depending on the printer device. Reference numeral 101 denotes log conversion means, which creates CMY information as complementary colors by performing RGB logarithmic conversion. Naturally, this CMY is a device-independent color component. At this time, as in the conventional example of FIG. 2, input γ correction may be performed. The created CMY signal is added with the dither signal generated from the dither signal generator 102 by the adder 103, respectively. The dither signal to be added may be the same signal for each color in a simple manner, but a three-dimensional dither signal that is swung on each axis of CMY is preferable. That is, when an original signal of a certain point in a color solid is considered, the dither addition signal is on a straight line regardless of the size of the dither signal, whereas the latter has a three-dimensional space. Distributed in. Each added signal (dither addition signal) is clipped to a bit length of 8 bits (not shown) and then input to the quantization unit 104. The quantization unit 104 masks the dither addition signal except for the upper M bits (1 ≦ M <7), and obtains information of M bits, that is, (M × 3) bits in CMY three colors. The dither signal generation unit 102 stores a dither matrix in which an addition value is set for each pixel in a predetermined area corresponding to a plurality of pixels, and outputs a dither addition signal corresponding to the position of input image data. The value of M is preferably determined experimentally by the table capacity, image quality, processing speed, etc. that can be stored in the host computer. Reference numeral 105 denotes an LUT (Look Up Table), which stores CMYK correction values adapted to color reproduction characteristics specific to the output device for each quantization point, as in the conventional example.
[0024]
The address of the LUT 105 is required ((2 ^ M + 1) ^ 3). (A ^ b means b to the power of a).
[0025]
For example, a case where M = 3 will be described. In the case of M = 3, since each color is divided into 3 bits, the number of states is 8. For interpolation, since correction values are required before and after each number of states, nine correction values that are the number of divisions + 1 are required. FIG. 4 shows an example of one-dimensional division. Since M = 3, the quantization step is performed every 5 bits, and the correction value is also stored in “255” which is the maximum value of the 8-bit signal. Since nine correction values are stored in one dimension, correction values for 729 colors, which are 9 ^ 3 in three dimensions, are stored.
[0026]
From the LUT 105, based on the inputted (M × 3) bit information, it is determined which cube is divided into color solids. The number of cubes that are divided coincides with the number of states (M ^ 3), and a cube that is determined to be a target is hereinafter referred to as a matching cube. From the LUT 105, correction values for 8 lattice points that are the vertices of the matching cube necessary for interpolation are output and stored in the 8 lattice point storage unit 106.
[0027]
On the other hand, among the lower bits masked by the quantization unit, the relative position of the 1 bit of each color of the upper (M + 1) bit, that is, the total 3 bit information, is in the cube where the correction value is stored. It is the information which determines. Based on the correction values stored in the eight lattice points of the matching cube, which are absolute positions, and the above-described 3-bit information of the relative positional relationship in the cube, the approximate value calculation unit 107 determines the correction value of the target pixel. Calculated.
[0028]
The processing content of the approximate value calculation unit 107, which is a feature of this embodiment, will be described with reference to the flowcharts of FIGS.
[0029]
The largest cube in FIG. 5 indicates a matching cube. Each vertex of the mark ● indicates a vertex of the matching cube, and each vertex stores a conversion correction value from a device-independent color space to a device-dependent color space. The correction value of each vertex is referred to as LUTDATA [i] (0 ≦ i ≦ 7). Each vertex of the circle indicates a point to be interpolated from the correction value of the circle, and the cube with the circle is referred to as an interpolation cube. The idea of this conventional example is to approximate only the relative position by interpolating only the relative position where high-speed calculation is possible and using pseudo gradation for other relative positions in order to execute color conversion at high speed. Is the method. That is, only the vertices of this interpolation cube are interpolation targets.
[0030]
This will be described based on the flowchart of FIG. S601 is a step of calculating what relative position the conforming cube is. Here, the relative position is expressed by a variable “point”. Further, the 1-bit information of the (M + 1) -th bit of each color is expressed as C component is “clow”, M component is “mlow”, and Y component is “ylow”. In S601, the C component is arranged at the third bit, the M component is arranged at the second bit, and the Y component is arranged at the first bit, and is handled as 3-bit information. From S602 to S608, it is determined what value the “point” variable of the 3-bit information is, and an interpolation operation according to the relative position is executed.
[0031]
If the correction value to be interpolated is IPDATA when conforming to S602, since the relative position is the same as LUTDATA [0], IPDATA = LUTDATA [0] is set (S609).
[0032]
When S603 is met, IPDATA = (LUTDATA [0] + LUTDATA [1]) >> 1 (“>> n” is shifted n bits to the right since it is the midpoint between LUTDATA [0] and LUTDATA [1]. It is equivalent to 1 / (2 ^ n)) (S610).
[0033]
If it conforms to S604, since it is intermediate between LUTDATA [0] and LUTDATA [2], IPDATA = (LUTDATA [0] + LUTDATA [2]) >> 1 is set (S611).
[0034]
In conformity with S605, since the LUTDATA [0], LUTDATA [1], LUTDATA [2] and LUTDATA [3] are equidistant from the four points,
IPDATA = (LUTDATA [0] + LUTDATA [1] + LUTDATA [2] + LUTDATA [3]) >> 2 (S612).
[0035]
If S606 is met, IPDATA = (LUTDATA [0] + LUTDATA [4]) >> 1 because it is intermediate between LUTDATA [0] and LUTDATA [4] (S613).
[0036]
In conformity with S607, because LUTDATA [0], LUTDATA [1], LUTDATA [4], and LUTDATA [5] are equidistant from four points,
IPDATA = (LUTDATA [0] + LUTDATA [1] + LUTDATA [4] + LUTDATA [5]) >> 2 (S614).
[0037]
In conformity with S608, since the LUTDATA [0], LUTDATA [2], LUTDATA [4], and LUTDATA [6] are equidistant from the four points,
IPDATA = (LUTDATA [0] + LUTDATA [2] + LUTDATA [4] + LUTDATA [6]) >> 2 (S615).
[0038]
When not conforming to all of S602 to S608, that is, when point = 7, in order to be the center of 8 points of LUTDATA [0] to LUTDATA [7],
IPDATA = (LUTDATA [0] + LUTDATA [1] + LUTDATA [2] + LUTDATA [3] + LUTDATA [4] + LUTDATA [5] + LUTDATA [6] + LUTDATA [7]) >> 3 (S616).
[0039]
The above is the interpolation calculation used in the present embodiment, but no multiplication is used as is apparent from the interpolation calculations in S609 to S616. Even in the process of S616 having the largest number of operators, the calculation can be performed by only seven additions and bit shifts. In a high-resolution printer, the number of pixels to be processed increases more than before, so even if the time difference of conversion of one pixel is slight, it appears as a large difference in the entire image. The difference from the present embodiment is how to obtain the required color conversion correction information g (i) for the input point i. This embodiment has a great feature in approximation of color conversion. That is, in the conventional example using the LUT, the one using the interpolation operation is to linearly calculate g (i) to the product-sum operation using all the lower bits from the correction information of the upper bit lattice points. In the conventional example in which the pre-gradation conversion is performed to the number of gradations corresponding to the grid points before being input to the LUT, the correction result of the grid points such as f (a) and f (b) is substituted for g (i).
[0040]
The difference between the two is how the lower bits are used. The former is used for the interpolation operation after the LUT, and the latter is used for the optimum lattice point search before the LUT input.
[0041]
Compared to those conventional examples, the idea of the present embodiment is characterized in that it approximates a relative position that can be calculated by addition and bit shift instead of performing an interpolation calculation that requires a product-sum operation. In other words, the present embodiment can execute processing at a much higher speed than the former conventional example, and has the same table capacity as the latter conventional example, and is equivalent to one bit for each color without substantially increasing the processing speed. It approaches the one with the increased number of quantization bits (however, the nonlinearity cannot be removed in the fitting cube).
[0042]
FIG. 7 shows the difference between the two conventional examples and the idea of the present invention simply using a two-dimensional model. FIG. 7 (1) is based on an interpolation calculation, and a correction value of a coordinate value is calculated. Therefore, the desired coordinate value (x mark) does not move. FIG. 7B is based on pre-gradation conversion, and a correction value based on a grid point is used instead. Therefore, the movement of the desired coordinate value (quantization error) is large. FIG. 7 (3) is according to the present invention, and by making the quantization error ½ that of (2), it becomes possible to easily approximate the correction value to be obtained other than the lattice points.
[0043]
In the present embodiment, an example in which correction information of 8 points of the matching cube is previously extracted from the LUT and stored at any relative position has been described. However, the relative position using the information of 8 points is one of the interpolation cubes. Since only the vertices (“point = 7” in the above example), naturally, only the correction information of the vertices necessary for the conforming cube may be extracted from the LUT according to the relative position.
[0044]
(Embodiment 2)
FIG. 8 is a principal block diagram showing the second embodiment. This embodiment is different from the first embodiment shown in FIG. 1 only in part, and the same parts are denoted by the same reference numerals and different points will be described. In the figure, reference numeral 801 denotes a quantization unit, which is separated into upper M bits and lower N bits for each color. For example, if each color has 8 bits, M + N ≦ 8. Each color and lower N bits are transmitted to the interpolation coefficient generator 802 to generate the ratio of each vertex of the matching cube. The generation of this interpolation coefficient is a feature of this embodiment, and details will be described later. Lattice points necessary for interpolation set based on the interpolation coefficient are transmitted to the lattice point determination unit 803, and it is determined which vertex address of the matching cube is input to the LUT 105. As in the first embodiment of FIG. 1, the LUT 105 stores a conversion value from device-independent CMY to device-dependent CMYK by upper bits. The approximate value calculation unit 804 executes an interpolation operation based on the conversion correction value of each vertex from the LUT 105 and the interpolation coefficient of each vertex from the interpolation coefficient generation unit 802 to calculate an approximate value.
[0045]
Next, the interpolation calculation will be described based on the flowchart of FIG.
[0046]
In the figure, S901 represents initialization, a variable of the vertex number of each vertex (0 to 7) of the conforming cube is represented by i, and a counter variable for counting a non-zero interpolation coefficient is represented by c. IPDATA represents CMYK correction information dependent on the input point device as in the first embodiment of FIG.
[0047]
In step S902, it is determined whether the interpolation coefficient p (i) at the vertex i is non-zero. If p (i) = 0, i is updated in S903, and the process proceeds to the next vertex. If p (i) is non-zero, the counter variable c of the non-zero interpolation coefficient is incremented by 1 in S904.
[0048]
At a vertex having a non-zero interpolation coefficient, an input address that is a grid point is determined in S905. That is, the absolute position of the vertex i of the conforming cube is transmitted to the LUT. In S906, the engine-dependent CMYK correction value (LUTDATA [i]) stored in the transmitted address is output. In S907, a product-sum operation is performed on the interpolation coefficient p (i) and the correction value LUTDATA [i]. The product-sum result is newly added to IPDATA. In S908, it is determined whether or not the non-zero counter variable c has reached a preset specified number n (n <8), or whether the vertex has reached 7 (final vertex). If either variable has been reached, the process ends. If not, the process proceeds to the next vertex in S903.
[0049]
As is apparent from the flowchart of FIG. 9, the processing speed increases as the number of vertices having an interpolation coefficient of 0 increases. That is, in this embodiment, the speed is controlled by the value of the specified number n of S908. In other words, the number of product-sum operations is reduced by using only the vertices of n points among the eight vertices of the conforming cube.
[0050]
As described in the conventional example, the normal interpolation calculation with 8 vertices can be calculated by 24 multiplications and 7 additions. In the present embodiment, by slightly devising the generation of the interpolation coefficient, it is possible to substitute n calculations and (n−1) additions. Naturally, an input point whose interpolation coefficient does not coincide with the relative position point in the cube is generated, but since a dither signal is added in the previous stage, there is almost no problem in color conversion error when viewing a plurality of pixels in terms of area.
[0051]
Next, FIG. 10 shows an example of an operation procedure performed by the interpolation coefficient generation unit 802 to suppress non-zero interpolation coefficients within n points in advance.
[0052]
First, in S1001, a correct interpolation ratio corresponding to the relative position of each vertex is calculated as an integer ratio. In S1002, the number of vertices whose interpolation ratio is non-zero is counted, and it is determined whether or not the number is equal to or less than a preset specified number n. If it is n or less from the beginning, an accurate interpolation ratio of each vertex can be set as an interpolation coefficient (S1003). If the number of non-zero vertices exceeds n, sorting is performed based on the interpolation ratio among the non-zero vertices in S1004. If the vertex ratio, which is the minimum interpolation ratio after sorting, is k, the interpolation ratio k is replaced with 0 in S1005. Since the coefficient is left by the amount k is replaced with 0, the value of k is consumed in S1006. That is, only k times are added in order from the vertex that is the maximum interpolation ratio. If the value of k cannot be consumed even if +1 is added to all non-zero vertices, the vertices are returned to the vertex having the maximum interpolation ratio, and +1 is added again. The operations of S1004, S1005, and S1006 are repeated until the number of non-zero vertices becomes n or less (the sort operation may not be executed every time if the sort order is stored).
[0053]
An example of setting the actual interpolation ratio and interpolation coefficient will be described with reference to FIGS. FIG. 11 shows a conforming cube, and each vertex is represented by symbols a to h for easy explanation. Assume that the quantized upper bits are 6 bits each, and the masked lower bits are 2 bits each, and 6-bit information is input to the interpolation coefficient calculation unit for 3 colors of 2 bits each. Assume that the relative position of the input information in the matching cube is the position i in FIG. The relative position of i in the cubic lattice is obtained by normalizing the length of one side of the cube to 1 and assuming each vertex of the relative cube formed by the lower bits to be a to h. It is assumed that there is a distance of 4 (each axis has 2 bits, so that 00, 01, 10, 11 can be input, and the coordinates of vertex a are (00, 00, 00). (It is assumed that (01, 01, 01).) Now, if the coordinates of i are to be interpolated from each vertex, the volume ratio is obtained in the three-dimensional linear interpolation. The interpolation calculation is performed according to the ratio. (Each ratio is summed and divided by 64 (6-bit shift).) With this interpolation ratio, the coefficient is applied to all eight vertices, so the number of product sums increases. (Even if the interpolation ratio is calculated in advance and the product-sum operation is performed, 8 multiplications and 7 additions are performed.) Therefore, in order to reduce the number of product-sums, n = 4 using the flowchart of FIG. The result of reducing the non-zero coefficient by setting to is the value described in the “Interpolation coefficient” column. Since n = 4, interpolation (approximation) can be executed by four multiplications and three additions.
[0054]
In the flowchart of FIG. 9, when the interpolation coefficient is not normalized by 1 and the sum is an integer ratio that is a power of 2, it is necessary to perform bit shift and division after the product-sum operation. Don't be.
[0055]
In addition, since the processing time and interpolation accuracy vary depending on the set value of n, the user may be able to set the value of n according to the application.
[0056]
Further, the interpolation coefficient generation unit may store the interpolation coefficient suppressed within the above-described n points in the form of an LUT, or of course may have another configuration.
[0057]
1 and 8, the log conversion is executed before the LUT input. Naturally, a configuration in which the log conversion is included in the LUT is also conceivable.
[0058]
By applying the color processing in the above-described embodiments to the color processing unit 12 of the host computer 10, good color processing can be performed at high speed.
[0059]
In particular, in the system shown in FIG. 13, each recording section of the color printer 20 can faithfully reproduce only the H level.
[0060]
Therefore, by applying the above approximation in color processing, it is possible to perform high-speed processing with almost no influence on image quality.
[0061]
【The invention's effect】
According to the first aspect of the present invention, output image data corresponding to input image data can be calculated from output image data stored in a table at high speed with a simple configuration.
[0062]
According to the seventh aspect of the present invention, the number of product-sum operations for the interpolation process can be limited, and the time for the interpolation process can be shortened.
[0063]
In addition, it is possible to realize image processing at high speed and with high approximation accuracy.
[Brief description of the drawings]
FIG. 1 is a principal block diagram showing a first embodiment.
FIG. 2 is a principal block diagram showing a conventional example.
FIG. 3 is a diagram showing interpolation in a conventional example.
FIG. 4 is a diagram illustrating first quantization.
FIG. 5 is an explanatory diagram of a conforming cube according to the first embodiment.
FIG. 6 is a flowchart illustrating an operation procedure of approximate value calculation according to the first embodiment.
FIG. 7 is a comparison of ideas between the first embodiment and the conventional example.
FIG. 8 is a principal block diagram showing a second embodiment.
FIG. 9 is a flowchart illustrating an operation procedure of approximate value calculation according to the second embodiment.
FIG. 10 is a flowchart showing a procedure for setting interpolation coefficients according to the second embodiment;
FIG. 11 is an explanatory diagram of a matching cube showing an example of setting interpolation coefficients.
FIG. 12 is a diagram showing an example of generation of interpolation coefficients.
FIG. 13 is a schematic diagram showing an example of a system according to the present invention.

Claims (4)

テーブルを用いて画像処理を行う画像処理装置であって、
入出力画像データの関係を示す複数の格子点データを有するテーブルを格納する格納手段と、
画像データを入力する入力手段と、
前記入力画像データに基づき、前記テーブルに格納されている格子点データからM個の格子点データを選択する第1の選択手段と、
前記選択されたM個の格子点データの各々に対する前記画像データの相対位置に基づき、該格子点データの各々に対する補間割合を算出する算出手段と、
前記M個の格子点データから補間割合の高いN個(N<M)の格子点データを選択する第2の選択手段と、
前記N個の格子点データに基づき補間演算を行い、前記入力画像データに対する出力画像データを求める補間演算手段とを有することを特徴とする画像処理装置。
An image processing apparatus that performs image processing using a table,
Storage means for storing a table having a plurality of grid point data indicating the relationship between input and output image data;
Input means for inputting image data;
First selection means for selecting M pieces of grid point data from the grid point data stored in the table based on the input image data;
Calculation means for calculating an interpolation ratio for each of the grid point data based on a relative position of the image data with respect to each of the selected M grid point data;
Second selecting means for selecting N (N <M) grid point data having a high interpolation ratio from the M grid point data;
An image processing apparatus comprising: interpolation calculation means for performing interpolation calculation based on the N pieces of grid point data and obtaining output image data for the input image data.
さらに、前記選択されなかったM−N個の格子点データの補間割合に基づき、前記N個の格子点データの補間割合を補正する補正手段を有し、
前記補間演算手段は、前記補正された補間割合を用いて補間演算を行うことを特徴とする請求項1記載の画像処理装置。
And a correction means for correcting the interpolation ratio of the N grid point data based on the interpolation ratio of the MN grid point data not selected.
The image processing apparatus according to claim 1, wherein the interpolation calculation means performs an interpolation calculation using the corrected interpolation ratio.
さらに、前記入力画像データに対してディザ信号を付加する付加手段を有し、
前記第1の選択手段は、前記ディザ信号が付加された画像データに基づき、前記M個の格子点データを選択することを特徴とする請求項1または2記載の画像処理装置。
Furthermore, it has an adding means for adding a dither signal to the input image data,
3. The image processing apparatus according to claim 1, wherein the first selection unit selects the M pieces of grid point data based on the image data to which the dither signal is added.
入出力画像データの関係を示す複数の格子点データを有するテーブルを用いて画像処理を行う画像処理方法であって、
入力画像データに基づき、前記テーブルに格納されている格子点データからM個の格子点データを選択する第1の選択工程と、
前記選択されたM個の格子点データの各々に対する前記画像データの相対位置に基づき、該格子点データの各々に対する補間割合を算出する算出工程と、
前記M個の格子点データから補間割合の高いN個(N<M)の格子点データを選択する第2の選択工程と、
前記N個の格子点データに基づき補間演算を行い、前記入力画像データに対する出力画像データを求める補間演算工程とを有することを特徴とする画像処理方法。
An image processing method for performing image processing using a table having a plurality of grid point data indicating the relationship between input and output image data,
A first selection step of selecting M pieces of grid point data from the grid point data stored in the table based on input image data;
A calculation step of calculating an interpolation ratio for each of the grid point data based on a relative position of the image data with respect to each of the selected M grid point data;
A second selection step of selecting N (N <M) grid point data having a high interpolation ratio from the M grid point data;
An image processing method comprising: an interpolation calculation step of performing an interpolation calculation based on the N pieces of grid point data and obtaining output image data for the input image data.
JP28727095A 1995-08-04 1995-11-06 Image processing apparatus and method Expired - Fee Related JP4035176B2 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP28727095A JP4035176B2 (en) 1995-11-06 1995-11-06 Image processing apparatus and method
US08/691,588 US6415065B1 (en) 1995-08-04 1996-08-02 Image processing apparatus and method therefor

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP28727095A JP4035176B2 (en) 1995-11-06 1995-11-06 Image processing apparatus and method

Publications (2)

Publication Number Publication Date
JPH09130627A JPH09130627A (en) 1997-05-16
JP4035176B2 true JP4035176B2 (en) 2008-01-16

Family

ID=17715238

Family Applications (1)

Application Number Title Priority Date Filing Date
JP28727095A Expired - Fee Related JP4035176B2 (en) 1995-08-04 1995-11-06 Image processing apparatus and method

Country Status (1)

Country Link
JP (1) JP4035176B2 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9639920B2 (en) 2015-09-14 2017-05-02 Qualcomm Incorporated Dither directed LUT output value interpolation

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5987650B2 (en) * 2012-11-14 2016-09-07 コニカミノルタ株式会社 Color conversion device

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9639920B2 (en) 2015-09-14 2017-05-02 Qualcomm Incorporated Dither directed LUT output value interpolation

Also Published As

Publication number Publication date
JPH09130627A (en) 1997-05-16

Similar Documents

Publication Publication Date Title
JP6768343B2 (en) Image processing equipment, image processing methods and programs
US6415065B1 (en) Image processing apparatus and method therefor
US5278640A (en) Color modification utilizing two coefficients
JP4802991B2 (en) Color processing apparatus, color processing method, and program
JPH10136216A (en) Color picture processor
JPH0730772A (en) Image processor
EP0443851A1 (en) Improvements relating to image processing
US6301025B1 (en) Method for performing a color space transformation
US20020051145A1 (en) Image processing apparatus, image processing method and recording medium
JP5777497B2 (en) Color processing apparatus and method
US5337166A (en) Color signal transforming apparatus
JP3912486B2 (en) Color processing method, storage medium, color processing apparatus, color conversion apparatus, and image forming apparatus
JP4035176B2 (en) Image processing apparatus and method
JP2002262120A (en) Image processor, image processing method, color conversion table generating method and recording medium
JPH09261499A (en) Image processor and its method
JPH09168097A (en) Image processing unit
JP2001111852A (en) Color image processing method and color image processing device, color conversion coefficient generating method and color conversion coefficient generator, recording medium
JP3683947B2 (en) Image processing apparatus and method
JPH0799587A (en) Method and device for converting color
JPH04304775A (en) Color correction method for color picture signal
JP3728025B2 (en) Image processing method and apparatus
JP2002010095A (en) Color image processing method and color image processor
JPH0946542A (en) Interpolation arithmetic method and data converter
JPH0799586A (en) Color conversion device
JP2000022975A (en) Device and method for converting data

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20050215

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20050301

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050428

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20050531

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050630

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050913

A911 Transfer of reconsideration by examiner before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20050920

A912 Removal of reconsideration by examiner before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20051028

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20071029

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20101102

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20101102

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111102

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121102

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131102

Year of fee payment: 6

LAPS Cancellation because of no payment of annual fees