JP4288865B2 - Color interpolation method and color interpolation apparatus - Google Patents

Color interpolation method and color interpolation apparatus Download PDF

Info

Publication number
JP4288865B2
JP4288865B2 JP2001146327A JP2001146327A JP4288865B2 JP 4288865 B2 JP4288865 B2 JP 4288865B2 JP 2001146327 A JP2001146327 A JP 2001146327A JP 2001146327 A JP2001146327 A JP 2001146327A JP 4288865 B2 JP4288865 B2 JP 4288865B2
Authority
JP
Japan
Prior art keywords
color
output
data
color conversion
interpolation
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
JP2001146327A
Other languages
Japanese (ja)
Other versions
JP2002344757A (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.)
Konica Minolta Inc
Original Assignee
Konica Minolta 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 Konica Minolta Inc filed Critical Konica Minolta Inc
Priority to JP2001146327A priority Critical patent/JP4288865B2/en
Publication of JP2002344757A publication Critical patent/JP2002344757A/en
Application granted granted Critical
Publication of JP4288865B2 publication Critical patent/JP4288865B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Color, Gradation (AREA)
  • Image Processing (AREA)
  • Facsimile Image Signal Circuits (AREA)
  • Color Image Communication Systems (AREA)

Description

【0001】
【発明の属する技術分野】
本発明は色補間方法及び色補間装置に関し、更に詳しくは高速化した色補間方法及び色補間装置に関する。色変換方法として、多次元のLUTと補間演算器による演算が知られている。米国特許第4837722号では、高速演算のために補間演算器をパラレルに並べて計算する方法が提案されている。
【0002】
【従来の技術】
カラープリンタ、カラースキャナ、カラー複写機等では、光電走査によって得た色分解ディジタル画像データの色修正を行なうことが多い。上記のようなディジタル画像データの色修正は演算により行なわれる場合もあるが、予め色分解画像データの組み合わせ(例えば赤R,緑G,青Bの3原色画像データの組み合わせ)に対応する修正済み画像データの組み合わせ(例えばイエローY,マゼンタM,シアンC,ブラックKのインキ量)を変換テーブルとして記憶させておき、修正前のデータの組み合わせをアドレス指定信号として、修正済みのデータの組み合わせ(変換出力データ)を読み出すように構成される場合もある。
【0003】
前述のような変換テーブルを用いたデータ変換では、入力データの組み合わせ全てに対応する修正データの組み合わせを記憶するようにすると、膨大な記憶容量が必要となって、変換テーブルとして用いるメモリのコストアップになるので、変換出力データを適宜間引いて記憶させ、間引いた部分に相当する入力データの組み合わせに対応する修正データについては補間演算により求めることが一般に行われている。
【0004】
上記のように、変換テーブルを用いたデータ変換を、補間演算を伴って行わせる技術としては、従来、特公昭58−16180号公報及び特開昭63−162248号公報等に開示されるようなものがある。特公昭58−16180号公報では、3次元の入力ディジタルデータが構成する3次元の空間を複数の単位立方体で分割し、該複数の立方体の頂点それぞれに対応させて変換出力データを記憶させて変換テーブルを構成する。
【0005】
そして、前記単位立方体を、該単位立方体の8頂点の中の4頂点からなる複数(5又は6個)の4面体に分割し、3次元の入力データに対応する点を含む4面体の4頂点それぞれにおける変換出力データを読み出し、該4個の変換出力データを補間演算することで、3次元入力データに対する最終的な変換出力データを出力するようにしている。
【0006】
また、特開昭63−162248号公報には、前記立方体をそのまま用い、3次元の入力データに対応する点を含む立方体の8頂点に対応して読み出される8個の変換出力データから補間演算により最終的な変換出力データを出力するようにしている。上記の特公昭58−16180号公報及び特開昭63−162248号公報等に開示されるデータ変換では、補間演算を用いることで変換テーブルに記憶させる変換出力データの数を少なくしてメモリ容量を小さく抑えると共に、非線形の変換も小さいな誤差で行なえるものであり、またハードウェアも比較的小規模ですみ、比較的高速な回路が実現できる。
【0007】
【発明が解決しようとする課題】
パラレルに演算を行なう場合、全体として設計しなくてはならないため、回路が複雑になるという問題がある。また、一つのユニットを繰り返し利用できず、例えば乗算器と足し算器を別々に用いることになる。また、補間演算点数はハードウェアで固定的である。しかしながら、例えば入力データがL***では8点補間が最適であり、入力データがR,G,BやY,M,Cの場合には4点補間が最適であることが知られている。この場合、それぞれに最適な補間演算が行われないことになる。
【0008】
本発明はこのような課題に鑑みてなされたものであって、高速演算が可能な色補間方法及び色補間装置を提供することを目的としている。即ち、第1にメモリの総量を最小限にして、かつ最大の計算能力を実現し、第2に同じ形式のユニットを並べることで、部品及びタイミング設計を容易にし、第3に容易に補間に必要な格子点数を変更できる仕組みを提案する。
【0009】
【課題を解決するための手段】
(1)請求項1記載の発明は、全体の色変換テーブルのテーブル値を格子の一つおきに取り出した複数の色変換テーブル持ち、前記複数の色変換テーブルのそれぞれを用いた演算結果を逐次累積する演算を用いて色補間を行なうことを特徴とする。
【0010】
このように構成すれば、演算回路をシリアルに並べることで、同じユニットが利用でき、かつパイプライン化できるので、処理を高速化することができる。
(2)請求項2記載の発明は、前記全体の色変換テーブルは、n色の入力データが入力される時に2のn乗個に分割されていることを特徴とする。
【0011】
このように構成すれば、補間演算の点数を自由に設定することができる。
(3)請求項3記載の発明は、前記分割された複数の色変換テーブルが同時に使われない組み合わせについては、パラレルに並べることを特徴とする。
【0012】
このように構成すれば、遅延を少なくすることができる。
(4)請求項4記載の発明は、n色の入力データの入力に対して、2のn乗より少ない数で補間する場合、前記複数の色変換テーブルのそれぞれを用いた演算を行なう際に、当該色変換テーブルを使用しない演算は、0と乗算することを特徴とする。
【0013】
このように構成すれば、簡単な構成でバイパスするのと同等の効果が得られる。
(5)請求項5記載の発明は、入力データの種類に応じて補間演算点数を可変に選択することを特徴とする。
【0014】
このように構成すれば、入力データに応じて最適な補間演算手段が選択できる。
(6)請求項6記載の発明は、全体の色変換テーブルのテーブル値を格子の一つおきに取り出した複数の色変換テーブル持ち、前記複数の色変換テーブルのそれぞれを用いた演算結果を逐次累積する演算を用いて計算する演算部を有することを特徴とする。
【0015】
このように構成すれば、演算回路をシリアルに並べることで、同じユニットが利用でき、かつパイプライン化できるので高速化することができる。
【0016】
【発明の実施の形態】
以下に、図面を参照して本発明の実施の形態例を詳細に説明する。
図1は本発明の一実施の形態例を示すブロック図で、3次元入力の場合を例にとっている。図において、1は入力データ24ビットを受けて、ビットを振り分けるビット振り分け器である。入力24ビットデータは、例えばRが8ビット、Gが8ビット、Bが8ビットである。2はビット振り分け器1からの出力信号を受けて重みとアドレスを出力する係数発生器である。該係数発生器2は、#0〜#7までの8個存在する。そして、これら係数発生器2は#0が#1に入り、#1が#2に入るという具合に直列に接続されている。
【0017】
10は副LUTと乗算累積器を8個用いた演算部である。3が副LUTと乗算累積器(以下単に演算器と略す)であり、図に示すように#0〜#7まで8個直列に接続されている。#0の演算器には入力としてゼロデータが入力されている。該#0の演算器の出力は#1の演算器に入り、#1の演算器の出力は#2の演算器に入る。以下、同様に接続され、演算出力が累積されていくようになっている。演算部10において、4は最終段の演算器の出力を受けて重みの総和で割算して出力(8ビット)を得る割算器である。
【0018】
図に示す演算部10は、Y,M,C毎に設けられている。即ち、10はY系の演算部であり、20はM系の演算部であり、30はC系の演算部である。そして、それぞれの演算部からは、8ビットの演算出力が得られるようになっている。Kや特色出力があれば、このユニットが増える。色変換LUT値は、それぞれの演算部に共通に入力されている。この色変換LUT値は、それぞれの演算器3毎に分割されて与えられている。また、各係数発生器2からは、対応する演算器3に重みとアドレスが与えられている。図に示す回路は、図示しないタイミングクロックにより同期して動作するようになっている。このように構成された回路の動作を説明すれば、以下の通りである。
【0019】
図1に示す実施の形態例は、三角錐を用いた4点補間法を実現する回路である。図2は三角錐を用いた4点補間の説明図である。立方体を三角錐で分割すると、6個の三角錐に分割される。そして、それぞれの条件毎に補間式を求める。例えばx≧y≧zの場合、当該三角錐内の任意の点Pの補間値pxyzは次式で表される。
【0020】
xyz=pa(1−x)+pb(x−y)+pc(y−z)+pgz (1)
但し、この式では格子間隔が1の場合を示している。ここで、pa〜pgは三角錐の各頂点の値を示す。図1に示す回路は、ハードウェア的に(1)式を実現するものである。
【0021】
本来の3次元補間用LUTをN×N×N(Nは偶数)としたとき、8つに分割して、それぞれのブロックに転送する。この分割方法は、図3に示すように、一つおきに並べたデータを8つの(N/2)×(N/2)×(N/2)のLUTに分割するものである。図3において、(a)に示すLUT全体を○、□、△、×の点を一つおきにとっていき、各々の点で構成されるデータで分割すると、図3の(b)〜(e)に示すように分割される。図は2次元の場合を示す。3次元の場合には8個に分割される。
【0022】
このように分割されたLUTを副LUTnと呼ぶことにする。ここで、nは0から7までの数字である。この副LUTは、nを0から((N/2)−1)とし、その2進数をi,j,kとしたとき、
LUTn[I][J][K]=LUT[2・I+i][2・J+j][2・K+k] (2)
により設定されるサイズ1/8のLUTである。ここで、I,J,Kは0〜7のR,G,Bのアドレス、i,j,kは0か1の値である。(2)式は、副LUTが右辺で表される元のLUTの(2)式に示すアドレスと対応していることを示す。つまり、左辺の副LUTは右辺に示すLUTのアドレスで表される場所からとってくるものであることを示す。このように、本発明によれば、色変換テーブルをn色入力の時に2のn乗個に分割することで、補間演算の点数を自由に設定することができる。
【0023】
ここで、N=16として説明する。図1において、入力されたR,G,B値は、ビット振り分け器1で、各色上位値と下位値、及び上下判定値に分けられる。図4はビット振り分け器1の一実施の形態例を示すブロック図である。入力値は、R,G,B毎に8ビットの合計24ビットである。RはRチャネル40に入り、GはGチャネル41に入り、BはBチャネル42に入る。
【0024】
例えば、Rチャネル40において、50は8ビットのRデータを受ける上位/下位ビット振り分け器、51は該上位/下位ビット振り分け器50の出力を受ける上半位/下半位振り分け器である。上位/下位ビット振り分け器50からは3ビットの上位値(0〜7)が出力され、上半位/下半位振り分け器51からは1ビットの上下判別値と5ビットの下位値(0〜16)が出力される。以上の構成は、他のGチャネル、Bチャネルについても同様である。Rチャネル、Gチャネル、Bチャネルから出力される5ビットの下位値は三角錐コード発生器43に入り、該三角錐コード発生器43からは、3ビットの三角錐コード(0〜5)が出力される。三角錐コードは、図2に示す三角錐に0〜5までのコードを振り、各三角錐を識別するものである。三角錐発生コードの組み合わせは、図5に示す通りである。例えば、B≧R≧Gの場合の三角錐コードは“4”である。
【0025】
ここで、図4において示す計算式で上位値、上下判別値、下位値が計算される。例えば、上位値は入力値/34で表され、1次下位値は入力値を34で割った余り(%34)で表され、上下判別値は入力値/17で表され、更に、最終の下位値は入力値%17で表される。そして、3色の最終の下位値を用いて補間演算に使用される三角錐(4点の組み合わせ)の位置を決定するコードを三角錐コード発生器43から出力する。ここで出力されたデータは、各演算と同期して次の係数発生器2(#0)に転送される。
【0026】
図6は係数発生器の一実施の形態例を示すブロック図である。係数発生器2は副LUTnに対するアドレスと補間演算用重み係数を出力して副LUTnと乗算器のブロック(演算器)3に送る。ビット振り分け器1からのR,G,B毎の上位値(0〜7)は加算器61に入り、下位値(0〜16)と、上下判別ビット(0〜1)はアドレス発生/重み発生器60に入る。アドレス発生/重み発生器60には、LUT ID[0〜7]も入っている。このLUT IDは図1に示す位置データと同じものである。
【0027】
アドレス発生/重み発生器60からは、R,G,B毎の増分アドレスと重み係数が発生される。ここで、増分アドレスは、LUTのアドレスを指定する時に、最も小さい値を基底にして必要な軸に+1するものである。例えば、2次元で示すと(3,4)が基底アドレスだとすると、(4,4)、(4,5)のように、+0又は+1を行なう。これにより、三角錐の位置を決めるものである。ここで、三角錐の位置を決めるとは、LUTの格子のいずれを用いるか(格子のいずれかの点で構成される三角錐を用いるか)を決定することである。
【0028】
R,G,B毎の上位値(0〜7)と増分アドレス(0〜1)は加算器61に入り、該加算器61からはRアドレス(0〜7)が発生される。この構成は、残りのGチャネル、Bチャネルについても同様である。Rチャネル、Gチャネル、Bチャネルからは、それぞれのアドレスが発生して演算器3に入り、また重み係数(0〜17)が発生して演算器3に入る。一方、上位値、下位値、上下判別ビット、三角錐コードは、次の係数発生器2に入る。
【0029】
図7は係数発生器中のアドレス/重み発生器60の一実施の形態例を示すブロック図である。R,G,B毎の下位値(0〜16)は、差分計算部70に入る。該差分計算部70は、R,G,B各下位値と差分計算指示器71からの4ビット出力を受けて、重み係数(0〜17)を発生する。差分計算指示器71は、図8に示すようなテーブルを持っている。そして、LUTコード毎に三角錐コードに対応した重みが割り振られている。
【0030】
LUTコードは、000、001、010、011、100、101、110、111に区分され、それぞれの三角錐毎に重みが与えられている。各三角錐毎に、重みは4個与えられている。例えば、三角錐コード“3”の場合は、LUTコード000が2、010が7、110が8、111が12である。そして、各三角錐毎に4個の重みが与えられている。各三角錐毎に4個の重みがあり、残りが0であるのは、(1)式が4個の乗算項からなっているのと対応している。つまり、図1の演算器3は8個存在するが、実際に演算を行なっているのは4個であることを示している。このように、本発明によれば、全体の色変換テーブルを複数の色変換テーブルに分割して持ち、2のn乗より少ない数で補間する場合、当該色変換テーブルを使用しない部分に0の重みを加えることで、簡単な構成でバイパスするのと同等の効果が得られる。
【0031】
図7において、72は排他的論理和回路であり、LUTID[0〜7]とR,G,Bそれぞれの上下判別ビットを受けて3ビットのLUTコードを出力し、差分計算指示器71に与える。差分計算指示器71は、3ビットのLUTコードと三角錐コードを受けて、図8に示す4ビットの重みデータを出力し、差分計算部70に与える。
【0032】
該差分計算部70は、R,G,B毎の下位値と、差分計算指示器71からの4ビットの重みデータを受けて、図9に示すような差分計算を行ない、重み係数(0〜17)を出力する。アンド(AND)回路73は、R,G,B毎の上下判別ビットと、排他的論理和回路72からの3ビット出力を受けて、R,G,B毎の増分アドレス(0〜1)を出力する。
【0033】
上述したように、係数発生器2は、図6に示したように、副LUTnに対するアドレスと補間演算用重み係数を出力して、副LUTnと乗算累積器のブロック(演算器)3に送る。アドレス発生/重み発生器60は、ビット操作及び図8、図9に示す処理を行なう。これにより、重み係数及び副LUTnに対する増分アドレスを計算する。
【0034】
本発明では、元のLUTを複数の副LUTに分割しているため、例えば上下判定値が0の方向では増分は発生せず、上下判定値が1の場合、選択するLUTの種類が変更され、更に増分アドレスが1となる。各色増分アドレスは、各色上位値と加算される。ただし、上限の制限がついている。この場合、副LUTの最大アドレスの7を超えないようにする(図6参照)。
【0035】
副LUTnと乗算累積器(演算器)3では、前段のデータを受け取り、副LUTnに対するアドレスにより出力されたLUTデータと重みを乗算した上、累積して次段に送り出す。この場合、初段の演算器3には、0データが与えられる。当該副LUTnに対して重みが発生しない場合(使用しない場合)は、重み0が与えられる。この場合、0との乗算を行なう代わりにセレクタを用いて当該段はバイパスするようにしてもよい。
【0036】
図10は副LUTnと乗算器(演算器)3の一実施の形態例を示すブロック図である。図において、80はアドレス(3×3ビット)て色変換LUT値を受けて入力アドレスに対応するデータを出力する副LUTnである。該副LUTnは8ビットのデータを出力する。81は、係数発生器2からの重み係数(5ビット)と副LUTn80からの出力データを受けて乗算を行なう乗算器である。該乗算器81からは、13ビットのデータが出力される。82は、前段の演算器3からのデータ(8+5ビット)と乗算器81の出力(13ビット)とを加算する加算器である。該加算器82の出力(13ビット)が当該段の演算器3の出力となる。ここで、副LUTnの出力と、乗算器81の出力と、加算器82の出力はラッチ構成となっており、同期クロックでデータが左から右にシフトするようになっており、高速動作が可能となっていれる。このように構成された回路の動作を説明すれば、以下の通りである。
【0037】
係数発生器2から重み係数(5ビット)とアドレス(3×3)ビットが演算器3に入力される。この内、アドレスは副LUTnに入って、該副LUTnからは8ビットの変換データが出力される。乗算器81は、この副LUTnの出力と重み係数(5ビット)を乗算する。この乗算結果は、続く加算器82で前段からのデータと加算され、その出力(8+5ビット)は後段の演算器3に入るようになっている。
【0038】
この演算処理を8段行なうことで、重み係数の総和と最終的な値との乗算値が算出される。この乗算値は、割算器4(図1参照)で重み係数の総和で割り算されて最終的な出力となる。割算器4は、ロジックで作成しても、LUT化してもよい。16×16×16の格子点で4点補間の場合、重みの総和は17になる。このように、本発明によれば、演算回路をシリアルに並べることで、同じユニットが利用でき、かつパイプライン化できるので高速化することができる。
【0039】
上述したような処理を行なう時に、各ブロック、更には各ブロックの内部を数段に分割してパイプライン化することにより、高速なスループットが実現できる。例えば、図10に示すようにラッチを設けてパイプラインの幅を狭くすることにより高速化される。但し、この場合は最初の計算値の出力まで遅延が発生する。各ブロック毎にパイプライン化した場合、少なくとも8クロック、内部を更に数段に分割した場合は、その段数を乗算したクロック数だけ遅延する。何れの場合も、最初にデータが出力されるまでの遅延時間は、段数により変化するが、一旦出力された後は、連続して出力されるので、スループットには差は生じない。
【0040】
上述の実施の形態例では、補間演算点数を8個設けた場合を示したが、本発明はこれに限るものではなく、補間演算点数を可変することができる。これにより、入力データに応じて最適な補間演算手段が選択できる。
【0041】
図11は本発明の他の実施の形態例を示すブロック図である。図1と同一のものは、同一の符号を付して示す。図において、1は入力データ(R,G,B各8ビットで合計24ビット)を受けてビット振り分けを行なうビット振り分け器、2は入力データを受けて重みとアドレスを発生する係数発生器で、#0〜#7まで8個存在する。#0の係数発生器2には位置データ(0)とビット振り分け器1の出力が入り、#1の係数発生器2には、位置データ(1)と#0の係数発生器2の出力が入り、#2の係数発生器2には、位置データ(2)と#0の係数発生器2の出力が入り、#3の係数発生器2には、位置データ(4)と#0の係数発生器2の出力が入り、#4の係数発生器2には、位置データ(3)と#3の係数発生器2の出力が入り、#5の係数発生器2には、位置データ(5)と#3の係数発生器2の出力が入り、#6の係数発生器2には、位置データ(6)と#2の係数発生器2の出力が入り、#7の係数発生器2には位置データ(7)と#6の係数発生器2の出力が入っている。
【0042】
101は副LUTと乗算累積器(演算器)で、#0と#1の2個存在する。#0の演算器101は副LUT0と乗算累積器で構成され、#1の演算器101は副LUT7と乗算累積器で構成される。そして、#0の演算器101には#0の係数発生器2からの重み係数とアドレスが入力され、ゼロデータが入力される。#1の演算器101には、#7の係数発生器2からの重み係数とアドレスが入力され、#1の加算器103の出力が入力される。
【0043】
102は副LUTと乗算器とで構成される演算器であり、#0〜#5まで6個存在する。#0の演算器102は副LUT1と乗算器とで構成され、#1の演算器102は副LUT2と乗算器とで構成され、#2の演算器102は副LUT4と乗算器とで構成され、#3の演算器102は副LUT3と乗算器とで構成され、#4の演算器102は副LUT5と乗算器とで構成され、#5の演算器102は副LUT6と乗算器とで構成される。
【0044】
103は加算器であり、#0と#1の2個存在する。#0の加算器103には#0の演算器101の出力と、#0の演算器102の出力と、#1の演算器の出力と、#2の乗算器102の出力が入っている。#1の加算器103には、#0の加算器103の出力と、#3の演算器102の出力と、#4の演算器102の出力と、#5の演算器102の出力が入っている。そして、#1の加算器103の出力は、#1の演算器101に入り、該#1の演算器101の出力は割算器4に入っている。そして、該割算器4で、累積値が重み係数の総和で割り算され、8ビットのデータとして出力される。これら演算器と加算器と割算器とで演算部100を構成している。このような構成の演算部は、色毎にn個存在する。
【0045】
図1に示す演算器の並べ方では、最低8個のパイプライン分だけ遅延するが、図11のような演算器の配列にすると、遅延を半分にすることができる。図1に示す各ブロックの副LUTnで、同時に発生しない組み合わせがあるため、それらをパラレルにまとめる。副LUT0と副LUT7はどの三角錐の場合にも用いられるが、副LUT1,2,4及び副LUT3,5,6の組み合わせ内では同時に使用されることがない。
【0046】
このようなグループでは、図11に示すように各ブロック内の累積器を省略して、図のように4入力の加算器103を用いることができる。この場合、3種類の入力は全て加算される。この計算は、加算器ではなくオア(OR)をとっても構わない。値を発生するのは1つだけであるためである。その他には、セレクタを用いることも可能である。
【0047】
この実施の形態例によれば、遅延を少なくすることができる。
図1に示す実施の形態例では、8種類の色変換LUTに対してアクセスするりことができるため、この重みをコントロールすることで、補間方法を容易に変更することができる。これを用いて、第1の実施の形態例の4点補間と8点補間を切り替え可能にすることができる。
【0048】
8点で補間する方法としては、特開平8−114870号公報(多次元補間方法及び装置)があるが、その手法を用いると重み係数が単純化され、好都合である。但し、重みの総和が4倍になるので、計算のビット幅はこれに合わせて増やす必要がある。更に、最終段での割算器の分母パラメータも可変にする。後述のビットシフトを用いる場合には、ビットシフト量を変更する。入力がR,G,B又はY,M,Cの場合には、4点補間を用いてL***では、8点補間を用いるとよい。このようにすることで、入力のグレー付近が正確に補間される。
【0049】
ここで、テーブル出力を、予め(2のn乗÷データ格子間隔)倍することで、補間値をビットシフトにより得るようにすることができる。例えば、出力を9ビットにして、最大値を480(255×32/17倍)にすると、5ビットシフトすればよく、大規模になりがちな割算器を省略することができる。但し、LUTの容量が増える。また、最大値を240(255×16/17倍)にした場合、4ビットシフトになるが、計算精度が若干低下する。
【0050】
この方法をソフトウェアでも実現することができる。一つのMPUでは効果がないが、複数のMPUがある場合、それ毎に各ステップの計算を行なうようにすることで、この構成の色補間演算を効果的に行なうことができる。例えば、ネットワーク上に接続されたコンピュータでリレーしながら計算することもできる。4次元の場合には、16個の演算器を並べることで、同様の処理が可能で、N次元の場合には、2のN乗のユニットを並べることで実現することができる。
【0051】
【発明の効果】
以上、詳細に説明したように、本発明によれば、以下のような効果が生じる。(1)請求項1記載の発明によれば、演算回路をシリアルに並べることで、同じユニットが利用でき、かつパイプライン化できるので高速化することができる。
【0052】
(2)請求項2記載の発明によれば、前記色変換テーブルは、n色入力の時に2のn乗個に分割することにより、補間演算の点数を自由に設定することができる。
【0053】
(3)請求項3記載の発明によれば、前記分割された色変換テーブルが同時に使われない組み合わせについては、パラレルに並べることで、遅延を少なくすることができる。
【0054】
(4)請求項4記載の発明によれば、全体の色変換テーブルを複数の色変換テーブルに分割して持ち、2のn乗より少ない数で補間する場合、当該色変換テーブルを使用しない部分に0の重みを加えることで、簡単な構成でバイパスするのと同等の効果が得られる。
【0055】
(5)請求項5記載の発明によれば、前記補間演算点数を可変することで、入力データに応じて最適な補間演算手段が選択できる。
(6)請求項6記載の発明によれば、演算回路をシリアルに並べることで、同じユニットが利用でき、かつパイプライン化できるので高速化することができる。
【0056】
このように、本発明によれば、高速演算が可能な色補間方法及び色補間装置を提供することができる。即ち、第1にメモリの総量を最小限にして、かつ最大の計算能力を実現し、第2に同じ形式のユニットを並べることで、部品及びタイミング設計を容易にし、第3に容易に補間に必要な格子点数を変更することができる。
【図面の簡単な説明】
【図1】本発明の一実施の形態例を示すブロック図である。
【図2】三角錐を用いた4点補間の説明図である。
【図3】LUTの分割の説明図である。
【図4】ビット振り分け器の一実施の形態例を示すブロック図である。
【図5】三角錐コードの説明図である。
【図6】係数発生器の一実施の形態例を示すブロック図である。
【図7】アドレス/重み発生器の一実施の形態例を示すブロック図である。
【図8】差分計算指示器の内容を示す図である。
【図9】差分計算指示器の内容を示す図である。
【図10】副LUTと乗算器の一実施の形態例を示すブロック図である。
【図11】本発明の他の実施の形態例を示すブロック図である。
【符号の説明】
1 ビット振り分け器
2 係数発生器
3 副LUTと乗算累積器
4 割算器
10、20、30 演算部
[0001]
BACKGROUND OF THE INVENTION
The present invention relates to a color interpolation method and a color interpolation device, and more particularly to a color interpolation method and a color interpolation device which are speeded up. As a color conversion method, calculation using a multidimensional LUT and an interpolation calculator is known. U.S. Pat. No. 4,837,722 proposes a method of calculating by interpolating interpolation calculators in parallel for high-speed calculation.
[0002]
[Prior art]
Color printers, color scanners, color copiers, and the like often perform color correction on color separation digital image data obtained by photoelectric scanning. The color correction of the digital image data as described above may be performed by calculation, but has already been corrected corresponding to a combination of color separation image data (for example, a combination of three primary color image data of red R, green G, and blue B). A combination of image data (for example, ink amounts of yellow Y, magenta M, cyan C, and black K) is stored as a conversion table, and a combination of data that has been corrected (conversion) using the combination of the data before correction as an addressing signal. (Output data) may be configured to be read out.
[0003]
In the data conversion using the conversion table as described above, if a combination of correction data corresponding to all combinations of input data is stored, an enormous storage capacity is required, which increases the cost of the memory used as the conversion table. Therefore, it is generally performed that the conversion output data is appropriately thinned and stored, and the correction data corresponding to the combination of input data corresponding to the thinned portion is obtained by interpolation calculation.
[0004]
As described above, as a technique for performing data conversion using a conversion table with interpolation calculation, as disclosed in Japanese Patent Publication No. 58-16180 and Japanese Patent Publication No. 63-162248, etc. There is something. In Japanese Examined Patent Publication No. 58-16180, a three-dimensional space formed by three-dimensional input digital data is divided into a plurality of unit cubes, and converted output data is stored in correspondence with the vertices of the plurality of cubes. Configure the table.
[0005]
Then, the unit cube is divided into a plurality of (5 or 6) tetrahedrons composed of four vertices among the eight vertices of the unit cube, and four vertices of a tetrahedron including points corresponding to three-dimensional input data. The conversion output data in each is read, and the four conversion output data are interpolated to output final conversion output data for the three-dimensional input data.
[0006]
In Japanese Patent Laid-Open No. 63-162248, the cube is used as it is by interpolation from eight converted output data read corresponding to eight vertices of a cube including points corresponding to three-dimensional input data. The final converted output data is output. In the data conversion disclosed in the above Japanese Patent Publication No. 58-16180 and Japanese Patent Laid-Open No. 63-162248, the number of conversion output data to be stored in the conversion table can be reduced by using an interpolation operation to increase the memory capacity. In addition to keeping it small, non-linear conversion can be performed with a small error, and the hardware is relatively small, and a relatively high-speed circuit can be realized.
[0007]
[Problems to be solved by the invention]
When performing operations in parallel, there is a problem that the circuit becomes complicated because it must be designed as a whole. Further, one unit cannot be used repeatedly, and for example, a multiplier and an adder are used separately. Also, the number of interpolation calculation points is fixed by hardware. However, for example, the input data is L * a * b * It is known that 8-point interpolation is optimal, and 4-point interpolation is optimal when the input data is R, G, B, Y, M, or C. In this case, the optimum interpolation calculation is not performed for each.
[0008]
The present invention has been made in view of such problems, and an object of the present invention is to provide a color interpolation method and a color interpolation apparatus capable of high-speed calculation. That is, the first is to minimize the total amount of memory and achieve the maximum computing capacity, and the second is to arrange the same type of units, facilitating parts and timing design, and third, to easily interpolate. We propose a mechanism that can change the required number of grid points.
[0009]
[Means for Solving the Problems]
(1) The invention according to claim 1 is the entire color conversion table. Table values for every other grid Multiple color conversion tables The Have An operation for sequentially accumulating operation results using each of the plurality of color conversion tables. And color interpolation is performed.
[0010]
By configuring in this way, the same unit can be used and pipelined by arranging the arithmetic circuits serially, Processing The speed can be increased.
(2) The invention according to claim 2 overall The color conversion table is n colors Input data is input Be done Sometimes divided into 2 n powers Has been It is characterized by that.
[0011]
If comprised in this way, the number | score of interpolation calculation can be set freely.
(3) The invention according to claim 3 is divided. plural The combinations that do not use the color conversion table at the same time are arranged in parallel.
[0012]
With this configuration, the delay can be reduced.
(4) The invention described in claim 4 For input of n-color input data, When interpolating with less than 2 to the power of n, When performing an operation using each of the plurality of color conversion tables, Do not use the color conversion table The operation multiplies by 0 It is characterized by that.
[0013]
If comprised in this way, the effect equivalent to bypassing with a simple structure will be acquired.
(5) The invention according to claim 5 Variablely select the number of interpolation calculation points according to the type of input data It is characterized by that.
[0014]
If comprised in this way, the optimal interpolation calculating means can be selected according to input data.
(6) The invention according to claim 6 is the entire color conversion table. Table values for every other grid Multiple color conversion tables The Have An operation for sequentially accumulating operation results using each of the plurality of color conversion tables. Calculate using Calculation unit It is characterized by having.
[0015]
With this configuration, the same units can be used and the pipelines can be speeded up by arranging the arithmetic circuits serially.
[0016]
DETAILED DESCRIPTION OF THE INVENTION
Embodiments of the present invention will be described below in detail with reference to the drawings.
FIG. 1 is a block diagram showing an embodiment of the present invention, taking the case of three-dimensional input as an example. In the figure, reference numeral 1 denotes a bit distributor that receives 24 bits of input data and distributes the bits. The input 24-bit data is, for example, R is 8 bits, G is 8 bits, and B is 8 bits. A coefficient generator 2 receives the output signal from the bit distributor 1 and outputs a weight and an address. There are eight coefficient generators 2 from # 0 to # 7. These coefficient generators 2 are connected in series such that # 0 enters # 1 and # 1 enters # 2.
[0017]
Reference numeral 10 denotes an arithmetic unit using eight sub-LUTs and eight multiplier accumulators. Reference numeral 3 denotes a sub-LUT and a multiplier / accumulator (hereinafter simply referred to as an arithmetic unit), and as shown in the figure, eight are connected in series from # 0 to # 7. Zero data is input as input to the # 0 arithmetic unit. The output of the # 0 computing unit enters the # 1 computing unit, and the output of the # 1 computing unit enters the # 2 computing unit. Thereafter, the same connection is made, and the calculation output is accumulated. In the calculation unit 10, reference numeral 4 denotes a divider that receives the output of the final-stage calculator and divides it by the sum of the weights to obtain an output (8 bits).
[0018]
The arithmetic unit 10 shown in the figure is provided for each of Y, M, and C. That is, 10 is a Y-system arithmetic unit, 20 is an M-system arithmetic unit, and 30 is a C-system arithmetic unit. An 8-bit calculation output is obtained from each calculation unit. If there is K or spot color output, this unit will increase. The color conversion LUT value is input in common to each calculation unit. This color conversion LUT value is divided and given for each computing unit 3. Each coefficient generator 2 gives a weight and an address to the corresponding arithmetic unit 3. The circuit shown in the figure operates in synchronization with a timing clock (not shown). The operation of the circuit thus configured will be described as follows.
[0019]
The embodiment shown in FIG. 1 is a circuit that realizes a four-point interpolation method using a triangular pyramid. FIG. 2 is an explanatory diagram of four-point interpolation using a triangular pyramid. When a cube is divided by triangular pyramids, it is divided into six triangular pyramids. Then, an interpolation formula is obtained for each condition. For example, when x ≧ y ≧ z, the interpolation value p of an arbitrary point P in the triangular pyramid xyz Is expressed by the following equation.
[0020]
p xyz = P a (1-x) + p b (Xy) + p c (Yz) + p g z (1)
However, this equation shows the case where the lattice spacing is 1. Here, pa to pg indicate the values of the vertices of the triangular pyramid. The circuit shown in FIG. 1 implements the expression (1) in hardware.
[0021]
When the original LUT for three-dimensional interpolation is N × N × N (N is an even number), it is divided into eight and transferred to each block. In this dividing method, as shown in FIG. 3, every other data arranged is divided into eight (N / 2) × (N / 2) × (N / 2) LUTs. In FIG. 3, when the entire LUT shown in FIG. 3A is made up of every other point of .largecircle., .Quadrature., .DELTA., And x, and divided by the data constituted by each point, (b) to (e) of FIG. Is divided as shown in FIG. The figure shows a two-dimensional case. In the case of three dimensions, it is divided into eight.
[0022]
The LUT divided in this way will be referred to as a secondary LUTn. Here, n is a number from 0 to 7. In this sub-LUT, when n is changed from 0 to ((N / 2) -1) and its binary number is i, j, k,
LUTn [I] [J] [K] = LUT [2 · I + i] [2 · J + j] [2 · K + k] (2)
Is an LUT having a size of 1/8. Here, I, J, and K are R, G, and B addresses of 0 to 7, and i, j, and k are values of 0 or 1. Expression (2) indicates that the secondary LUT corresponds to the address indicated in Expression (2) of the original LUT represented by the right side. That is, the sub-LUT on the left side is taken from the location represented by the address of the LUT shown on the right side. As described above, according to the present invention, the number of interpolation calculations can be freely set by dividing the color conversion table into 2 n powers when n colors are input.
[0023]
Here, the description will be made assuming that N = 16. In FIG. 1, input R, G, B values are divided by the bit sorter 1 into upper and lower values for each color and upper and lower determination values. FIG. 4 is a block diagram showing an embodiment of the bit distributor 1. The input value is 24 bits in total, 8 bits for each of R, G, and B. R enters the R channel 40, G enters the G channel 41, and B enters the B channel 42.
[0024]
For example, in the R channel 40, 50 is an upper / lower bit distributor that receives 8-bit R data, and 51 is an upper half / lower half distributor that receives the output of the upper / lower bit distributor 50. The upper / lower bit distributor 50 outputs a 3-bit upper value (0 to 7), and the upper half / lower half distributor 51 outputs a 1-bit upper / lower discrimination value and a 5-bit lower value (0 to 0). 16) is output. The above configuration is the same for other G channels and B channels. The 5-bit lower value output from the R channel, the G channel, and the B channel enters the triangular pyramid code generator 43, and the triangular pyramid code generator 43 outputs a 3-bit triangular pyramid code (0 to 5). Is done. In the triangular pyramid code, codes from 0 to 5 are assigned to the triangular pyramid shown in FIG. 2 to identify each triangular pyramid. The combinations of the triangular pyramid generation codes are as shown in FIG. For example, the triangular pyramid code when B ≧ R ≧ G is “4”.
[0025]
Here, the upper value, the upper / lower discriminant value, and the lower value are calculated by the calculation formula shown in FIG. For example, the upper value is represented by an input value / 34, the primary lower value is represented by a remainder (% 34) obtained by dividing the input value by 34, the up / down discrimination value is represented by an input value / 17, and the final value The lower value is represented by the input value% 17. The triangular pyramid code generator 43 outputs a code for determining the position of the triangular pyramid (a combination of four points) used for the interpolation calculation using the final lower values of the three colors. The data output here is transferred to the next coefficient generator 2 (# 0) in synchronization with each calculation.
[0026]
FIG. 6 is a block diagram showing an embodiment of the coefficient generator. The coefficient generator 2 outputs an address for the secondary LUTn and a weighting coefficient for interpolation calculation, and sends them to the secondary LUTn and multiplier block (arithmetic unit) 3. The upper values (0 to 7) for each of R, G, and B from the bit sorter 1 enter the adder 61, and the lower value (0 to 16) and the upper and lower discrimination bits (0 to 1) are address generation / weight generation. Enter the vessel 60. The address generator / weight generator 60 also contains LUT ID [0-7]. This LUT ID is the same as the position data shown in FIG.
[0027]
The address generator / weight generator 60 generates an increment address and a weight coefficient for each of R, G, and B. Here, the increment address is for adding 1 to the necessary axis based on the smallest value when designating the address of the LUT. For example, when (3, 4) is a base address in two dimensions, +0 or +1 is performed as in (4, 4), (4, 5). Thus, the position of the triangular pyramid is determined. Here, determining the position of the triangular pyramid means determining which of the LUT lattices (the triangular pyramid constituted by any point of the lattice is used).
[0028]
The upper value (0 to 7) and increment address (0 to 1) for each of R, G, and B enter the adder 61, and the adder 61 generates an R address (0 to 7). This configuration is the same for the remaining G channel and B channel. From the R channel, the G channel, and the B channel, respective addresses are generated to enter the computing unit 3, and weight coefficients (0 to 17) are generated to enter the computing unit 3. On the other hand, the upper value, the lower value, the upper / lower discrimination bit, and the triangular pyramid code enter the next coefficient generator 2.
[0029]
FIG. 7 is a block diagram illustrating one embodiment of an address / weight generator 60 in the coefficient generator. The lower value (0 to 16) for each of R, G, and B enters the difference calculation unit 70. The difference calculation unit 70 receives the R, G, B subordinate values and the 4-bit output from the difference calculation indicator 71 and generates a weight coefficient (0 to 17). The difference calculation indicator 71 has a table as shown in FIG. A weight corresponding to the triangular pyramid code is assigned to each LUT code.
[0030]
The LUT code is divided into 000, 001, 010, 011, 100, 101, 110, and 111, and a weight is given to each triangular pyramid. Four weights are given for each triangular pyramid. For example, in the case of the triangular pyramid code “3”, the LUT code 000 is 2, 010 is 7, 110 is 8, and 111 is 12. Four weights are given to each triangular pyramid. The fact that there are four weights for each triangular pyramid and the remaining is zero corresponds to the fact that equation (1) consists of four multiplication terms. That is, although there are eight computing units 3 in FIG. 1, four are actually performing the computation. As described above, according to the present invention, when the entire color conversion table is divided into a plurality of color conversion tables and interpolation is performed with a number smaller than 2 to the power of n, 0 is applied to a portion not using the color conversion table. By adding the weight, an effect equivalent to bypassing with a simple configuration can be obtained.
[0031]
In FIG. 7, reference numeral 72 denotes an exclusive OR circuit, which receives LUTID [0 to 7] and R / G / B upper / lower discrimination bits, outputs a 3-bit LUT code, and gives it to the difference calculation indicator 71. . The difference calculation instruction unit 71 receives the 3-bit LUT code and the triangular pyramid code, outputs the 4-bit weight data shown in FIG.
[0032]
The difference calculation unit 70 receives the lower value for each of R, G, and B and the 4-bit weight data from the difference calculation indicator 71, performs the difference calculation as shown in FIG. 17) is output. The AND circuit 73 receives the upper / lower discriminating bits for each of R, G, and B and the 3-bit output from the exclusive OR circuit 72, and gives an increment address (0 to 1) for each of R, G, and B. Output.
[0033]
As described above, as shown in FIG. 6, the coefficient generator 2 outputs the address and interpolation calculation weight coefficient for the sub-LUTn, and sends them to the block (arithmetic unit) 3 of the sub-LUTn and multiplication accumulator. The address generator / weight generator 60 performs bit manipulation and the processing shown in FIGS. As a result, the incremental address for the weighting factor and the sub-LUTn is calculated.
[0034]
In the present invention, since the original LUT is divided into a plurality of sub-LUTs, for example, when the up / down judgment value is 0, no increment occurs. When the up / down judgment value is 1, the type of LUT to be selected is changed. In addition, the incremental address becomes 1. Each color increment address is added to each color upper value. However, there is an upper limit. In this case, the maximum address 7 of the secondary LUT is not exceeded (see FIG. 6).
[0035]
The secondary LUTn and multiplication accumulator (arithmetic unit) 3 receives the data of the previous stage, multiplies the LUT data output by the address for the secondary LUTn and the weight, accumulates it, and sends it to the next stage. In this case, 0 data is given to the arithmetic unit 3 in the first stage. If no weight is generated for the secondary LUTn (when not used), a weight of 0 is given. In this case, the stage may be bypassed by using a selector instead of performing multiplication with 0.
[0036]
FIG. 10 is a block diagram showing an embodiment of the sub-LUTn and the multiplier (arithmetic unit) 3. In the figure, reference numeral 80 denotes a sub-LUTn which receives an address (3 × 3 bits) and receives a color conversion LUT value and outputs data corresponding to the input address. The secondary LUTn outputs 8-bit data. A multiplier 81 receives the weighting coefficient (5 bits) from the coefficient generator 2 and the output data from the sub-LUTn 80 and performs multiplication. The multiplier 81 outputs 13-bit data. Reference numeral 82 denotes an adder that adds the data (8 + 5 bits) from the computing unit 3 in the previous stage and the output (13 bits) of the multiplier 81. The output (13 bits) of the adder 82 becomes the output of the arithmetic unit 3 at the corresponding stage. Here, the output of the sub-LUTn, the output of the multiplier 81, and the output of the adder 82 are latched so that the data is shifted from left to right with a synchronous clock, enabling high-speed operation. It can be said. The operation of the circuit thus configured will be described as follows.
[0037]
A weight coefficient (5 bits) and an address (3 × 3) bits are input from the coefficient generator 2 to the calculator 3. Of these, the address enters the secondary LUTn, and 8-bit conversion data is output from the secondary LUTn. The multiplier 81 multiplies the output of the sub-LUTn by the weight coefficient (5 bits). The multiplication result is added to the data from the previous stage by the subsequent adder 82, and the output (8 + 5 bits) enters the arithmetic unit 3 at the subsequent stage.
[0038]
By performing this calculation process in eight stages, a product of the sum of the weighting coefficients and the final value is calculated. This multiplication value is divided by the sum of the weighting coefficients by the divider 4 (see FIG. 1) and becomes the final output. The divider 4 may be created by logic or LUT. In the case of four-point interpolation with 16 × 16 × 16 grid points, the total weight is 17. Thus, according to the present invention, by arranging the arithmetic circuits serially, the same unit can be used and a pipeline can be formed, so that the speed can be increased.
[0039]
When the processing as described above is performed, each block, and further, the inside of each block is divided into several stages and pipelined to realize a high-speed throughput. For example, as shown in FIG. 10, the speed is increased by providing a latch to narrow the pipeline width. However, in this case, a delay occurs until the first calculated value is output. When each block is pipelined, it is delayed by at least 8 clocks, and when the inside is further divided into several stages, it is delayed by the number of clocks multiplied by the number of stages. In either case, the delay time until data is first output varies depending on the number of stages, but since it is output once after it is output, there is no difference in throughput.
[0040]
In the above-described embodiment, the case where eight interpolation calculation points are provided is shown, but the present invention is not limited to this, and the number of interpolation calculation points can be varied. Thereby, an optimal interpolation calculation means can be selected according to the input data.
[0041]
FIG. 11 is a block diagram showing another embodiment of the present invention. The same components as those in FIG. 1 are denoted by the same reference numerals. In the figure, 1 is a bit distributor that receives input data (R, G, B, 8 bits in total, 24 bits) and performs bit distribution, and 2 is a coefficient generator that receives input data and generates weights and addresses. There are 8 from # 0 to # 7. The # 0 coefficient generator 2 receives the position data (0) and the output of the bit distributor 1. The # 1 coefficient generator 2 receives the position data (1) and the output of the # 0 coefficient generator 2. The # 2 coefficient generator 2 receives the position data (2) and the output of the # 0 coefficient generator 2, and the # 3 coefficient generator 2 receives the position data (4) and the # 0 coefficient. The output of the generator 2 is input, the position data (3) and the output of the coefficient generator 2 of # 3 are input to the coefficient generator 2 of # 4, and the position data (5 ) And the output of the coefficient generator 2 of # 3 are input, the position generator (6) and the output of the coefficient generator 2 of # 2 are input to the coefficient generator 2 of # 6, and the coefficient generator 2 of # 7 is input. Contains the position data (7) and the output of the coefficient generator 2 of # 6.
[0042]
101 is a sub-LUT and multiplication accumulator (calculator), and there are two, # 0 and # 1. The # 0 arithmetic unit 101 is composed of a sub-LUT0 and a multiplication accumulator, and the # 1 arithmetic unit 101 is composed of a sub-LUT7 and a multiplication accumulator. Then, the weight coefficient and address from # 0 coefficient generator 2 are input to # 0 arithmetic unit 101, and zero data is input. The # 1 arithmetic unit 101 receives the weighting coefficient and address from the # 7 coefficient generator 2, and the output of the # 1 adder 103.
[0043]
Reference numeral 102 denotes an arithmetic unit composed of a sub-LUT and a multiplier, and there are six units from # 0 to # 5. The # 0 arithmetic unit 102 is composed of a sub-LUT 1 and a multiplier, the # 1 arithmetic unit 102 is composed of a sub-LUT 2 and a multiplier, and the # 2 arithmetic unit 102 is composed of a sub-LUT 4 and a multiplier. , # 3 arithmetic unit 102 is composed of a sub-LUT 3 and a multiplier, # 4 arithmetic unit 102 is composed of a sub-LUT 5 and a multiplier, and # 5 arithmetic unit 102 is composed of a sub-LUT 6 and a multiplier. Is done.
[0044]
Reference numeral 103 denotes an adder, and there are two, # 0 and # 1. The # 0 adder 103 contains the output of the # 0 arithmetic unit 101, the output of the # 0 arithmetic unit 102, the output of the # 1 arithmetic unit, and the output of the # 2 multiplier 102. The # 1 adder 103 includes the output of the # 0 adder 103, the output of the # 3 computing unit 102, the output of the # 4 computing unit 102, and the output of the # 5 computing unit 102. Yes. The output of the # 1 adder 103 enters the # 1 arithmetic unit 101, and the output of the # 1 arithmetic unit 101 enters the divider 4. Then, the divider 4 divides the accumulated value by the sum of the weighting coefficients and outputs it as 8-bit data. These arithmetic units, adders, and dividers constitute the arithmetic unit 100. There are n arithmetic units having such a configuration for each color.
[0045]
In the arrangement of the arithmetic units shown in FIG. 1, the delay is performed by at least eight pipelines. However, when the arithmetic units are arranged as shown in FIG. 11, the delay can be halved. Since there are combinations that do not occur simultaneously in the sub-LUTs of each block shown in FIG. 1, they are grouped in parallel. The sub-LUT 0 and the sub-LUT 7 are used in any triangular pyramid, but are not used simultaneously in the combination of the sub-LUTs 1, 2, 4 and the sub-LUTs 3, 5, 6.
[0046]
In such a group, an accumulator in each block can be omitted as shown in FIG. 11, and a 4-input adder 103 can be used as shown in the figure. In this case, all three types of inputs are added. This calculation may take OR (OR) instead of an adder. This is because only one value is generated. In addition, a selector can be used.
[0047]
According to this embodiment, the delay can be reduced.
In the embodiment shown in FIG. 1, since eight types of color conversion LUTs can be accessed, the interpolation method can be easily changed by controlling the weights. By using this, it is possible to switch between the 4-point interpolation and the 8-point interpolation of the first embodiment.
[0048]
As a method of interpolating with 8 points, there is Japanese Patent Laid-Open No. 8-114870 (multi-dimensional interpolation method and apparatus), but using this method is advantageous because the weighting factor is simplified. However, since the total sum of the weights is quadrupled, the calculation bit width needs to be increased accordingly. Furthermore, the denominator parameter of the divider at the final stage is also made variable. When the bit shift described later is used, the bit shift amount is changed. If the input is R, G, B or Y, M, C, then L using 4-point interpolation * a * b * Then, 8-point interpolation may be used. In this way, the vicinity of the input gray is accurately interpolated.
[0049]
Here, it is possible to obtain the interpolation value by bit shift by multiplying the table output in advance (2 to the power of n ÷ data grid interval). For example, if the output is 9 bits and the maximum value is 480 (255 × 32/17 times), it is sufficient to shift by 5 bits, and a divider that tends to be large can be omitted. However, the LUT capacity increases. If the maximum value is 240 (255 × 16/17 times), a 4-bit shift occurs, but the calculation accuracy slightly decreases.
[0050]
This method can also be realized by software. Although there is no effect with one MPU, when there are a plurality of MPUs, the color interpolation operation of this configuration can be effectively performed by calculating each step for each. For example, the calculation can be performed while relaying with a computer connected to the network. In the case of 4 dimensions, the same processing can be performed by arranging 16 arithmetic units, and in the case of N dimensions, it can be realized by arranging 2 N units.
[0051]
【The invention's effect】
As described above in detail, according to the present invention, the following effects are produced. (1) According to the invention described in claim 1, by arranging the arithmetic circuits serially, the same unit can be used and can be pipelined, so that the speed can be increased.
[0052]
(2) According to the second aspect of the present invention, the color conversion table is divided into 2 to the nth power when n colors are input, so that the number of interpolation calculations can be set freely.
[0053]
(3) According to the invention described in claim 3, delays can be reduced by arranging the combinations in which the divided color conversion tables are not used at the same time in parallel.
[0054]
(4) According to the invention described in claim 4, when the entire color conversion table is divided into a plurality of color conversion tables, and interpolation is performed with a number smaller than 2 to the power of n, the color conversion table is not used. By adding a weight of 0 to, an effect equivalent to bypassing with a simple configuration can be obtained.
[0055]
(5) According to the invention described in claim 5, by changing the number of interpolation calculation points, an optimal interpolation calculation means can be selected according to input data.
(6) According to the invention described in claim 6, by arranging the arithmetic circuits serially, the same unit can be used and can be pipelined, so that the speed can be increased.
[0056]
Thus, according to the present invention, it is possible to provide a color interpolation method and a color interpolation apparatus capable of high-speed calculation. That is, the first is to minimize the total amount of memory and achieve the maximum computing capacity, and the second is to arrange the same type of units, facilitating parts and timing design, and third, to easily interpolate. The required number of grid points can be changed.
[Brief description of the drawings]
FIG. 1 is a block diagram showing an embodiment of the present invention.
FIG. 2 is an explanatory diagram of four-point interpolation using a triangular pyramid.
FIG. 3 is an explanatory diagram of division of an LUT.
FIG. 4 is a block diagram illustrating an embodiment of a bit distributor.
FIG. 5 is an explanatory diagram of a triangular pyramid cord.
FIG. 6 is a block diagram illustrating an example embodiment of a coefficient generator.
FIG. 7 is a block diagram illustrating an example embodiment of an address / weight generator.
FIG. 8 is a diagram showing the contents of a difference calculation indicator.
FIG. 9 is a diagram showing the contents of a difference calculation indicator.
FIG. 10 is a block diagram illustrating an embodiment of a sub-LUT and a multiplier.
FIG. 11 is a block diagram showing another embodiment of the present invention.
[Explanation of symbols]
1-bit sorter
2 Coefficient generator
3 Sub LUT and Multiplication Accumulator
4 Divider
10, 20, 30 arithmetic unit

Claims (6)

全体の色変換テーブルのテーブル値を格子の一つおきに取り出した複数の色変換テーブル持ち、前記複数の色変換テーブルのそれぞれを用いた演算結果を逐次累積する演算を用いて色補間を行なうことを特徴とする色補間方法。It has a plurality of color conversion tables in which the table values of the entire color conversion table are extracted every other grid, and performs color interpolation using an operation that sequentially accumulates the operation results using each of the plurality of color conversion tables. A color interpolation method characterized by that. 前記全体の色変換テーブルは、n色の入力データが入力される時に2のn乗個に分割されていることを特徴とする請求項1記載の色補間方法。The overall color conversion table, color interpolation method of claim 1, wherein the input data of n colors is divided into at 2 of n-th power is input. 前記分割された複数の色変換テーブルが同時に使われない組み合わせについては、パラレルに並べることを特徴とする請求項2記載の色補間方法。3. The color interpolation method according to claim 2, wherein combinations in which the plurality of divided color conversion tables are not used simultaneously are arranged in parallel. n色の入力データの入力に対して、2のn乗より少ない数で補間する場合、前記複数の色変換テーブルのそれぞれを用いた演算を行なう際に、当該色変換テーブルを使用しない演算は、0と乗算することを特徴とする請求項1記載の色補間方法。 When the input of n-color input data is interpolated with a number less than 2 to the power of n , when performing an operation using each of the plurality of color conversion tables, an operation that does not use the color conversion table is: The color interpolation method according to claim 1, wherein 0 is multiplied . 入力データの種類に応じて補間演算点数を可変に選択することを特徴とする請求項1又は3記載の色補間方法。Claim 1 or 3 SL placing color interpolation method characterized by variably selecting the interpolation calculation points according to the type of input data. 全体の色変換テーブルのテーブル値を格子の一つおきに取り出した複数の色変換テーブル持ち、前記複数の色変換テーブルのそれぞれを用いた演算結果を逐次累積する演算を用いて計算する演算部を有することを特徴とする色補間装置。An arithmetic unit that has a plurality of color conversion tables in which the table values of the entire color conversion table are extracted every other grid, and calculates using a calculation that sequentially accumulates the calculation results using each of the plurality of color conversion tables A color interpolation device characterized by comprising:
JP2001146327A 2001-05-16 2001-05-16 Color interpolation method and color interpolation apparatus Expired - Fee Related JP4288865B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2001146327A JP4288865B2 (en) 2001-05-16 2001-05-16 Color interpolation method and color interpolation apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2001146327A JP4288865B2 (en) 2001-05-16 2001-05-16 Color interpolation method and color interpolation apparatus

Publications (2)

Publication Number Publication Date
JP2002344757A JP2002344757A (en) 2002-11-29
JP4288865B2 true JP4288865B2 (en) 2009-07-01

Family

ID=18991998

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001146327A Expired - Fee Related JP4288865B2 (en) 2001-05-16 2001-05-16 Color interpolation method and color interpolation apparatus

Country Status (1)

Country Link
JP (1) JP4288865B2 (en)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4165537B2 (en) 2005-06-29 2008-10-15 ブラザー工業株式会社 Color conversion apparatus and color conversion program
JP5327355B2 (en) * 2012-05-07 2013-10-30 コニカミノルタ株式会社 Color adjustment method and color adjustment apparatus
JP5942934B2 (en) 2013-07-09 2016-06-29 富士ゼロックス株式会社 Image processing apparatus and program

Also Published As

Publication number Publication date
JP2002344757A (en) 2002-11-29

Similar Documents

Publication Publication Date Title
US5475510A (en) Method for transforming color signals and apparatus for the method
JP4288865B2 (en) Color interpolation method and color interpolation apparatus
GB2332329A (en) Pruned and non-pruned tetrahedral interpolation for colour space conversion
CN109379191B (en) Dot multiplication operation circuit and method based on elliptic curve base point
JP4429626B2 (en) Method and system for calculating function value of input node based on function value of known node
US5999962A (en) Divider which iteratively multiplies divisor and dividend by multipliers generated from the divisors to compute the intermediate divisors and quotients
JPH11238126A (en) Common interpolating circuit for radial interpolation with asymmetrical pruning and tetrahedral interpolation with asymmetrical pruning
JP6448410B2 (en) Data conversion apparatus, control method therefor, and program
JP3446497B2 (en) Color conversion method
JP5164215B2 (en) Data converter
GB2332328A (en) Pruned and non-pruned radial interpolation for colour space conversion
JPH11238127A (en) Common interpolating circuit for pruning radial interpolation and pruning tetrahedral interpolation
JPH09153130A (en) Method and device for converting color
JP5987650B2 (en) Color conversion device
JPH09172554A (en) Color look up table
JP3871027B2 (en) Color data converter
JP4402523B2 (en) DATA CONVERSION METHOD, DATA CONVERSION DEVICE, PROGRAM, AND STORAGE MEDIUM
JP3548250B2 (en) Data conversion device and data conversion method
Vondran Radial and Pruned Tetrahedral Interpolation Techniques
JP2007174392A (en) Data converting apparatus, control method and program for the data converting apparatus
JP5757108B2 (en) Image processing apparatus and program
EP1098507A2 (en) Image processing apparatus
JP2001036755A (en) Color conversion circuit
JP2002027267A (en) Color signal converter
JPH08321956A (en) Data converter and signal processing method for data converter

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070123

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20080307

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080325

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20081202

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090204

A911 Transfer of reconsideration by examiner before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20090210

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20090310

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20090323

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: 20120410

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20130410

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20140410

Year of fee payment: 5

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees