JP2004208128A - Data conversion method and data converter - Google Patents

Data conversion method and data converter Download PDF

Info

Publication number
JP2004208128A
JP2004208128A JP2002376208A JP2002376208A JP2004208128A JP 2004208128 A JP2004208128 A JP 2004208128A JP 2002376208 A JP2002376208 A JP 2002376208A JP 2002376208 A JP2002376208 A JP 2002376208A JP 2004208128 A JP2004208128 A JP 2004208128A
Authority
JP
Japan
Prior art keywords
data
color
output
grid point
unit
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.)
Pending
Application number
JP2002376208A
Other languages
Japanese (ja)
Inventor
Yasunao Unno
泰直 海野
Goro Noda
悟朗 野田
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.)
Fujifilm Business Innovation Corp
Original Assignee
Fuji Xerox Co Ltd
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 Fuji Xerox Co Ltd filed Critical Fuji Xerox Co Ltd
Priority to JP2002376208A priority Critical patent/JP2004208128A/en
Publication of JP2004208128A publication Critical patent/JP2004208128A/en
Pending legal-status Critical Current

Links

Images

Abstract

<P>PROBLEM TO BE SOLVED: To reduce the size of a used memory in a data conversion method for converting input color data into output color data using a lookup table. <P>SOLUTION: A plurality of respective lattice point data in an original lookup table are merged based on a predetermined criterion to acquire merged data and the merged data are stored in a memory as lattice point data in a new lookup table. These merged data are read from the memory and separated into original individual lattice point data. Then, these data are subjected to usual data conversion processing. For example, all of Y bits of the lattice point data for four output colors Y, M, C, K are merged to make the bitwidth 4×Y bits. Upon data conversion processing, 4×Y bits of the merged data are read from the memory, and are separated into Y bits of lattice point data for respective output colors Y, M, C, K. <P>COPYRIGHT: (C)2004,JPO&NCIPI

Description

【0001】
【発明の属する技術分野】
本発明は、入力色データから出力色データを生成するデータ変換方法およびデータ変換装置に関する。より詳細には、たとえば、プリンタ装置、ファクシミリ装置、あるいはそれらの機能を有する複合機などの画像処理装置であって、たとえば、R(赤),G(緑),B(青)の多次元入力画像データを、Y(イエロ),M(マゼンタ),C(シアン),K(黒)の多次元出力画像データのそれぞれ1つの色データに変換するなど、所定次元の入力画像信号を別の色データに変換する技術に関する。
【0002】
【従来の技術】
【特許文献1】
特開平3−229573号公報
【特許文献2】
特開平8−181874号公報
【特許文献3】
特公昭58−16180号公報
【特許文献4】
特開昭56−14237号公報
【0003】
プリンタ装置や複写装置などの印刷機能を備えた画像形成装置が様々な分野で使用されている。また、今日では、画像形成装置がカラー化され、ユーザの様々な表現手段として利用されるようになってきている。たとえば、電子写真プロセス(ゼログラフィ)を用いたカラーページプリンタ装置は、高品質な画質あるいは高速プリンティングの点で注目されている。
【0004】
また、今日では、DTP(DeskTop Publishing/Prepress)の普及により、カラー画像を扱う機会が増しつつあり、この場合において、カラー画像を入力するための機器は、スキャナ、ビデオカメラなどが主であり、また、出力機器はインクジェット方式や染料熱昇華型方式あるいは電子写真などの各種カラープリンタである。なかでも、高速出力可能な電子写真プロセスを用いた印刷機能が着目されている。
【0005】
これらのカラー入出力機器は、それぞれ固有の色空間を有しており、あるスキャナから得たカラー画像データを、そのまま別のカラープリンタに転送して、画像を出力する場合、その画像の色がオリジナルの画像の色と一致することは殆どありえない。両者の色を一致させるには、いわゆる入力デバイス(スキャナやビデオカメラなどのこと)の色空間を、出力デバイス(前述の各種カラープリンタのこと)の色空間に変換するといったを色空間変換処理処理が必要になる。
【0006】
このような色空間変換処理とは、入力デバイスによって得られる色(一般的には、R(赤),B(青),G(緑)の3色)の画像信号を出力デバイス側の3色あるいは4色それぞれの画像信号に非線形に変換するものである。
【0007】
画像などのデジタル信号に対する非線型変換(たとえばガンマ変換やlog変換)には、一般にLUT(Look Up Table ;ルックアップテーブル)を用いた変換を行なうことが多い。LUTを用いる方法とは、入力信号に対応する出力値を予め算出しておき、その値をテーブルとして保持し、入力値に対応した出力値を演算なしで得る方法である。この方式を適用することで、複雑な演算回路を削除することが可能となる。
【0008】
非線形変換を演算回路で行なうものとすると、その演算回路が複雑になり回路規模が大きくなるが、たとえば8ビットからなる1つのビデオデータに任意の非線形変換を行なう処理をLUTを用いて行なう場合には、256バイトの容量のメモリがあればその処理が実現可能であり、複雑な演算回路を削除することが可能となる。ところで、上述のような変換は1つの画像信号を別の性質の他の1つの画像信号に変換するものであるため、そこで使用されるLUTは1次元LUTといわれる。
【0009】
たとえば、プリンタなどのハードコピー出力機器ではカラー画像信号が扱われる。これら出力機器はY,M,C,Kなどの色の色材を用いて、紙面などの上に画像を形成する。したがって、Y,M,C,Kから構成される色空間を有している。一方、カラー画像の入力機器として想定されるものとしてスキャナ、デジタル・スチル・カメラなどがあるが、これらはそれぞれ固有の色空間を有している。これらは、多様な色空間を有しているが、代表的なものとしては、R,G,Bで構成される色空間を有する。したがって、プリンタなどの出力機器でハードコピーとして出力する際には、これら色空間の変換が必要となる。
【0010】
ところが、上述した入力デバイスの3色の画像データを、出力デバイスの複数色中の1色に変換する処理を、3次元LUTだけを用いて行なおうとすると、大容量のメモリが必要となる。たとえば、R,G,Bの信号がそれぞれ8ビット信号であり、出力であるY,M,C,Kの信号も8ビット信号である場合、入力値の組合せは16,777,216通り(2^8×2^8×2^8通り;“^”はべき乗を示す)であり、R,G,Bの入力に対してY,M,C,Kのうちの1色に変換するのに16メガバイト(Mbyte)のメモリが必要となる。よって、Y,M,C,Kの4色に変換するには、16メガバイトの4倍の64メガバイトものメモリが必要となる。
【0011】
つまり、入力24ビット、出力8ビットに対応したLUTが必要で、この場合、出力1色当たりのメモリ容量は16M(メガ)バイトとなり、さらに、出力デバイスの色数分だけ上述のメモリが必要であるため、実際のメモリ容量は、48〜64Mバイトといった大容量となる。したがって、このメモリ容量はコスト的な観点でみた場合にシステムに対するインパクトが大きく、現実的ではない。
【0012】
このような問題を解消するために、色変換処理においてLUTを用いる場合は、補間演算処理を併用することによって、用いるLUTのメモリ容量を小さなものとするのが一般的である。たとえば、LUTと補間処理の組合せによるデータ変換機構が提案されている。この変換機構は、入力信号の上位複数ビット分にのみ対応した出力値をLUTとして構成することで従来のLUT方式におけるLUTの容量を削減するものである。入力信号に該当する出力値が存在しない場合はその入力値が示す空間位置の近傍データを用いて補間処理を施し出力値を算出する。
【0013】
このような補間演算処理は、LUTから読み出したデータ(格子点データ)をいくつ用いるか、また、どのような関係の格子点データを用いるかによって、いくつかの方法に分類できる。一般的に、格子点データを多く用いる方法では補間精度は向上するが補間回路の規模が大きくなる。比較的回路規模が小さな補間方法として、たとえば特許文献2,2,3に記載されている4点補間法(テトラ・ハイドラ補間;Tetra-Hydra 補間)が知られている。また、特許文献2には、5点補間法もあることが述べられている。また、特許文献3には、回路規模が大きくなるが、補間精度がよい補間方法として、立方体補間法(8点補間法)もあることが、従来例として述べられている。
【0014】
上述した4点補間法と8点補間法は、立方格子の各格子点に対応して存在する格子点データを用いて補間演算する場合に、それぞれ最も回路規模が小さい補間方法すなわち最も少ない格子点データで補間する方法、および最も回路規模が大きい補間方法すなわち最も多い格子点データで補間する方法に対応するものである。つまり、3次元立方格子の各格子点データを用いて補間演算する際の格子点データの個数(補間演算所用データ数)は、元のLUTの格子点で確定される単位立方体を内分する多面体に応じて定まるものであり、立方格子を対象とする場合、最小で4個、最大で8個である。
【0015】
たとえば、入力3要素のデータからなる格子体を構成し、入力3要素の上位ビットからいずれの格子体に該当データが含まれるかを決定し、その中をさらに6つの4面体に分割し、入力3要素の下位ビットからいずれの4面体に該当データが含まれるかを決定し、4面体頂点から得られる基礎データとその4面体ごとに決められた乗数とをもとに演算する手法が、テトラ・ハイドラ補間演算(4面体補間演算)である。この場合、入力データが決まれば、必要となる4面体が一意に決まり、4面体を決めるには互いに交差しない2つの線分から得られる合計4頂点があればよい。
【0016】
一方、補間処理においては、近傍の何点のデータを演算対象とするかによって出力値の補間精度が異なる。より多くのデータを補間演算の対象にすれば補間精度は向上する。ただし、多くのデータを用いる場合は補間回路の規模が大きくなり、回路削減の効果が小さくなってしまう。
【0017】
この問題を解消する一手法として、特許文献1,2には、LUTに保持するデータ量と補間に用いるデータの個数とを効率的に規定する方法が提案されている。たとえば特許文献2に記載の方法は、先ず、入力3要素のデータからなる格子体(単位立方体)を構成し、入力3要素の上位のビットデータRH,GH,BHに基づいて何れの格子体に該当データが含まれるかを決定し、その中をさらに6つの4面体に分割し、入力3要素の下位のビットデータRL,GL,BLに基づいて何れかの4面体に該当データが含まれるかを決定し、4面体頂点から得られる基礎データとその4面体ごとに決められた乗数(補間係数)とに基づいて、入力値に対応する出力値をテトラ・ハイドラ法による演算で求めるというものである。
【0018】
この特許文献2に記載の方法では、入力データが決まれば、必要となる4面体が一意に決まる。すなわち、入力R,G,Bの3次元LUT上における近傍4格子点が特定される。そして、4面体を決めるには互いに交差しない2つの線分から得られる合計4頂点があればよい。これらの線分は、入力3要素うち1つの要素のそれぞれ連続する頂点を結ぶもので表すことができる。
【0019】
詳細な説明は割愛するが、この特許文献2に記載の方法を用いると、入力R,G,Bから任意の1色(出力色)への変換に際し、LUTへの格納データ数を17データ×17データ×17データ(4913個の格子点)と規定した場合、LUTの容量は49キロバイトで実現可能となり、補間処理を用いない方式における16メガバイトと比較すると大幅な容量削減が可能である。
【0020】
【発明が解決しようとする課題】
しかしながら、特許文献2などに記載の方法では、1つの画素に対する色空間変換の処理時間として割り当てられている時間が非常に短時間である場合、LUTとして用いられるメモリから複数のデータを複数回読み出すことが不可能であるため、同容量のメモリを補間演算所用データ数の分だけ使用しなければならない。
【0021】
テトラ・ハイドラ補間の場合において、RGBからYMCKへの変換を想定するとYへの変換に4つの格子点抽出用として4個、同様にMへの変換用に4個、Cへの変換用に4個、Kへの変換用に4個、合計16個の同容量のメモリが必要となる。
【0022】
図17は、テトラ・ハイドラ補間を利用して、RGB入力からYMCK出力への色変換を行なう従来のデータ変換装置の構成例を示す図である。図18は、図17に示すデータ変換装置1におけるデータ格納部2に使用される各頂点データの参照用メモリのデータ構成例を示す図である。メモリとしては、特定用途向け半導体内に構成されるRAM(Random Access Memory)を使用している。
【0023】
図17に示す装置構成では、Yへの変換に4つの格子点抽出用として4個、同様にMへの変換用に4個、Cへの変換用に4個、Kへの変換用に4個のメモリが必要となる。また、図18に示すように、RGB入力色データをYMCK出力色データに変換するための参照用メモリ(RAM)の各アドレスには、色変換の対応点データが、入力3要素のデータビット幅そのもの(本例では8ビット)で格納されている。
【0024】
このように、従来方式では、テトラ・ハイドラ補間演算に必要となる4頂点のデータをある単位時間で得るために、出力の1つの構成要素につき、同容量・同内容のメモリを4つ用意しなければならない。出力がY,M,C,Kの4つの構成要素からなるこの例の場合は、合計で16個のメモリを用意する必要がある。
【0025】
LUTへの格納データ数を上述のように17データ×17データ×17データと規定した場合、前述の49キロバイトではなく、786キロバイトを全メモリ容量として用意しなければならなくなる。補間精度を重視し、8点補間を想定すると32個もメモリが必要となり、全メモリ容量は1,568キロバイトにもなる。
【0026】
また、プリンタなどのハードコピー出力装置は、その出力文書中の構成要素(たとえば、テキスト、コンピュータ・グラフィックス画像、写真画像などの画像オブジェクト)ごとに異なった色変換を行なうことが望まれる。この場合、各頂点のデータとして複数のデータが必要となるため、メモリの使用個数がさらに増加し、当然に、全メモリ容量もさらに増加することになる。
【0027】
このように、全メモリ容量が増加すれば、半導体内に構成されるメモリとして、その占有面積が増加し、チップサイズの大きなものが必要になる。この結果、コストアップを招くことにもなる。
【0028】
本発明は、上記事情に鑑みてなされたものであり、補間演算を利用して色変換を行なうに際して、メモリの占有面積を削減することのできるデータ変換方法および装置を提供することを目的とする。
【0029】
【課題を解決するための手段】
詳細は、実施形態で説明するが、本発明は、同じ容量のメモリを構成する場合でも、ビット幅を大きくした場合の方がゲート規模(メモリサイズ)が小さくなるという技術的知見に基づいてなされたものである。
【0030】
すなわち、本発明に係るデータ変換方法および装置は、元のルックアップテーブルにおける各格子点データを所定の基準に基づいて複数分を合成した合成データを新たなルックアップテーブルの格子点データとして格納しておく。そして、データ変換処理時には、合成データを読み出して元の個別の格子点データに分離してから、通常のデータ変換処理を行なうことを特徴とする。
【0031】
たとえば、本発明に係る第1のデータ変換方法は、入力色データを出力色データに変換する際に用いられるルックアップテーブルの格子点データに基づいて、入力色データの画素データごとに、入力色データに対応する出力色用の画素データを決定するデータ変換方法であって、先ず、ルックアップテーブルの各格子点に、複数の出力色についての元のルックアップテーブルにおける各格子点データを所定の基準に基づいて所定数の出力色分を合成した合成データを格納しておく。
【0032】
データ変換処理時には、合成データが格納されたデータ格納部から入力色データの画素データに対応する合成データを読み出し、この読み出した合成データを出力色についての各格子点データに分離する。そして、出力色ごとに、分離した出力色用の格子点データを使用して、出力色用の画素データを決定する。
【0033】
本発明に係る第2のデータ変換方法は、先ず、ルックアップテーブルの各格子点に、複数の画像属性についての元のルックアップテーブルにおける各格子点データを所定の基準に基づいて所定数の画像属性分を合成した合成データを格納しておく。
【0034】
データ変換処理時には、合成データが格納されたデータ格納部から入力色データの画素データに対応する合成データを読み出し、この読み出した合成データを、画像属性についての各格子点データに分離する。そして、出力色ごとに、分離した出力色用の格子点データを使用して、出力色用の画素データを決定する。
【0035】
本発明に係る第3のデータ変換方法は、第1および第2のデータ変換方法を組み合わせたものであって、先ず、ルックアップテーブルの各格子点に、複数の画像属性並びに複数の出力色についての元のルックアップテーブルにおける各格子点データを所定の基準に基づいて所定数の画像属性分並びに所定数の出力色分を合成した合成データを格納しておく。
【0036】
データ変換処理時には、合成データが格納されたデータ格納部から入力色データの画素データに対応する合成データを読み出し、この読み出した合成データを、画像属性並びに出力色についての各格子点データに分離する。そして、出力色ごとに、分離した出力色用の格子点データを使用して、出力色用の画素データを決定する。
【0037】
本発明に係る第1のデータ変換装置は、本発明に係る第1のデータ変換方法を実施する装置であって、先ず、複数の出力色についての元のルックアップテーブルにおける各格子点データを、所定の基準に基づいて所定数の出力色分を合成して得られる合成データが各格子点に格納されてなるデータ格納部を備えるものとした。
【0038】
また、第1のデータ変換装置は、合成データが格納されてなるデータ格納部から入力色データの画素データに対応する合成データを読み出す合成データ読出部と、合成データ読出部が読み出した合成データを出力色についての各格子点データに分離するデータ分離部と、出力色ごとにデータ分離部が分離した当該出力色用の格子点データを使用して出力色用の画素データを決定する出力色データ決定部とを備えるものとした。
【0039】
本発明に係る第2のデータ変換装置は、上記本発明に係る第2のデータ変換方法を実施する装置であって、先ず、複数の画像属性についての元のルックアップテーブルにおける各格子点データを所定の基準に基づいて所定数の画像属性分を合成して得られる合成データが各格子点に格納されてなるデータ格納部を備えるものとした。
【0040】
また、第2のデータ変換装置は、合成データが格納されてなるデータ格納部から入力色データの画素データに対応する合成データを読み出す合成データ読出部と、合成データ読出部が読み出した合成データを画像属性についての各格子点データに分離するデータ分離部と、出力色ごとにデータ分離部が分離した当該出力色用の格子点データを使用して出力色用の画素データを決定する出力色データ決定部とを備えるものとした。
【0041】
本発明に係る第3のデータ変換装置は、本発明に係る第3のデータ変換方法を実施する装置であって、先ず、複数の画像属性並びに複数の出力色についての元のルックアップテーブルにおける各格子点データを所定の基準に基づいて所定数の画像属性分並びに所定数の出力色分を合成して得られる合成データが各格子点に格納されてなるデータ格納部を備えるものとした。
【0042】
また、第3のデータ変換装置は、合成データが格納されてなるデータ格納部から入力色データの画素データに対応する合成データを読み出す合成データ読出部と、合成データ読出部が読み出した合成データを画像属性並びに出力色についての各格子点データに分離するデータ分離部と、出力色ごとにデータ分離部が分離した当該出力色用の格子点データを使用して出力色用の画素データを決定する出力色データ決定部とを備えるものとした。
【0043】
また従属項に記載された発明は、本発明に係るデータ変換方法および装置のさらなる有利な具体例を規定する。なお、合成データ読出部や出力色データ決定部に関してはハードウェアによらずソフトウェアにて実現することもでき、本発明に係るデータ変換装置を、電子計算機を用いてソフトウェアで実現するために好適なプログラムやこのプログラムを格納したコンピュータ読取り可能な記憶媒体も、本願の発明として抽出することが可能である。なお、プログラムは、コンピュータ読取り可能な記憶媒体に格納されて提供されてもよいし、有線あるいは無線による通信手段を介して配信されてもよい。
【0044】
また、元のルックアップテーブルにおける各格子点データを所定の基準に基づいて複数分を合成して得られる合成データは、有線あるいは無線による通信手段を介して配信されることで、データ格納部に格納されるものであってもよい。あるいは、合成データは、コンピュータ読取り可能な記憶媒体に格納されて提供されてもよい。この場合、データ変換装置の使用前に、記憶媒体から合成データを読み出しデータ格納部に格納しておく。このような、上述の合成データが格納されたコンピュータ読取り可能な記憶媒体も本願の発明として抽出することが可能である。
【0045】
【作用】
本発明の上記構成においては、先ず、データ変換処理に必要となる格子点データを格納するデータ格納部として、先ず、元のルックアップテーブルにおける各格子点データを所定の基準に基づいて複数分を合成して得られる合成データが各格子点に格納されてなるものを用意する。そして、データ格納部から合成データを読み出して元の個別の格子点データに分離してから、通常のデータ変換処理を行なう。
【0046】
【発明の実施の形態】
以下、図面を参照して本発明の実施の形態について詳細に説明する。
【0047】
<<メモリデータの基本的な構造>>
図1は、特定用途向け半導体内に構成される記憶手段の一例であるメモリの容量と、メモリが占める面積(以下ゲート(gate)規模という)の関係を説明する図である。ここで、図1(A)は、同じ容量のメモリを複数の条件で構成した場合のメモリのゲート規模の一例を示した図表であり、図1(B)は、図1(A)のデータをグラフ化したものである。なお、この図1(A)に示すデータは、“株式会社 東芝 TC260E ASICシリーズデータブック”から引用したものである。
【0048】
図1(A)では、1,048,576ビットのメモリを5つの条件で構築した場合を例示している。ワード(word)数を共通とし、ビット幅を変えつつ、同容量のメモリを構成するとき、ゲート規模がどのように変化するかを示している。図1(B)において、折れ線は、各構成(▲1▼〜▲5▼)における容量合計を示しており、全て同容量(1,048,576ビット)である。一方、棒グラフは各構成におけるゲート規模を示している。各構成のワード数は同じであるが、ビット幅の条件が異なる。
【0049】
図1(B)から分かるように、同じ容量(容量合計)のメモリを構成する場合でも、構成▲5▼で示すように、ビット幅を大きくした場合の方がゲート規模が小さくなる。ゲート規模が小さくなれば、その占有面積が減少し、チップサイズの小さなメモリとなる。これにより、同容量のメモリを使用する場合でも、データのビット幅を大きくすることで、チップサイズが小さく、低コストのメモリを使用できる。
【0050】
このことから、データ変換装置においては、ビット幅を大きくすることのできるようなデータ構成とすれば、LUTを構成するメモリとして、チップサイズの小さなメモリを使用でき、これによりコスト低減を図ることができるということが推測される。
【0051】
<<メモリデータの第1の構成例と対応回路>>
図2は、色データを変換する際に使用されるLUTに格納するデータの構造(メモリデータ構造)の第1例を説明する図である。前述の考察に基づき、同じ容量のメモリを構成する場合において、ビット幅を大きくすることでゲート規模(メモリサイズ)を小さくする。ここで、ビット幅を広げるための手法として、第1例においては、以下のような点に着目した。
【0052】
先ず、図18に示した従来のデータ構造を参照する。図18に示されるように、参照用メモリ(RAM)の各アドレスには、色変換の対応点データが、入力3要素のデータビット幅そのもので格納されている。具体的には、1つの構成要素のデータである8ビットで格納されている。一方、テトラ・ハイドラ補間を利用して、RGB入力からYMCK出力への色変換を行なうデータ変換処理の際には、同一アドレスのY,M,C,Kの参照用データを使用する。
【0053】
そこで、第1例のデータ構造においては、先ず、補間演算に必要となるデータをある単位時間内に同時に抽出できるように、補間演算に必要となるLUTの格子点数(頂点数)と等しい数(T個;テトラ・ハイドラ補間の場合は4個)のメモリで構成する。一方、新たに構成するLUTの各格子点のアドレス位置には、図2に示すように、出力色構成要素(本例ではY,M,C,K)のうちの一部もしくは全てのデータを纏めて合成データとして格納する。図2(A)に示すように全てを纏めた方が、図2(B)に示すように一部だけを纏めるよりも、ビット幅が広がるのはいうまでもない。
【0054】
ここで、合成される任意の格子点のデータビット幅をNビット、1つの構成要素のデータビット幅をMビット(M,Nは正の整数で、N>M)、元の(従前の)LUTの任意アドレスに格納されているデータサイズをYビット(Yは正の整数)、出力色の構成要素数をX(Xは2以上の正の整数)、出力色構成要素(X)を所定数nのグループに分割(X=x1+x2+…+xn;xiは正の整数)することとすれば、各グループのLUT格子点の合成データのビット幅NやNi(単位はビット)は、以下の式(1)で示すことができる。xi=Xであれば、全てを纏めることを意味し、1グループのみとなる。なお、従前の例から分かるように、通常は、1つの構成要素のデータビット幅MとLUTのデータサイズYとは等しい。
【数1】

Figure 2004208128
【0055】
また式(1)を満足する限り、図2(B)や図2(C)に示すように、複数のグループに分けて纏めることもできる。また、図2(C)に示すように、纏め方によっては、1構成要素のデータビット幅そのもので格納されるグループができる。なお、複数のグループに分けるということから、この場合、出力構成要素数Xが3以上であることが前提となる。纏めるからには、出力構成要素数Xが複数(2以上)でなければならず、x=2の場合、これを纏めると1つのグループしかできなからである。
【0056】
なお、色データの変換処理は、RGB入力からYMCK出力への多次元LUTを用いた色変換に限定されるものではない。たとえば、ある色軸(たとえばLab空間の各軸)のデータを同一軸上で異なるデータ値に変換するための1次元LUTを用いる処理であってもよい。ただし、1次元LUTであれば、1つの入力構成要素の色データから複数の出力構成要素の色データに変換するということはあり得ず、「出力色の複数を纏める」という概念が存在しないので、第1例の適用範囲は、入力構成要素数が“2”以上のものに限定される。
【0057】
また、入力構成要素数が“2”である例としては、たとえば入力構成要素が3入力以上であるものについて、その内の2軸のみに着目した2次元LUTを用いた色変換が考えられる。具体的には、Lab色空間で表される色データを入力とするケースにおいて、色相および彩度を表すa,bのみに着目して、ab空間の2次元LUTを用いて出力値a,bを求める色変換が考えられる。これは、明度については入力値を維持するが、色相および彩度についてデータ値を変える(色変換する)ことを意味する。この事例に前述の第1例の合成手法を適用する場合、出力値a,bについて合成すればよい。
【0058】
また、入力構成要素数が“3”である例としては、RGB,sRGB,Lab,YCbCr,YMC,XYZなどの色空間データが考えられる。さらに、入力構成要素数が“4”である例としては、YMCK,K(墨量)+Lab,RGB+L(明度)などの色空間データが考えられる。また、RGB入力からYMCK出力への色変換のように、入力色空間と出力色空間とが同じものに限らず、異なるものであっても構わない。
【0059】
以上のように、第1例のデータ合成の手法を適用して元のLUT格子点データの同一アドレスのデータを複数の出力色構成要素について纏めることでデータビット幅を大きくし、このデータビット幅の大きな状態でメモリにLUTデータを格納することとすれば、ゲート規模(メモリサイズ)を小さくすることができ、メモリコストの低減を図ることができる。これにより、冗長性の低い、効率的なLUTの構成方法とアクセス方法を提供することができる。
【0060】
図3は、図2に示した第1例の合成手法を適用したデータ構造を持つLUTを使用する場合における、第1実施形態のデータ変換装置1の基本的な構成例を示す図である。
【0061】
第1実施形態のデータ変換装置1には、外部機器から、入力系の色成分I1,I2,…,Iwの各Y1ビットの入力デジタル色分解信号が入力される。データ変換装置1は、入力データを、出力系の色成分S1,S2,…,Sxの各Y2ビットのデータに色変換する。たとえばR,G,Bの3色の各8ビットデータが入力されると、Y,M,C,Kの4色の各8ビットのデータに色変換する。なお、この入力データや出力データの形式は、一例に過ぎず、他の色系列であってもよいし、ビット数Y1,Y2も“8”に限らない。
【0062】
図示するように、第1実施形態のデータ変換装置1は、入力データに対応する色変換後の出力データを補間演算により求める際に使用される基礎データを格納するデータ格納部2と、データ格納部2との間データでやり取りをしながら、出力色ごとに、入力画素データに対応する出力画素データを補間演算により求める演算処理部4とを備える。
【0063】
データ格納部2は、入力色信号要素で規定されるw次元格子空間(w次元LUT)の各格子点に対応づけられた格子点データに対応する基礎データが、図2にて説明したように、複数の出力色構成要素について所定の基準に従ってグループ化され、そのグループ内の同一アドレスの複数の基礎データが1つの合成データに纏められて格納されることで、ルックアップテーブルLUTを構成するようになっている。たとえば、出力色の全てを纏めて1グループとする場合、補間演算に必要となる格子点データ数Tの分だけの参照用メモリ2T1,2T2,…,2Ttを使用する。各参照用メモリ2T1,2T2,…,2Ttには、出力色S1〜Sxについての格子点データが合成されて格納される。
【0064】
これらメモリ2T1,2T2,…,2Ttは、1つの画素に対する色空間変換の処理時間として割り当てられている時間が非常に短時間である場合にも対応可能なように、それぞれ独立にアドレス設定可能かつ読出可能に、つまり独立に読出アクセス可能に構成されている。
【0065】
演算処理部4は、信号処理系統として、出力系の色成分S1,S2,…,Sxのそれぞれに対応するように、S1信号生成部4S1,S2信号生成部4S2,…,Sx信号生成部4Sxを含む。また、演算処理部4は、データ格納部2に格納されている合成データを、出力構成要素ごとのデータに分離するデータ分離部16を備える。ここで、第1実施形態のデータ分離部16は、出力色S1,S2,…,Sxに対応して、個別回路が内部に設けられる。この演算処理部4は、たとえばCPU(Central Processing Unit )やDSP(Digital Signal Processor)で構成するとよい。
【0066】
データ格納部2と演算処理部4との間は、演算処理部4がデータ格納部2から基礎データを読み出すためにアドレス信号などの制御信号を送るアドレスバス6、およびデータ格納部2から読み出された基礎データを演算処理部4へ送るデータバス8で接続されている。
【0067】
演算処理部4には、出力値を生成するための補間演算に用いられるデータが格納されているルックアップテーブルへのアクセスアドレスを生成するアドレス生成部が設けられる。そして、アドレスバス6では、データ格納部2内の個々のメモリ空間(メモリ2T1,2T2,…,2Tt)における基礎データの読出位置を設定するアドレス信号、クロック、あるいはチップセレクト信号などの伝送が行なわれる
データバス8は、データ変換前の入力データを図示しない外部装置から入力するためや、変換後の出力データを同一または別の外部装置へ出力するために用いられる。
【0068】
このような構成において、演算処理部4は先ず、データ格納部2内のメモリ2T1,2T2,…,2Ttの任意のアドレスから、各出力色構成要素の格子点データであって複数の出力色構成要素について合成されたNビットもしくはNiビットの合成データを読み出す。データ分離部16は、読み出された合成データを、出力色構成要素ごとの格子点データに分離する。色成分S1,S2,…,Sxごとに設けられた信号生成部4S1〜4Sxは、分離された格子点データを用いて補完演算を行なうことで、色成分S1,S2,…,Sxごとに出力データを生成する。
【0069】
図4は、第1実施形態のデータ変換装置1における色データの変換に関する処理手順の概要を示したフローチャートである。なお、以下の説明では、入力データが8ビットR,G,B、出力データが8ビットY,M,C,Kで、演算処理部4は、テトラ・ハイドラ補間演算をするものとして説明する。この場合、図3に示すように、演算処理部4には、Y信号生成部4Y,M信号生成部4M,C信号生成部4C,K信号生成部4Kを使用する。また、メモリ2には、4つのメモリ2T1,2T2,2T3,2T4を使用する。
【0070】
第1実施形態の演算処理部4は、データ格納部2に格納されている色変換用のLUT(ルックアップテーブル)の格子点データを用いて、外部機器から入力された各信号(R,G,B)を、出力色(Y,M,C,K)の色データに色変換する際に、テトラ・ハイドラ法を用いた補間処理を利用する。
【0071】
このため、画像データR,G,Bが入力されると、演算処理部4は先ず、入力された8ビットのR,G,Bデジタル色分解信号を、画素ごとに、上位αビット(最上位ビット側から連続したα個)と下位βビット(最下位ビット側から連続したβ個)に分割する(S100)。
【0072】
次に、演算処理部4は、入力3要素の上位αビットのデータRH,GH,BHに基づいて、入力3要素のR,G,Bデータからなる3次元格子体(3次元LUT)を構成したとき、各格子点で規定される多数の単位格子体(本例では単位立方体)のうちの何れの単位立方体に該当データが含まれるかを決定する(S102)。このステップS100〜S102の処理を単位立方体判定処理という。
【0073】
次に、演算処理部4は、該当する単位立方体の中をさらに6つの4面体に分割し(S104)、入力3要素の下位βビットのデータRL,GL,BLに基づいて何れの4面体に該当データが含まれるかを決定する(S106)。このステップS104〜S106の処理を4面体判定処理という。
【0074】
次に、演算処理部4は、該当する4面体内での補間演算というテトラ・ハイドラ法により、入力値(入力された画素データ)に対応する出力値(出力すべき画素データ)を求める(S108)。
【0075】
具体的には、図中右側に示すように、演算処理部4は、先ず、入力点を包含する基点の座標値に基づいて、同一アドレスのデータ群における補間演算に必要な4格子点を特定し抽出する4格子点特定処理(アクセスアドレス特定処理ともいう)を行なう(S108a)。つまり、演算処理部4は、4つのメモリ2T1,2T2,2T3,2T4について、テトラ・ハイドラ法による補間演算処理により出力値を生成するために用いられるデータが格納されているLUTへのアクセスアドレスを特定する。
【0076】
LUTの任意のアドレスには、出力構成要素数分のデータを合成してnビット(本例では32ビット)で格納されている。このため、演算処理部4のデータ分離部16は、アクセスアドレス特定処理にて特定された入力値に対応する特定アドレスから格子点データを抽出し、この抽出した32ビットの格子点データを、出力色構成要素の単位データであるmビット(本例では8ビット)のデータに分離する(S108b)。
【0077】
演算処理部4は、4格子点特定処理(S108a)と並行して、該当する4面体について、4面体頂点から得られる4つの基礎データ(本例では元の格子点データそのもの)に対する重み係数(乗算係数)である補間係数を算出する補間係数算出処理を行なう(S108c)。そして、演算処理部4は、該当する4面体について、4格子点特定処理(S108b)により得られた基礎データ(格子点データ)と補間係数算出処理(S108c)により得られた補間係数とに基づいて、入力値に対応する出力値Doutを求める補間演算処理を行なう(S108d)。
【0078】
演算処理部4は、上記一連の処理を、出力色であるY,M,C,Kのそれぞれについて行なうとともに(S112)、全画素について行なうことで(S110)、入力されたRGB色空間の色データをYMCK色空間のデータに変換する。
【0079】
図5は、第1実施形態のデータ変換装置1において、RGB入力からYMCK出力への多次元LUTを用いた色変換を行なう場合のデータ構造の具体例を示す図である。図18に示した従来例との比較のため、元の(従前の)LUTへの格納データ数を17データ×17データ×17データ(4913個の格子点アドレスが必要)と規定する。
【0080】
ここで、前述のように、演算処理部4は、テトラ・ハイドラ補間演算を行なうものとする。この場合、メモリ(データ格納部2)は、テトラ・ハイドラ補間演算に必要となる4つの頂点のデータをある単位時間内に同時に抽出できるように、4つの頂点用の4個のメモリ(RAM0〜RAM3)で構成される。
【0081】
各頂点のアドレス位置には、YMCK4色分の格子点データが1つの合成データとして纏められて保持される。ここでは、RGB入力データが8ビットであり、YMCK4色分が纏められることで、1ワードとしては、8ビット×4色=32ビットの状態で格納される。このような構成によれば、出力色ごとにメモリを個別に使用する場合よりも、特定用途向け半導体内に構成されるメモリとしてはその占有面積が格段に小さくなり、コスト面での経済的効果は絶大である。
【0082】
図6は、第1実施形態のデータ変換装置1の具体的な構成を示すブロック図である。この図6に示すデータ変換装置1の構成は、R,G,Bの3次元入力の場合における図5に示したメモリ構成を適用した具体的な回路構成である。ここでも、入力デジタル色分解信号の構成要素がR,G,Bであり、それぞれ8ビットのデータであるとする。
【0083】
図示するように、演算処理部4は、単位立方体判定処理(図4のステップS100〜S102)およびアクセスアドレス特定処理(同S108a)を実行するアドレス生成部10と、4面体判定処理(同S104〜S106)を実行する4面体判定部14と、データ分離処理(同S108b)を実行するデータ分離部16と、補間係数算出処理(S108c)を実行する補間係数生成部20と、近傍4つのデータを用いるテトラ・ハイドラ補間演算処理(S108d)を実行する出力色データ決定部22とを備える。
【0084】
データ格納部2は、テトラ・ハイドラ補間演算における4頂点に対応するように、第1頂点のデータを参照するためのLUTを構成する第1頂点データ参照用メモリ2T1、第2頂点のデータを参照するためのLUTを構成する第2頂点データ参照用メモリ2T2、第3頂点のデータを参照するためのLUTを構成する第3頂点データ参照用メモリ2T3、および第4頂点のデータを参照するためのLUTを構成する第4頂点データ参照用メモリ2T4を備えている。
【0085】
それぞれのメモリ2T1〜2T4は同じ内容で同じ容量のLUTを格納している。テトラ・ハイドラ補間演算を行なう場合、従来は図18に示したように、同容量・同内容のメモリを4つ用意し、かつY,M,C,Kの4出力に応じて、計16個のメモリを用意する必要があった。ここで、各頂点へのアドレスはそれぞれ異なるが、各色では同じ頂点のデータを必要としており、アクセスするメモリ実態は異なっていてもアドレス値は同じである。
【0086】
よって、図3(A)や図5に示したように、1つのアドレスの4つの出力値構成要素を纏めることで、メモリの簡素化を図ることが可能となる。この場合は出力値がそれぞれ8ビットのデータであり、出力色構成要素はY,M,C,Kの4色なので、1つのアドレスに32ビットの合成データを格納することになる。
【0087】
たとえば、第1頂点データ参照用メモリ2T1には4つの出力色Y,M,C,Kの第1頂点についてのデータを纏めた合成データ“Y1+M1+C1+K1”(参照符号“1”が頂点番号を示す)が格納されている。同様に、第2頂点データ参照用メモリ2T2には合成データ“Y2+M2+C2+K2”が、第3頂点データ参照用メモリ2T3には合成データ“Y3+M3+C3+K3”が、第4頂点データ参照用メモリ2T4には合成データ“Y4+M4+C4+K4”が、それぞれ格納されている。
【0088】
このようなメモリ構成にすると、ゲート規模の極小化の利点を享受することができる。前述のように、同容量のメモリを構成する場合、よりビット幅を大きくし、メモリの個数をより少なくした方が、ゲート規模を削減することができる。
【0089】
第1実施形態のデータ分離部16は、全出力色について纏められた合成データを各出力色成分に分離するものであり、4つの頂点用のメモリ2T1〜2T4に対応するように、第1出力色データ分離部16T1、第2出力色データ分離部16T2、第3出力色データ分離部16T3、および第4出力色データ分離部16T4を備えている。
【0090】
出力色データ決定部22は、4つの出力色Y,M,C,Kに対応するように、Y補間処理部22Y、M補間処理部22M、C補間処理部22C、およびK補間処理部22Kを備えている。
【0091】
アドレス生成部10は、合成データ読出部の一例であって、単位格子体判定部の機能とアドレス設定部の両機能を備える。また、補間係数生成部20と出力色データ決定部22とにより、補間演算処理部が構成される。
【0092】
図7は、演算処理部4における単位立方体判定処理(図2のステップS100〜S102)を説明する図であって、出力値の代表値である格子点データを構成する元の3次元LUTと入力データとの関係を説明する図である。ここで図7(A)は、LUTの3次元空間での概念図を示し、図7(B)は、各8ビットのRGB入力信号とそれぞれの信号の上位4ビット信号が対応する3次元LUT上での位置関係を示す。
【0093】
図7(A)に示すように、R,G,Bの各軸における取り得る値の範囲を複数に分割する。ここでは各軸を16に分割した例を示している。このような分割によって得られる格子点をアドレスとし、その格子点における変換後の値(代表値)を対応付けることによってLUTを構成する。したがって、この例では、17×17×17=4913個の格子点について、それぞれ対応する変換後のデータを代表値として格納した3次元LUTを作成することができる。
【0094】
演算処理部4は、入力された8ビットのR,G,Bデジタル色分解信号を上位αビット(最上位ビット側から連続したα個)と下位βビット(最下位ビット側から連続したβ個)に分割する。たとえば、演算処理部4は、α=β=4とし、入力されたR,G,Bを、それぞれ上位4ビットのRH,GH,BHと下位4ビットのRL,GL,BLに分割する。もちろん、α,βは、これ以外であってもかまわない。なお、“α+β”は、入力データのビット数8と等しいことが好ましい。
【0095】
たとえば、各LUTは、図7(A)に示すように、RGBそれぞれの軸に対し、17個のデータを保持している。ここで、図7(B)に示すように、上位4ビットデータの組合せ値で形成される単位立方体の中に、任意の入力R,G,Bの8ビットデータ(入力画素データ)の組合せ値の空間位置P22が包含されるので、上位の4ビットデータRH,GH,BHで示す空間位置P21を基点とした単位立方体(単位格子体)で入力8ビットデータを包含する単位立方体を特定することが可能となる。
【0096】
単位立方体を構成する各頂点は、空間位置P21を基準に生成可能である。すなわち、P21(RH,GH,BH)を基点として、P23(RH+1,GH,BH),P24(RH+1,GH+1,BH),P25(RH,GH+1,BH),P26(RH,GH,BH+1),P27(RH+1,GH,BH+1),P28(RH,GH+1,BH+1),P29(RH+1,GH+1,BH+1)が、単位立方体の頂点の座標となる。本実施形態の場合には、これらの頂点の座標は、元となる3次元LUTの格子点の座標に一致する。また、LUTへのアクセスアドレスの算出式は、以下の式(2)となる。
【数2】
Figure 2004208128
【0097】
演算処理部4は、この入力R,G,Bの8ビットデータの組合せ値に対応する出力値を、入力点近傍の4つの格子点データを使って、つまり、図7(B)に示す単位立方体の8頂点の座標のデータのうちの4つを基礎データとして使って、テトラ・ハイドラ法により求める。
【0098】
図8は、演算処理部4における4面体判定処理(図4のステップS104〜S106)を説明する図であって、入力データが包含される単位立方体と、この単位立方体を6つに分割して得られる4面体との関係を示す図である。先にも述べたように、第1実施形態の演算処理部4は、入力デジタル色分解信号R,G,Bの組合せ値に対応する出力信号YMCKのそれぞれを、データ格納部2に格納されている基礎データ(格子点データ)に基づいてテトラ・ハイドラ法による補間演算により求める。
【0099】
図7(B)に示した単位立方体は、さらに図8に示すように、同体積の6つの単位4面体に分割可能である。入力R,G,Bの空間位置P22がどの4面体に包含されるかは、下位のビットデータRL,GL,BLの大小関係から、図8下部に示す表2のように特定可能である。
【0100】
たとえば、下位ビットデータRL,GL,BLがRL≧GL≧BLの関係であるとき、入力R,G,Bは(RH,GH,BH),(RH+1,GH,BH),(RH+1,GH+1,BH),(RH+1,GH+1,BH+1)を頂点とした4面体1に属する。RL>BL>GLの関係であるとき、入力R,G,Bは(RH,GH,BH),(RH+1,GH,BH),(RH+1,GH,BH+1),(RH+1,GH+1,BH+1)を頂点とした4面体2に属する。BL≧RL>GLの関係であるときは、入力R,G,Bは(RH,GH,BH),(RH+1,GH,BH+1),(RH,GH,BH+1),(RH+1,GH+1,BH+1)を頂点とした4面体3に属する。
【0101】
同様に、BL>GL≧RLの関係であるときは、入力R,G,Bは(RH,GH,BH),(RH,GH,BH+1),(RH,GH+1,BH+1),(RH+1,GH+1,BH+1)を頂点とした4面体4に属する。GL≧BL>RLの関係であるときは、入力R,G,Bは(RH,GH,BH),(RH,GH+1,BH),(RH,GH+1,BH+1),(RH+1,GH+1,BH+1)を頂点とした4面体5に属する。GL>RL≧BLの関係であるときは、入力R,G,Bは(RH,GH,BH),(RH,GH+1,BH),(RH+1,GH+1,BH),(RH+1,GH+1,BH+1)を頂点とした4面体6に属する。
【0102】
そこで、先ず演算処理部4のアドレス生成部10は、画像データR,G,Bが入力されると、その入力データR,G,Bを上位ビットデータRH,GH,BH(本例では上位4ビット;纏めてDHとする)と下位ビットデータRL,GL,BL(本例では下位4ビット;纏めてDLとする)に分割し、その内の上位4ビットのデータDHに基づいて、図7(B)に示したように、3次元LUTにおける入力点が包含される単位立方体の入力位置P22を特定する。また、アドレス生成部10は、分割したデータの内の下位ビットデータDLを4面体判定部14と補間係数生成部20とに入力する。
【0103】
4面体判定部14は、アドレス生成部10で生成された入力RGB信号の各下位4ビット信号DLを受け取ると、その3つの信号の大小関係を比較演算することで、入力の各8ビット信号が単位立方体内のどの4面体に包含されるかを判定する。4面体判定部14は、判定結果をアドレス生成部10と補間係数生成部20に通知する。
【0104】
4面体判定部14における比較条件は、図8の4面体構成に則した場合、入力RGB信号の下位4ビット信号DLをそれぞれRL,GL,BLとすると、前述のように、RL≧GL≧BLのときは4面体1、RL>BL>GLのときは4面体2、BL≧RL>GLのときは4面体3、BL>GL≧RLのときは4面体4、GL≧BL>RLのときは4面体5、GL>RL≧BLのときは4面体6となる。
【0105】
図9は、基点P21と4面体判定部14による判定結果に基づく4頂点の座標位置との関係を示す図である。図中aが図7(B)に示した基点P21に対応する。
【0106】
入力データ位置を示す入力点P22は、入力データの上位ビットデータRH,GH,BHで規定される単位立方体に包含され、この単位立方体の位置が、図7(B)の基点P21(つまり図9のa)の座標値により特定される。
【0107】
アドレス生成部10は、4面体判定部14による4面体判定処理結果を受けて、入力点P22を包含する単位立方体の8頂点(図9のa〜h)のうち、4面体判定部14による判定結果に基づく4頂点アドレスを式(2)に従って算出し、4つのメモリ2T1,2T2,2T3,2T4に設定する。こうすることで、データ格納部2の各メモリ2T1,2T2,2T3,2T4からのデータ読出し時には、設定されたアドレスから、入力点P22近傍の4頂点の格子点データを示す32ビットの合成データがデータ分離部16に入力されるようになる。
【0108】
メモリ2T1〜2T4から、第1頂点〜第4頂点のデータが、ある単位時間内に同時に出力される。この出力されたデータは、Y,M,C,Kの4つの同一頂点(同一アドレス)のデータが一体になった合成データである。このため、データ分離部16の各出力色データ分離部16T1〜16T4は、予め定められているデータ合成手法を参照して、出力色Y,M,C,Kの単位データ、すなわち8ビット単位のデータに分離する。この8ビット単位に分離されたデータを補間対象データD1,D2,D3,D4という。個々の出力色ごとに纏まった形式で合成データが用意されているので、データ分離処理が簡易である。
【0109】
図9中の表3から分かるように、6つの4面体ごとに補間対象データD1,D2,D3,D4に割り当てられる格子点が異なる。データ分離部16は、分離した各出力色についての補間対象データD1,D2,D3,D4を、対応する補間処理部22Y〜22Kに入力する。
【0110】
図10は、演算処理部4における出力値算出処理(図4のステップS108)の補間係数算出処理(S102c)と補間演算処理(S102d)を説明する図である。ここで、図10(A)は補間演算にて必要となる補間係数の算出式を示す図表であり、図10(B)は補間演算処理の機能ブロック図である。
【0111】
補間係数算出処理(S102c)は、補間係数生成部20が実行する。補間係数生成部20は、アドレス生成部10から入力された入力RGB信号の下位4ビット信号DL(RL,GL,BL)と4面体判定部14にて定まった4面体判定結果とに基づいて補間演算係数W1,W2,W3,W4を算出する。図10(A)示す表4は、テトラ・ハイドラ法による補間演算で必要となる補間係数の算出式を示している。表4から分かるように、6つの4面体ごとに計算式が異なる。
【0112】
補間係数生成部20は、4面体判定処理(図4のステップS104〜S106)の結果を受けて、入力値が包含される4面体ごとに定められた計算式を表3に基づき切り替える。そして、4面体を構成する4格子点の下位ビットデータRL,GL,BLに基づいて補間係数W1,W2,W3,W4を算出し、補間係数W1,W2,W3,W4を補間処理部22Y〜22Kに共通に入力する。この補間係数算出処理は、従来のデータ変換装置における処理と同様である。
【0113】
補間演算処理(S102d)は、出力色データ決定部22が実行する。補間処理部22Y〜22Kのそれぞれは、補間係数生成部20から入力された補間係数W1,W2,W3,W4と対応するデータ分離部16T1〜16T4から入力された補間対象データD1,D2,D3,D4(4頂点の基礎データ)とに基づいて、最終出力値Doutを算出するというテトラ・ハイドラ法による補間演算処理を行なう。たとえば、式(3)に従って、最終出力値Doutを算出する。式(3)を機能的に示したものが図10(B)である。なお、式(3)では1次式補間で出力値を求めているが、これに限らず、2次式やその他の高次の補間演算式を利用してもよい。
【数3】
Figure 2004208128
【0114】
図11は、メモリデータ構造の第2例を説明する図である。第1例のデータ構造は、出力色構成要素のうちの一部もしくは全てのデータを纏めて(合成して)格納するものであった。これに対して、第2例のデータ構造は、複数の画像属性のうちの一部もしくは全てのデータを纏めて(合成して)格納する点に特徴を有する。以下、第1例のデータ構造と異なる点についてのみ説明する。
【0115】
第1例のデータ構造では、入力値に対応するLUT内の近傍データは各頂点において1つであり、補間演算されて出力されるデータは1つの入力に対して1対1に定まるものであった。しかし、プリンタなどのハードコピー出力装置はその出力文書中の構成要素(たとえば、テキスト、コンピュータ・グラフィックス画像、写真画像など)ごとに異なった色変換を行なうことが望まれる。つまり、各頂点のデータとして、それぞれ異なる画像属性に応じた複数のデータが必要となるということである。
【0116】
この場合、従来の構成では、1つの画像属性についての必要メモリ数(補間演算に必要となるLUTの格子点数(頂点数)×出力色構成要素数X)を、必要とする画像属性の数の分だけ用意しなければならない。たとえば、RGB入力色データをテトラ・ハイドラ補間演算によりYMCK出力色データに変換するためには、Yへの変換に4つの格子点抽出用として4個、同様にMへの変換用に4個、Cへの変換用に4個、Kへの変換用に4個の計16個が必要であるから、画像属性の数をGとすれば、16・G個のメモリが必要となりメモリ回路の規模が増大する。
【0117】
そこで、第2例のデータ構造においては、先ず従来例と同様に、1つの画像属性についての必要メモリ数である、補間演算に必要となるLUTの格子点数(頂点数)×出力色構成要素数Xと等しい数のメモリで構成する。RGB入力色データをテトラ・ハイドラ補間演算によりYMCK出力色データに変換する場合、4個×4色=16個メモリを使用する。
【0118】
一方、新たに構成するLUTの各格子点のアドレス位置には、4つの画像属性に対応した例を示す図11のように、出力色構成要素のそれぞれについて、テキスト、コンピュータ・グラフィックス画像、あるいは写真画像などの画像属性に応じた選択データ構成要素のうちの一部もしくは全てのデータを纏めて(合成して)格納する。図11(A)に示すように全てを纏めた方が、図11(B)に示すように一部だけを纏めるよりも、ビット幅が広がるのはいうまでもない。
【0119】
ここで、合成される任意の格子点のデータビット幅をLビット、1つの構成要素のデータビット幅をMビット(L,Mは正の整数)、元の(従前の)LUTの任意アドレスに格納されているデータサイズをYビット(Yは正の整数)、画像属性に応じた選択データ構成要素数をZ(Zは2以上の正の整数)、選択データ構成要素数(Z)を所定数nのグループに分割(Z=z1+z2+…+zn;zjは正の整数)することとすれば、各グループのLUT格子点のデータビット幅LやLj(単位はビット)は、以下の式(4)で示すことができる。
【数4】
Figure 2004208128
【0120】
Zj=Zであれば、全てを纏めることを意味し、1グループのみとなる。なお、従前の例から分かるように、通常は、1つの構成要素のデータビット幅MとLUTのデータサイズYとは等しい。
【0121】
また式(4)を満足する限り、図11(B)や図11(C)に示すように、複数のグループに分けて纏めることもできる。また、図11(C)に示すように、纏め方によっては、1構成要素のデータビット幅そのもので格納されるグループができる。
【0122】
図11(A)〜図11(C)に示すように、複数の画像属性を纏めるデータ合成の手法には種々の手法があるが、これらは、出力色構成要素のそれぞれについて、同じデータ合成の手法を採用することが好ましい。ただし、出力色構成要素に応じて、データ合成の手法を変えることを排除するものではない。たとえば、出力色Y,M,Cについては図11(A)の手法を採用しつつ、出力色Kについては図11(B)の手法を採用するなどである。
【0123】
なお、複数のグループに分けるということから、この場合、選択データ構成要素数Zが3以上であることが前提となる。纏めるからには、選択データ構成要素数Zが複数(2以上)でなければならず、Z=2の場合、これを纏めると1つのグループしかできなからである。
【0124】
この第2例は、第1例とは異なり、ある色軸(たとえばLab空間の各軸)のデータを同一軸上で異なるデータ値に変換するための1次元LUTを用いる処理、すなわち入力構成要素数が1のものにも適用可能である。画像属性に応じて1次元LUTの変換特性を切り替えるということが存在するからである。
【0125】
入力構成要素数が“2”、“3”、あるいは“4”である例については、第1例の場合と同様である。色空間の具体例についても第1例の場合と同様であるので、その説明は割愛する。
【0126】
図12は、図11に示した第2例の合成手法を適用したデータ構造を持つLUTを使用する場合における、第2実施形態のデータ変換装置1の基本的な構成例を示す図である。図3に示した第1実施形態の構成との違いは、データ格納部2におけるメモリデータ構造と、データ分離部16の機能である。以下、相違点について説明する。
【0127】
第2実施形態のデータ格納部2は、図11にて説明したように、複数の画像属性に対応した選択データ構成要素について所定の基準に従ってグループ化され、そのグループ内の同一アドレスの複数の基礎データが1つの合成データに纏められて格納されることで、ルックアップテーブルLUTを構成する。たとえば、全ての選択データ構成要素を纏めて1グループとする場合、補間演算に必要となるLUTの格子点数(頂点数)T×出力色構成要素数Xと等しい数T×Xの分だけの参照用メモリ2S1T1,2S1T2,…,2S1Tt,2S2T1,2S2T2,…,2S2Tt,2SxT1,2S1T2,…,2SxTtを使用する。たとえば、RGB入力色データをテトラ・ハイドラ補間演算によりYMCK出力色データに変換する場合、T=4,X=4であるから16個のメモリを使用する。各参照用メモリ2T1,2T2,…,2Ttには、画像属性Z1〜Zzについての格子点データが合成されて格納される。
【0128】
これらメモリ2S1T1,2S1T2,…,2SxTtは、1つの画素に対する色空間変換の処理時間として割り当てられている時間が非常に短時間である場合にも対応可能なように、それぞれ独立にアドレス設定可能かつ読出可能に、つまり独立に読出アクセス可能に構成されている。
【0129】
演算処理部4は、信号処理系統として、出力系の色成分S1,S2,…,Sxのそれぞれに対応するように、S1信号生成部4S1,S2信号生成部4S2,…,Sx信号生成部4Sxを含む。また、演算処理部4は、データ格納部2に格納されている合成データを、テキスト、コンピュータ・グラフィックス画像、あるいは写真画像などの画像属性(選択データ構成要素)ごとのデータに分離するデータ分離部16を備えている。ここで、第2実施形態のデータ分離部16は、補間演算に必要となるLUTの格子点T1,T2,…,Tt並びに出力色S1,S2,…,Sxに対応して、個別回路が内部に設けられる。
【0130】
演算処理部4は先ず、データ格納部2内のメモリ2S1T1,2S1T2,…,2S1Tt,2S2T1,2S2T2,…,2S2Tt,2SxT1,2S1T2,…,2SxTtの任意のアドレスから、各出力色構成要素の格子点データであって複数の画像属性について合成されたLビットもしくはLjビットの合成データを読み出す。データ分離部16は、予め定められているデータ合成手法を参照して、読み出された合成データの中から、テキスト、コンピュータ・グラフィックス画像、あるいは写真画像などの画像属性ごとの格子点データに分離し、処理対象の画像属性に応じた格子点データを選択する。個々の画像属性ごとに纏まった形式で合成データが用意されているので、データ分離・選択処理が簡易である。色成分S1,S2,…,Sxごとに設けられた信号生成部4S1〜4Sxは、分離・選択された格子点データを用いて補完演算を行なうことで、色成分S1,S2,…,Sxごとに出力データを生成する。
【0131】
なお、第2実施形態のデータ変換装置1における色データの変換に関する処理手順は、データ分離部16におけるデータ分離処理が画像属性に応じた分離・選択の処理となる点を除いて、第1実施形態の処理手順と同様である。処理手順を示したフローチャートは、図示を割愛する。
【0132】
第2実施形態の構成によれば、前述のように、データ格納部2内のメモリ2S1T1,2S1T2,…,2S1Tt,2S2T1,2S2T2,…,2S2Tt,2SxT1,2S1T2,…,2SxTtの各頂点のアドレス位置には、複数の画像属性の格子点データが1つの合成データとして纏められて保持される。つまり、出力文書中の構成要素(画像オブジェクト)ごとに異なった色変換を行なうために、1つの画像属性に応じただけのメモリの使用個数(補間演算に必要となるLUTの格子点数(頂点数)T×出力色構成要素数X)に維持しつつ、データビット幅を広くすることで全容量を維持する。このような構成によれば、出力文書中の画像オブジェクトごとに異なった色変換を行なうために全メモリ容量が増加する場合であっても、画像オブジェクトごとにメモリを個別に使用する場合よりも、特定用途向け半導体内に構成されるメモリとしてはその占有面積が格段に小さくなり、コスト面での経済的効果は絶大である。
【0133】
<<メモリデータの第3の構成例と対応回路>>
図13は、メモリデータ構造の第3例を説明する図である。この第3例は、第1例と第2例とを組み合わせたものである。
【0134】
この第3例のデータ構造は、先ず第1例と同様に、補間演算に必要となるデータをある単位時間内に同時に抽出できるように、補間演算に必要となるLUTの格子点数(頂点数)と等しい数(T個;テトラ・ハイドラ補間の場合は4個)のメモリで構成する。
【0135】
一方、新たに構成するLUTの各格子点のアドレス位置には、4つの出力色および3つの画像属性に対応した例を示す図13のように、出力色構成要素(本例ではY,M,C,K)のうちの一部もしくは全てのデータを纏めるとともに、複数の画像属性のうちの一部もしくは全てのデータを纏めて(合成して)格納する。図13(A)に示すように、複数の出力色構成要素並びに複数の画像属性の全てについて纏めた方が、図13(B)に示すように一部だけを纏めるよりも、ビット幅が広がるのはいうまでもない。
【0136】
ここで、合成される任意の格子点のデータビット幅をKビット、1つの構成要素のデータビット幅をMビット(L,Mは正の整数)、元の(従前の)LUTの任意アドレスに格納されているデータサイズをYビット(Yは正の整数)、出力色の構成要素数をX(Xは2以上の正の整数)、出力色構成要素(X)を所定数nのグループに分割(X=x1+x2+…+xn;xiは正の整数)し、また画像属性に応じた選択データ構成要素数をZ(Zは2以上の正の整数)、選択データ構成要素数(Z)を所定数nのグループに分割(Z=z1+z2+…+zn;zjは正の整数)することとすれば、各グループのLUT格子点のデータビット幅K,Ki,Kj,Kij(単位はビット)は、以下の式(5)で示すことができる。
【数5】
Figure 2004208128
【0137】
xi=XかつZj=Zであれば、全てを纏めることを意味し、1グループのみとなる。Xi=XかつZj≠Zのときは、出力色構成要素については1グループのみとなる。Xi≠ZかつZj=Zのときは、画像属性については1グループのみとなる。
【0138】
また第1例や第2例で述べたと同様に、式(5)を満足する限り、出力構成要素および画像属性(選択データ構成要素)の少なくとも一方について複数のグループに分けて纏めることもできる。なお、複数のグループに分けるということから、この場合、出力構成要素数Xおよび選択データ構成要素数Zの少なくとも一方が3以上であることが前提となる。纏めるからには、出力構成要素数Xあるいは選択データ構成要素数Zが複数(2以上)でなければならず、X=2あるいはZ=2の場合、これを纏めると1つのグループしかできなからである。
【0139】
なお、この第3例は、第2例とは異なり、入力構成要素数が“2”以上のものに限定される。第1例と組み合わせたものであるからである。入力構成要素数が“3”、あるいは“4”である例については、第1例の場合と同様である。色空間の具体例についても第1例の場合と同様であるので、その説明は割愛する。
【0140】
図14は、図13に示した第3例の合成手法を適用したデータ構造を持つLUTを使用する場合における、第3実施形態のデータ変換装置1の基本的な構成例を示す図である。図3に示した第1実施形態あるいは図12に示した第2実施形態の構成との違いは、データ格納部2におけるメモリデータ構造と、データ分離部16の機能である。以下、相違点について説明する。
【0141】
第3実施形態のデータ格納部2は、図13にて説明したように、複数の出力色構成要素並びに複数の画像属性に対応した選択データ構成要素について所定の基準に従ってグループ化され、そのグループ内の同一アドレスの複数の基礎データが1つの合成データに纏められて格納されることで、ルックアップテーブルLUTを構成する。たとえば、全ての出力色構成要素並びに全ての選択データ構成要素を纏めて1グループとする場合、第1例と同様に、補間演算に必要となる格子点データ数Tの分だけの参照用メモリ2T1,2T2,…,2Ttを使用する。各参照用メモリ2T1,2T2,…,2Ttには、画像属性Z1〜Zz並びに出力色S1〜Sxについての格子点データが合成されて格納される。
【0142】
これらメモリ2T1,2T2,…,2Ttは、1つの画素に対する色空間変換の処理時間として割り当てられている時間が非常に短時間である場合にも対応可能なように、それぞれ独立にアドレス設定可能かつ読出可能に、つまり独立に読出アクセス可能に構成されている。
【0143】
演算処理部4は、信号処理系統として、出力系の色成分S1,S2,…,Sxのそれぞれに対応するように、S1信号生成部4S1,S2信号生成部4S2,…,Sx信号生成部4Sxを含む。また、演算処理部4は、データ格納部2に格納されている合成データを、テキスト、コンピュータ・グラフィックス画像、あるいは写真画像などの画像属性(選択データ構成要素)ごとのデータに分離するとともに出力構成要素ごとのデータに分離するデータ分離部16を備えている。ここで、第3実施形態のデータ分離部16は、出力色S1,S2,…,Sxに対応して、個別回路が内部に設けられる。
【0144】
演算処理部4は先ず、データ格納部2内のメモリ2T1,2T2,…,2Ttの任意のアドレスから、各出力色構成要素の格子点データであって複数の出力色構成要素並びに複数の画像属性について合成されたKビットもしくはKiビットの合成データを読み出す。データ分離部16は、予め定められているデータ合成手法を参照して、読み出された合成データの中から、テキスト、コンピュータ・グラフィックス画像、あるいは写真画像などの画像属性ごとの格子点データに分離し処理対象の画像属性に応じた格子点データを選択するとともに出力色構成要素ごとの格子点データに分離する。個々の出力色および画像属性ごとに纏まった形式で合成データが用意されているので、データ分離・選択処理が簡易である。なお、処理対象の画像属性に応じた格子点データの選択処理(画像属性選択処理)と出力色構成要素ごとの格子点データへの分離処理(出力色分離処理)とは、その順序を問わない。
【0145】
色成分S1,S2,…,Sxごとに設けられた信号生成部4S1〜4Sxは、出力色構成要素ごとに分離された格子点データを用いて補完演算を行なうことで、色成分S1,S2,…,Sxごとに出力データを生成する。
【0146】
なお、第3実施形態のデータ変換装置1における色データの変換に関する処理手順は、データ分離部16におけるデータ分離処理として画像属性に応じた分離・選択の処理が追加される点を除いて、第1実施形態の処理手順と同様である。処理手順を示したフローチャートは、図示を割愛する。
【0147】
図15は、第3実施形態のデータ変換装置1において、RGB入力からYMCK出力への多次元LUTを用いた色変換を行なう場合のデータ構造の具体例を示す図である。2つの画像属性並びに4つの出力色YMCKの事例で示す。図18に示した従来例との比較のため、元の(従前の)LUTへの格納データ数を17データ×17データ×17データ(4913個の格子点アドレスが必要)と規定する。
【0148】
ここで、前述のように、演算処理部4は、テトラ・ハイドラ補間演算を行なうものとする。この場合、メモリ(データ格納部2)は、テトラ・ハイドラ補間演算に必要となる4つの頂点のデータをある単位時間内に同時に抽出できるように、4つの頂点用の4個のメモリ(RAM0〜RAM3)で構成される。
【0149】
各頂点のアドレス位置には、2つの画像属性並びにYMCK4色分の格子点データが1つの合成データとして纏められて保持される。ここでは、RGB入力データが8ビットであり、2つの画像属性並びYMCK4色分が纏められることで、1ワードとしては、8ビット×2×4色=64ビットの状態で格納される。つまり、出力文書中の構成要素(画像オブジェクト)ごとに異なった色変換を行なうために、補間演算に必要となるLUTの格子点数(頂点数)Tに維持しつつ、データビット幅を広くすることで全容量を維持する。このような構成によれば、画像属性並びに出力色ごとにメモリを個別に使用する場合よりも、特定用途向け半導体内に構成されるメモリとしてはその占有面積が格段に小さくなり、コスト面での経済的効果は絶大である。
【0150】
図16は、第3実施形態のデータ変換装置1の具体的な構成を示すブロック図である。この図16に示すデータ変換装置1の構成は、R,G,Bの3次元入力の場合における図5に示したメモリ構成を適用した具体的な回路構成である。ここでも、入力デジタル色分解信号の構成要素がR,G,Bであり、それぞれ8ビットのデータであるとする。
【0151】
第3実施形態のデータ変換装置1は、アドレス生成部10、4面体判定部14、補間係数生成部20、および出力色データ決定部22の機能が、図6に示した第1実施形態のデータ変換装置1と同様である。一方、データ分離部16の構成が第1実施形態のデータ変換装置1と異なる。
【0152】
具体的には、第3実施形態のデータ分離部16は、全画像属性並びに全出力色について纏められた合成データを各出力色成分に分離するものであり、先ず4つの頂点用のメモリ2T1〜2T4に対応するように、第1データ選択部17T1、第2データ選択部17T2、第3データ選択部17T3、および第4データ選択部17T4と、第1出力色データ分離部16T1、第2出力色データ分離部16T2、第3出力色データ分離部16T3、および第4出力色データ分離部16T4とを備える。
【0153】
データ分離部16の各データ選択部17T1〜17T4は、メモリ2T1〜2T4から出力された合成データの中から、テキスト、コンピュータ・グラフィックス画像、あるいは写真画像などの画像属性ごとの格子点データに分離し処理対象の画像属性に応じた格子点データを選択して、対応する出力色データ分離部16T1〜16T4に入力する。各出力色データ分離部16T1〜16T4は、出力色Y,M,C,Kの単位データ、すなわち8ビット単位の補間対象データD1,D2,D3,D4に分離する。データ分離部16は、分離した各出力色についての補間対象データD1,D2,D3,D4を、対応する補間処理部22Y〜22Kに入力する。
【0154】
なお、図14にて説明したように、画像属性選択処理と出力色分離処理とは順序を問わないので、各データ選択部17T1〜17T4と各出力色データ分離部16T1〜16T4との配列順を逆にしてもよい。
【0155】
第1実施形態のデータ変換装置1においては、入力値に対応するLUT内の近傍データは各頂点において1つであり、補間演算されて出力されるデータは1つの入力に対して1対1に定まるものであった。しかし、プリンタなどのハードコピー出力装置はその出力文書中の構成要素(たとえば、テキスト、コンピュータ・グラフィックス画像、写真画像など)ごとに異なった色変換を行なうことが望まれる。つまり、各頂点のデータとして複数のデータが必要となるということである。ある頂点のデータのうちどのデータを適用して後段の補間演算を行なうかは、たとえば入力の画像データに付加データ(タグ;tag)を付加することで実現する。
【0156】
アドレス生成部10によりアドレスされたデータ格納部2内の各メモリ2T1〜2T4は、Y成分の2つのデータ(Y0,Y1)、M成分の2つのデータ(M0,M1)、C成分の2つのデータ(C0,C1)、K成分の2つのデータ(K0,K1)の合計8つのデータを一塊りの合成データとして出力する。ここで、ビット幅は、元のLUT格子点データが8ビットなので、64ビットである。
【0157】
入力RGBのデータは、1画素ごとに、前述した文書中の構成要素を示すタグデータを持つ。ここでは1ビットのデータであるとする。タグデータは各データ選択部17T1〜17T4に入力される。タグデータが“0”である場合、各データ選択部17T1〜17T4は、64ビットの合成データの中から、第1の画像属性の格子点データY0,M0,C0,K0を纏めた上位32ビット部分のデータを分離・選択して、対応する出力色データ分離部16T1〜16T4に渡す。
【0158】
一方、タグデータが“1”である場合、各データ選択部17T1〜17T4は、64ビットの合成データの中から、第2の画像属性の格子点データY1,M1,C1,K1を纏めた下位位32ビット部分のデータを分離・選択して、対応する出力色データ分離部16T1〜16T4に渡す。各出力色データ分離部16T1〜16T4は、出力色Y,M,C,Kの補間対象データD1,D2,D3,D4に分離し、分離した各出力色についての補間対象データD1,D2,D3,D4を、対応する補間処理部22Y〜22Kに入力する。
【0159】
補間処理部22Y〜22Kには、補間係数生成部20から補間係数W1,W2,W3,W4が共通に入力される。補間係数W1,W2,W3,W4は入力点が包含される4面体ごとに定まるのでタグデータの状態には影響を受けない。補間処理部22Y〜22Kのそれぞれは、第1実施形態と同様に、補間係数W1,W2,W3,W4と対応する補間対象データD1,D2,D3,D4とを使用して、テトラ・ハイドラ法による補間演算処理を行なうことで、対応する出力色のデータを生成する。
【0160】
以上、本発明を実施形態を用いて説明したが、本発明の技術的範囲は上記実施形態に記載の範囲には限定されない。発明の要旨を逸脱しない範囲で上記実施形態に多様な変更または改良を加えることができ、そのような変更または改良を加えた形態も本発明の技術的範囲に含まれる。
【0161】
また、上記の実施形態は、クレーム(請求項)にかかる発明を限定するものではなく、また実施形態の中で説明されている特徴の組合せの全てが発明の解決手段に必須であるとは限らない。前述した実施形態には種々の段階の発明が含まれており、開示される複数の構成要件における適宜の組合せにより種々の発明を抽出できる。実施形態に示される全構成要件から幾つかの構成要件が削除されても、効果が得られる限りにおいて、この幾つかの構成要件が削除された構成が発明として抽出され得る。
【0162】
たとえば、上記各実施形態では、データ分離処理を簡易にするために、個々の出力色あるいは画像属性ごとに纏まった形式で合成データを用意しておいたが、元の格子点データを各出力色や各画像属性に関わらずバラバラにして合成してもかまわない。データ変換処理時には、その合成手法を参照して元の格子点データを抽出すればよい。
【0163】
また、上述した実施形態では、画像属性や出力色の観点から複数の格子点データを合成した合成データを使用することとしていたが、これらに限らず、他の観点から取り決めた基準に従って複数の格子点データを合成した合成データを使用しても構わない。
【0164】
なお、本願出願人は、特願2002−273976号にて、補間演算に必要となる格子点数(補間演算所用データ数)よりも少ない数のメモリ資源で色データ変換を実現する技術を提案している。元のルックアップテーブルの各格子点データを所定の基準に従って合成することで得られる合成データを新たなルックアップテーブルの格子点データとして格納する上述した本実施形態の手法を、この特願2002−273976号に記載の技術における格子点データに適用することもできる。
【0165】
特願2002−273976号に記載の技術は、多面体内での補間演算を行なう際に、補間演算所用データ数よりも少ない数のそれぞれ独立に制御可能なメモリ空間を使用し、そのメモリ空間のそれぞれについて、k色の入力色信号要素で規定されるk次元格子空間の各格子点に対応づけられた格子点データに対応する基礎データを、所定の手順に従って1つのアドレスに複数の基礎アドレスが割り当てられるように対応付けて(パッキングして)格納し、同一アドレスに割り当てられた複数の基礎データの中から、処理対象の画素データに対応する補間演算所用データ数分の基礎データを抽出して、多面体内での補間演算を行なうというものである。
【0166】
特願2002−273976号に記載の技術に、上述した実施形態を適用すれば、メモリサイズを低減することができることに加えて、補間演算所用データ数(4点補間の場合は4つ)未満という少ないメモリ資源で色データ変換を実現することができ、また消費電力や放射ノイズを低減することもできる。
【0167】
【発明の効果】
以上の説明から明らかなように、本発明においては、元のルックアップテーブルにおける各格子点データを所定の基準に基づいて複数分を合成して得られる合成データを新たなルックアップテーブルの格子点データとして格納しておく。合成データは、複数分を合成した分だけビット幅が広がる。
【0168】
データのビット幅を広げると、同メモリ容量であっても、データを格納するメモリのゲート規模(メモリサイズ)が小さくなる。よって、ビット幅の広い合成データとしてメモリ(データ格納部)に格納することで、チップサイズのより小さなメモリを使用することができ、メモリコストを低減することができる。
【図面の簡単な説明】
【図1】特定用途向け半導体内に構成される記憶手段の一例であるメモリの容量と、メモリが占める面積(以下ゲート(gate)規模という)の関係を説明する図である。
【図2】色データを変換する際に使用されるLUTに格納するデータの構造(メモリデータ構造)の第1例を説明する図である。
【図3】第1例の合成手法を適用した第1実施形態のデータ変換装置の基本的な構成例を示す図である。
【図4】第1実施形態のデータ変換装置における色データの変換に関する処理手順の概要を示したフローチャートである。
【図5】第1実施形態のデータ変換装置におけるデータ構造の具体例を示す図である。
【図6】第1実施形態のデータ変換装置の具体的な構成を示すブロック図である。
【図7】演算処理部における単位立方体判定処理(図4のステップS100〜S102)を説明する図である。
【図8】演算処理部における4面体判定処理(図4のステップS104〜S106)を説明する図である。
【図9】基点P21と4面体判定部による判定結果に基づく4頂点の座標位置との関係を示す図である。
【図10】演算処理部における出力値算出処理(図4のステップS108)の補間係数算出処理(S102c)と補間演算処理(S102d)を説明する図である。
【図11】メモリデータ構造の第2例を説明する図である。
【図12】第2例の合成手法を適用した第2実施形態のデータ変換装置の基本的な構成例を示す図である。
【図13】メモリデータ構造の第3例を説明する図である。
【図14】第3例の合成手法を適用した第3実施形態のデータ変換装置の基本的な構成例を示す図である。
【図15】第3実施形態のデータ変換装置におけるデータ構造の具体例を示す図である。
【図16】第3実施形態のデータ変換装置の具体的な構成を示すブロック図である。
【図17】テトラ・ハイドラ補間を利用して、RGB入力からYMCK出力への色変換を行なう従来のデータ変換装置の構成例を示す図である。
【図18】図17に示すデータ変換装置におけるデータ格納部に使用される各頂点データの参照用メモリのデータ構成例を示す図である。
【符号の説明】
1…データ変換装置、2…データ格納部、4…演算処理部、6…アドレスバス、8…データバス、10…アドレス生成部、14…4面体判定部、16…データ分離部、20…補間係数生成部、22…出力色データ決定部、22Y,22M,22C,22K…補間処理部[0001]
TECHNICAL FIELD OF THE INVENTION
The present invention relates to a data conversion method and a data conversion device for generating output color data from input color data. More specifically, for example, an image processing apparatus such as a printer apparatus, a facsimile apparatus, or a multifunction peripheral having the functions thereof, for example, a multidimensional input of R (red), G (green), and B (blue) The image data of a predetermined dimension is converted to another color data such as converting the image data into one color data of each of multi-dimensional output image data of Y (yellow), M (magenta), C (cyan), and K (black). It relates to technology for converting data.
[0002]
[Prior art]
[Patent Document 1]
JP-A-3-229573
[Patent Document 2]
JP-A-8-181874
[Patent Document 3]
JP-B-58-16180
[Patent Document 4]
JP-A-56-14237
[0003]
2. Description of the Related Art Image forming apparatuses having a printing function, such as printer apparatuses and copying apparatuses, are used in various fields. Today, color image forming apparatuses are being used as various expression means for users. For example, a color page printer using an electrophotographic process (xerography) has attracted attention in terms of high quality image quality or high speed printing.
[0004]
Also, today, with the spread of DTP (DeskTop Publishing / Prepress), opportunities for handling color images are increasing. In this case, devices for inputting color images are mainly scanners, video cameras, and the like. The output devices are various color printers such as an ink jet system, a dye sublimation system, and electrophotography. Above all, attention has been paid to a printing function using an electrophotographic process capable of high-speed output.
[0005]
Each of these color input / output devices has a unique color space, and when color image data obtained from a certain scanner is directly transferred to another color printer and an image is output, the color of the image is changed. It is almost impossible to match the color of the original image. In order to make the two colors match, a color space conversion process is performed such that a color space of a so-called input device (such as a scanner or a video camera) is converted into a color space of an output device (the various color printers described above). Is required.
[0006]
Such color space conversion processing means that image signals of colors (in general, three colors of R (red), B (blue), and G (green)) obtained by an input device are converted into three colors on an output device side. Alternatively, the image signal is nonlinearly converted into image signals of four colors.
[0007]
Nonlinear conversion (for example, gamma conversion or log conversion) of digital signals such as images is generally performed using an LUT (Look Up Table). The method using an LUT is a method in which an output value corresponding to an input signal is calculated in advance, the value is held as a table, and an output value corresponding to the input value is obtained without calculation. By applying this method, a complicated arithmetic circuit can be eliminated.
[0008]
If the non-linear conversion is performed by an arithmetic circuit, the arithmetic circuit becomes complicated and the circuit scale increases. For example, when performing an arbitrary non-linear conversion process on one 8-bit video data using an LUT, With a memory having a capacity of 256 bytes, the processing can be realized and a complicated arithmetic circuit can be eliminated. Incidentally, since the above-described conversion is for converting one image signal into another image signal having another property, the LUT used there is called a one-dimensional LUT.
[0009]
For example, a hard copy output device such as a printer handles a color image signal. These output devices form images on paper or the like using color materials of colors such as Y, M, C, and K. Therefore, it has a color space composed of Y, M, C, and K. On the other hand, there are a scanner, a digital still camera, and the like that are assumed as color image input devices, each of which has a unique color space. These have various color spaces, and typically have a color space composed of R, G, and B. Therefore, when a hard copy is output by an output device such as a printer, it is necessary to convert these color spaces.
[0010]
However, if the above-described process of converting the three-color image data of the input device into one of a plurality of colors of the output device is performed using only the three-dimensional LUT, a large-capacity memory is required. For example, if the R, G, and B signals are 8-bit signals, and the output Y, M, C, and K signals are also 8-bit signals, there are 16,777,216 combinations of input values (2 ^ 8 × 2 ^ 8 × 2 ^ 8 ways; “^” indicates a power), and is used to convert the input of R, G, B into one of Y, M, C, K. 16 megabytes (Mbytes) of memory is required. Therefore, conversion to four colors of Y, M, C, and K requires a memory as large as 64 megabytes, which is four times 16 megabytes.
[0011]
That is, an LUT corresponding to input 24 bits and output 8 bits is required. In this case, the memory capacity per output color is 16 M (mega) bytes, and the above-mentioned memory is required for the number of colors of the output device. Therefore, the actual memory capacity is as large as 48 to 64 Mbytes. Therefore, this memory capacity has a large impact on the system from the viewpoint of cost and is not realistic.
[0012]
In order to solve such a problem, when an LUT is used in the color conversion processing, it is general to reduce the memory capacity of the LUT to be used by using an interpolation operation together. For example, a data conversion mechanism based on a combination of an LUT and an interpolation process has been proposed. This conversion mechanism reduces the capacity of the LUT in the conventional LUT system by configuring an output value corresponding to only a plurality of upper bits of an input signal as an LUT. If an output value corresponding to the input signal does not exist, an interpolation process is performed using data near the spatial position indicated by the input value to calculate an output value.
[0013]
Such interpolation calculation processing can be classified into several methods depending on how many pieces of data (grid point data) read from the LUT are used and on what kind of relation grid point data is used. In general, in a method using a lot of grid point data, the interpolation accuracy is improved, but the scale of the interpolation circuit is increased. As an interpolation method having a relatively small circuit scale, for example, a four-point interpolation method (Tetra-Hydra interpolation) described in Patent Documents 2, 2, and 3 is known. Patent Document 2 describes that there is also a five-point interpolation method. Patent Document 3 describes, as a conventional example, that a cubic interpolation method (8-point interpolation method) is also available as an interpolation method having a large circuit scale but high interpolation accuracy.
[0014]
The four-point interpolation method and the eight-point interpolation method described above use an interpolation method with the smallest circuit scale, that is, the least number of grid points, when performing an interpolation operation using grid point data existing corresponding to each grid point of the cubic grid. This corresponds to a method of interpolating with data and an interpolation method with the largest circuit scale, that is, a method of interpolating with the most grid point data. In other words, the number of pieces of grid point data (the number of pieces of data for interpolation calculation) at the time of performing an interpolation calculation using each piece of grid point data of the three-dimensional cubic grid is determined by the polyhedron internally dividing the unit cube determined by the grid points of the original LUT When the target is a cubic lattice, the number is a minimum of four and a maximum of eight.
[0015]
For example, a grid consisting of data of three input elements is formed, and which grid body contains the corresponding data is determined from the upper bits of the three input elements, and the grid is further divided into six tetrahedrons. A method of determining which tetrahedron contains the corresponding data from the lower bits of the three elements and calculating based on the basic data obtained from the vertices of the tetrahedron and the multiplier determined for each tetrahedron is a tetrad. Hydra interpolation calculation (tetrahedral interpolation calculation). In this case, if the input data is determined, the required tetrahedron is uniquely determined, and the tetrahedron may be determined only by a total of four vertices obtained from two line segments that do not intersect each other.
[0016]
On the other hand, in the interpolation processing, the interpolation accuracy of the output value differs depending on the number of neighboring data to be calculated. If more data is subjected to the interpolation calculation, the interpolation accuracy is improved. However, when a large amount of data is used, the scale of the interpolation circuit becomes large, and the effect of circuit reduction is reduced.
[0017]
As one method for solving this problem, Patent Literatures 1 and 2 propose methods for efficiently defining the amount of data held in an LUT and the number of data used for interpolation. For example, according to the method described in Patent Document 2, first, a lattice (unit cubic) composed of input three-element data is formed, and based on the upper bit data RH, GH, and BH of the three input elements, any lattice is determined. It is determined whether the corresponding data is included, and the data is further divided into six tetrahedrons. Based on the lower bit data RL, GL, and BL of the three input elements, which tetrahedron includes the corresponding data? Is determined, and an output value corresponding to the input value is calculated by a tetra-hydra method based on basic data obtained from the tetrahedron vertices and a multiplier (interpolation coefficient) determined for each tetrahedron. is there.
[0018]
In the method described in Patent Document 2, if input data is determined, a required tetrahedron is uniquely determined. That is, four neighboring grid points on the three-dimensional LUT of the inputs R, G, and B are specified. In order to determine the tetrahedron, it suffices to have a total of four vertices obtained from two line segments that do not intersect each other. These line segments can be represented by connecting successive vertices of one of the three input elements.
[0019]
Although the detailed description is omitted, when the method described in Patent Literature 2 is used, the number of data stored in the LUT is 17 data × when the input R, G, and B are converted into any one color (output color). When 17 data × 17 data (4913 grid points) is specified, the capacity of the LUT can be realized with 49 kilobytes, and a large capacity reduction can be achieved as compared with 16 megabytes in a system not using interpolation processing.
[0020]
[Problems to be solved by the invention]
However, in the method described in Patent Literature 2 or the like, when the time allocated as the processing time of the color space conversion for one pixel is extremely short, a plurality of data are read from the memory used as the LUT a plurality of times. Since it is impossible to do so, the same amount of memory must be used for the number of data for the interpolation operation site.
[0021]
In the case of the tetra-hydra interpolation, assuming the conversion from RGB to YMCK, four are used for extracting four grid points for conversion to Y, four for conversion to M, and four for conversion to C. And a total of 16 memories of the same capacity are required for conversion into K.
[0022]
FIG. 17 is a diagram illustrating a configuration example of a conventional data conversion device that performs color conversion from RGB input to YMCK output using tetra-hydra interpolation. FIG. 18 is a diagram illustrating an example of a data configuration of a reference memory of each vertex data used in the data storage unit 2 in the data conversion device 1 illustrated in FIG. As the memory, a RAM (Random Access Memory) configured in an application-specific semiconductor is used.
[0023]
In the device configuration shown in FIG. 17, four are used to extract four grid points for conversion to Y, four for conversion to M, four for conversion to C, and four for conversion to K. Memory is required. As shown in FIG. 18, each address of the reference memory (RAM) for converting the RGB input color data into the YMCK output color data includes the corresponding point data of the color conversion and the data bit width of the input three elements. It is stored by itself (8 bits in this example).
[0024]
Thus, in the conventional method, in order to obtain the data of the four vertices required for the tetra-hydra interpolation operation in a certain unit time, four memories having the same capacity and the same contents are prepared for one component of the output. There must be. In the case of this example in which the output is composed of four components Y, M, C and K, it is necessary to prepare a total of 16 memories.
[0025]
When the number of data to be stored in the LUT is defined as 17 data × 17 data × 17 data as described above, it is necessary to prepare 786 kilobytes as the total memory capacity instead of 49 kilobytes described above. Assuming importance on interpolation accuracy and assuming 8-point interpolation, 32 memories are required, and the total memory capacity is 1,568 kilobytes.
[0026]
Further, it is desired that a hard copy output device such as a printer performs a different color conversion for each component (for example, an image object such as a text, a computer graphics image, and a photographic image) in the output document. In this case, since a plurality of data is required as the data of each vertex, the number of memories used further increases, and naturally, the total memory capacity further increases.
[0027]
As described above, if the total memory capacity increases, the occupied area of the memory configured in the semiconductor increases, and a large chip size is required. As a result, the cost is increased.
[0028]
The present invention has been made in view of the above circumstances, and it is an object of the present invention to provide a data conversion method and apparatus capable of reducing an area occupied by a memory when performing color conversion using an interpolation operation. .
[0029]
[Means for Solving the Problems]
Although details will be described in the embodiments, the present invention has been made based on technical knowledge that, even when a memory having the same capacity is configured, the gate scale (memory size) is smaller when the bit width is increased. It is a thing.
[0030]
That is, the data conversion method and apparatus according to the present invention store the combined data obtained by combining a plurality of pieces of each grid point data in the original look-up table based on a predetermined reference as the grid point data of the new look-up table. Keep it. Then, at the time of data conversion processing, normal data conversion processing is performed after reading out the synthesized data and separating the data into original individual grid point data.
[0031]
For example, the first data conversion method according to the present invention uses the input color data for each pixel data of the input color data based on the grid point data of the lookup table used when converting the input color data into the output color data. A data conversion method for determining output color pixel data corresponding to data. First, each grid point data in an original lookup table for a plurality of output colors is added to each grid point of a lookup table in a predetermined manner. Synthesized data obtained by synthesizing a predetermined number of output colors based on the reference is stored.
[0032]
At the time of the data conversion processing, the composite data corresponding to the pixel data of the input color data is read from the data storage unit in which the composite data is stored, and the read composite data is separated into each grid point data for the output color. Then, for each output color, pixel data for the output color is determined using the separated grid point data for the output color.
[0033]
In the second data conversion method according to the present invention, first, each grid point in the original look-up table for a plurality of image attributes is stored in each grid point of the look-up table by a predetermined number of images based on a predetermined standard. The combined data obtained by combining the attributes is stored.
[0034]
At the time of the data conversion processing, the composite data corresponding to the pixel data of the input color data is read from the data storage unit in which the composite data is stored, and the read composite data is separated into each grid point data for the image attribute. Then, for each output color, pixel data for the output color is determined using the separated grid point data for the output color.
[0035]
A third data conversion method according to the present invention is a combination of the first and second data conversion methods. First, a plurality of image attributes and a plurality of output colors are assigned to each grid point of the lookup table. The composite data obtained by combining each grid point data in the original look-up table with a predetermined number of image attributes and a predetermined number of output colors based on a predetermined reference is stored.
[0036]
At the time of the data conversion process, the composite data corresponding to the pixel data of the input color data is read from the data storage unit in which the composite data is stored, and the read composite data is separated into each grid point data for the image attribute and the output color. . Then, for each output color, pixel data for the output color is determined using the separated grid point data for the output color.
[0037]
A first data conversion device according to the present invention is a device that implements the first data conversion method according to the present invention. First, each grid point data in an original lookup table for a plurality of output colors is It is provided with a data storage unit in which synthesized data obtained by synthesizing a predetermined number of output colors based on a predetermined standard is stored at each grid point.
[0038]
Further, the first data converter includes a combined data reading unit that reads combined data corresponding to the pixel data of the input color data from a data storage unit that stores the combined data, and a combined data reading unit that reads the combined data read by the combined data reading unit. A data separation unit that separates each output color into grid point data, and output color data that determines pixel data for the output color using the output color grid point data separated by the data separation unit for each output color And a decision unit.
[0039]
A second data conversion device according to the present invention is a device that performs the above-described second data conversion method according to the present invention. First, each grid point data in the original lookup table for a plurality of image attributes is It is provided with a data storage unit in which synthesized data obtained by synthesizing a predetermined number of image attributes based on a predetermined standard is stored at each grid point.
[0040]
The second data converter includes a combined data reading unit that reads combined data corresponding to the pixel data of the input color data from a data storage unit that stores the combined data, and a combined data reading unit that reads the combined data read by the combined data reading unit. A data separating unit that separates each image data into grid point data, and output color data that determines output color pixel data using the output color grid point data separated by the data separating unit for each output color And a decision unit.
[0041]
A third data conversion device according to the present invention is a device that implements the third data conversion method according to the present invention, and first, each of a plurality of image attributes and a plurality of output colors in an original lookup table for a plurality of output colors. A data storage unit is provided which stores, at each grid point, synthesized data obtained by synthesizing grid point data for a predetermined number of image attributes and a predetermined number of output colors based on a predetermined standard.
[0042]
Further, the third data converter includes a combined data reading unit that reads combined data corresponding to the pixel data of the input color data from a data storage unit that stores the combined data, and a combined data reading unit that reads the combined data read by the combined data reading unit. A data separation unit that separates the image attributes and the output color into respective grid point data, and pixel data for the output color are determined using the output color grid point data separated by the data separation unit for each output color. And an output color data determination unit.
[0043]
The dependent claims define further advantageous specific examples of the data conversion method and device according to the present invention. It should be noted that the combined data reading unit and the output color data determining unit can be realized not by hardware but by software, which is suitable for realizing the data conversion device according to the present invention by software using an electronic computer. A program and a computer-readable storage medium storing the program can also be extracted as the invention of the present application. The program may be provided by being stored in a computer-readable storage medium, or may be distributed via a wired or wireless communication unit.
[0044]
In addition, synthesized data obtained by synthesizing a plurality of pieces of each grid point data in the original lookup table based on a predetermined criterion is distributed via a wired or wireless communication means, and is stored in a data storage unit. It may be stored. Alternatively, the composite data may be provided stored in a computer-readable storage medium. In this case, before using the data conversion device, the synthesized data is read from the storage medium and stored in the data storage unit. Such a computer-readable storage medium storing the above-described composite data can also be extracted as the invention of the present application.
[0045]
[Action]
In the above configuration of the present invention, first, as a data storage unit for storing grid point data required for data conversion processing, first, a plurality of grid point data in the original look-up table are divided based on a predetermined reference. Prepare data in which the synthesized data obtained by synthesis is stored at each grid point. Then, the combined data is read from the data storage unit and separated into original individual grid point data, and then a normal data conversion process is performed.
[0046]
BEST MODE FOR CARRYING OUT THE INVENTION
Hereinafter, embodiments of the present invention will be described in detail with reference to the drawings.
[0047]
<< Basic structure of memory data >>
FIG. 1 is a diagram for explaining the relationship between the capacity of a memory, which is an example of a storage means included in an application-specific semiconductor, and the area occupied by the memory (hereinafter referred to as a gate scale). Here, FIG. 1A is a chart showing an example of a gate scale of a memory when a memory having the same capacity is configured under a plurality of conditions, and FIG. 1B shows the data of FIG. Is a graph. The data shown in FIG. 1A is quoted from “Toshiba Corporation TC260E ASIC Series Data Book”.
[0048]
FIG. 1A illustrates a case where a 1,048,576-bit memory is constructed under five conditions. It shows how the gate scale changes when configuring a memory of the same capacity while changing the bit width while using a common number of words. In FIG. 1B, the polygonal line indicates the total capacity in each configuration ((1) to (5)), and all have the same capacity (1,048,576 bits). On the other hand, the bar graph shows the gate scale in each configuration. Each configuration has the same number of words, but different bit width conditions.
[0049]
As can be seen from FIG. 1B, even when a memory having the same capacity (total capacity) is configured, the gate scale becomes smaller when the bit width is increased, as shown by configuration (5). When the gate size is reduced, the area occupied by the gate is reduced, resulting in a memory having a small chip size. As a result, even when a memory having the same capacity is used, by increasing the data bit width, a low-cost memory having a small chip size can be used.
[0050]
From this, in the data conversion device, if the data configuration is such that the bit width can be increased, a memory having a small chip size can be used as the memory configuring the LUT, thereby reducing costs. It is speculated that it can be done.
[0051]
<< First configuration example of memory data and corresponding circuit >>
FIG. 2 is a diagram illustrating a first example of a data structure (memory data structure) stored in an LUT used when converting color data. Based on the above consideration, when configuring memories of the same capacity, the gate size (memory size) is reduced by increasing the bit width. Here, as a technique for increasing the bit width, the first example focused on the following points.
[0052]
First, reference is made to the conventional data structure shown in FIG. As shown in FIG. 18, at each address of the reference memory (RAM), the corresponding point data of the color conversion is stored in the data bit width itself of the input three elements. Specifically, it is stored in 8 bits which is data of one component. On the other hand, in data conversion processing for performing color conversion from RGB input to YMCK output using tetra-hydra interpolation, reference data of Y, M, C, and K at the same address is used.
[0053]
Therefore, in the data structure of the first example, first, the number (the number of vertices) equal to the number of lattice points (vertexes) of the LUT required for the interpolation operation so that data required for the interpolation operation can be simultaneously extracted within a certain unit time. T (4 in the case of tetra-hydra interpolation). On the other hand, as shown in FIG. 2, some or all data of the output color components (Y, M, C, K in this example) are stored in the address positions of the respective lattice points of the newly configured LUT. They are stored together as composite data. Needless to say, the bit width is wider when all the pieces are combined as shown in FIG. 2A than when only a part is combined as shown in FIG. 2B.
[0054]
Here, the data bit width of an arbitrary lattice point to be synthesized is N bits, the data bit width of one component is M bits (M and N are positive integers, N> M), and the original (previous) The data size stored at an arbitrary address of the LUT is Y bits (Y is a positive integer), the number of output color components is X (X is a positive integer of 2 or more), and the output color component (X) is predetermined. Assuming that the data is divided into groups of number n (X = x1 + x2 +... + Xn; xi is a positive integer), the bit width N or Ni (unit is bits) of the composite data of the LUT lattice points of each group is expressed by the following equation. It can be shown in (1). If xi = X, it means that all are put together, and there is only one group. As can be seen from the previous example, usually, the data bit width M of one component is equal to the data size Y of the LUT.
(Equation 1)
Figure 2004208128
[0055]
Also, as long as the expression (1) is satisfied, the data can be divided into a plurality of groups as shown in FIGS. 2B and 2C. In addition, as shown in FIG. 2C, depending on the way of grouping, a group can be stored with the data bit width of one component itself. In this case, since it is divided into a plurality of groups, in this case, it is assumed that the number X of output components is 3 or more. This is because the number X of output components must be a plurality (2 or more) in order to combine them, and when x = 2, only one group can be created by combining them.
[0056]
Note that the color data conversion processing is not limited to color conversion from a RGB input to a YMCK output using a multidimensional LUT. For example, a process using a one-dimensional LUT for converting data on a certain color axis (for example, each axis in a Lab space) into different data values on the same axis may be used. However, a one-dimensional LUT cannot convert color data of one input component into color data of a plurality of output components, and there is no concept of “combining a plurality of output colors”. The application range of the first example is limited to those in which the number of input components is “2” or more.
[0057]
Further, as an example in which the number of input components is “2”, for example, for an input component having three or more inputs, color conversion using a two-dimensional LUT focusing only on two axes is conceivable. More specifically, in a case where color data represented in the Lab color space is input, attention is paid only to a and b representing hue and saturation, and output values a and b are output using a two-dimensional LUT in ab space. Is conceivable. This means that the input value is maintained for the brightness, but the data value is changed (color conversion) for the hue and saturation. When the above-described combining method of the first example is applied to this case, the output values a and b may be combined.
[0058]
As an example in which the number of input components is "3", color space data such as RGB, sRGB, Lab, YCbCr, YMC, and XYZ can be considered. Further, as an example in which the number of input components is “4”, color space data such as YMCK, K (black amount) + Lab, RGB + L (lightness) can be considered. Further, the input color space and the output color space are not limited to the same one as in the color conversion from the RGB input to the YMCK output, but may be different.
[0059]
As described above, the data bit width is increased by combining the data of the same address of the original LUT grid point data for a plurality of output color components by applying the data synthesis method of the first example. If the LUT data is stored in the memory in a state of large size, the gate scale (memory size) can be reduced, and the memory cost can be reduced. This makes it possible to provide an efficient LUT configuration method and an access method with low redundancy.
[0060]
FIG. 3 is a diagram illustrating a basic configuration example of the data conversion device 1 according to the first embodiment when an LUT having a data structure to which the synthesis method of the first example illustrated in FIG. 2 is applied is used.
[0061]
The data conversion apparatus 1 of the first embodiment receives an input digital color separation signal of Y1 bits of each of the input color components I1, I2,..., Iw from an external device. The data conversion device 1 performs color conversion of input data into Y2-bit data of output color components S1, S2,..., Sx. For example, when 8-bit data of each of three colors R, G, and B is input, color conversion is performed to 8-bit data of each of four colors of Y, M, C, and K. Note that the format of the input data and output data is merely an example, and other color series may be used, and the number of bits Y1 and Y2 are not limited to “8”.
[0062]
As shown in the drawing, a data conversion device 1 according to the first embodiment includes a data storage unit 2 that stores basic data used when obtaining output data after color conversion corresponding to input data by interpolation calculation, An arithmetic processing unit for obtaining output pixel data corresponding to input pixel data by interpolation for each output color while exchanging data with the unit;
[0063]
The data storage unit 2 stores the basic data corresponding to the grid point data associated with each grid point in the w-dimensional grid space (w-dimensional LUT) defined by the input color signal elements as described with reference to FIG. , A plurality of output color components are grouped according to a predetermined standard, and a plurality of basic data at the same address in the group are collected and stored as one composite data, thereby forming a lookup table LUT. It has become. For example, when all the output colors are grouped into one group, reference memories 2T1, 2T2,..., 2Tt are used for the number T of grid point data required for the interpolation operation. Each of the reference memories 2T1, 2T2,..., 2Tt stores the combined grid point data for the output colors S1 to Sx.
[0064]
Each of the memories 2T1, 2T2,..., 2Tt is independently addressable so as to be able to cope with the case where the time allocated as the processing time of the color space conversion for one pixel is very short. It is configured to be readable, that is, independently readable.
[0065]
The arithmetic processing unit 4 includes, as signal processing systems, S1 signal generation units 4S1, S2 signal generation units 4S2,..., Sx signal generation units 4Sx so as to correspond to the color components S1, S2,. including. Further, the arithmetic processing unit 4 includes a data separation unit 16 that separates the combined data stored in the data storage unit 2 into data for each output component. Here, in the data separation unit 16 of the first embodiment, an individual circuit is provided inside corresponding to the output colors S1, S2,..., Sx. The arithmetic processing unit 4 may be composed of, for example, a CPU (Central Processing Unit) or a DSP (Digital Signal Processor).
[0066]
An address bus 6 for sending a control signal such as an address signal so that the arithmetic processing unit 4 reads basic data from the data storage unit 2 and a data read from the data storage unit 2 between the data storage unit 2 and the arithmetic processing unit 4. The data bus 8 sends the basic data to the arithmetic processing unit 4.
[0067]
The arithmetic processing unit 4 is provided with an address generation unit that generates an access address to a look-up table in which data used for an interpolation operation for generating an output value is stored. The address bus 6 transmits an address signal, a clock, a chip select signal, or the like for setting a basic data read position in each memory space (memory 2T1, 2T2,..., 2Tt) in the data storage unit 2. Be
The data bus 8 is used to input input data before data conversion from an external device (not shown) or output output data after conversion to the same or another external device.
[0068]
In such a configuration, the arithmetic processing unit 4 first obtains a plurality of output color components from the grid point data of each output color component from an arbitrary address in the memories 2T1, 2T2,. The N-bit or Ni-bit synthesized data synthesized for the element is read. The data separation unit 16 separates the read composite data into grid point data for each output color component. The signal generators 4S1 to 4Sx provided for the respective color components S1, S2,..., Sx perform complementary operations using the separated grid point data, thereby outputting the respective color components S1, S2,. Generate data.
[0069]
FIG. 4 is a flowchart illustrating an outline of a processing procedure regarding color data conversion in the data conversion device 1 according to the first embodiment. In the following description, it is assumed that the input data is 8 bits R, G, B and the output data is 8 bits Y, M, C, K, and that the arithmetic processing unit 4 performs a tetra-hydra interpolation operation. In this case, as shown in FIG. 3, the arithmetic processing unit 4 uses a Y signal generation unit 4Y, an M signal generation unit 4M, a C signal generation unit 4C, and a K signal generation unit 4K. The memory 2 uses four memories 2T1, 2T2, 2T3, and 2T4.
[0070]
The arithmetic processing unit 4 of the first embodiment uses the grid point data of the color conversion LUT (look-up table) stored in the data storage unit 2 to output each signal (R, G) input from an external device. , B) are converted into color data of output colors (Y, M, C, K) using an interpolation process using a tetra-hydra method.
[0071]
Therefore, when the image data R, G, and B are input, the arithmetic processing unit 4 first converts the input 8-bit R, G, and B digital color separation signals into upper α bits (most significant bits) for each pixel. It is divided into α consecutive bits from the bit side and lower β bits (β consecutive from the least significant bit side) (S100).
[0072]
Next, the arithmetic processing unit 4 configures a three-dimensional lattice (three-dimensional LUT) composed of R, G, and B data of the three input elements based on the upper α-bit data RH, GH, and BH of the three input elements. Then, it is determined which of the unit cubes (unit cubes in this example) defined by each grid point contains the corresponding data (S102). The processing of steps S100 to S102 is called a unit cube determination processing.
[0073]
Next, the arithmetic processing unit 4 further divides the corresponding unit cube into six tetrahedrons (S104), and based on the data RL, GL, BL of the lower β bits of the input three elements, It is determined whether the corresponding data is included (S106). The processing of steps S104 to S106 is referred to as tetrahedron determination processing.
[0074]
Next, the arithmetic processing unit 4 obtains an output value (pixel data to be output) corresponding to the input value (input pixel data) by the tetra-hydra method of interpolation calculation in the corresponding tetrahedron (S108). ).
[0075]
More specifically, as shown on the right side of the figure, the arithmetic processing unit 4 first specifies four grid points required for the interpolation operation in the data group of the same address based on the coordinate values of the base point including the input point. Then, a four-grid point specifying process (also referred to as an access address specifying process) is performed (S108a). That is, the arithmetic processing unit 4 assigns an access address to the LUT in which the data used to generate the output value by the interpolation arithmetic processing by the tetra-hydra method is stored in the four memories 2T1, 2T2, 2T3, and 2T4. Identify.
[0076]
At an arbitrary address of the LUT, data for the number of output components is synthesized and stored in n bits (32 bits in this example). Therefore, the data separating unit 16 of the arithmetic processing unit 4 extracts grid point data from the specific address corresponding to the input value specified in the access address specifying process, and outputs the extracted 32-bit grid point data. It is separated into m-bit (8-bit in this example) data which is unit data of a color component (S108b).
[0077]
In parallel with the four-lattice-point specifying process (S108a), the arithmetic processing unit 4 assigns a weighting factor to the four basic data (in this example, the original grid point data itself) obtained from the tetrahedral vertices for the corresponding tetrahedron. An interpolation coefficient calculation process of calculating an interpolation coefficient that is a multiplication coefficient) is performed (S108c). Then, the arithmetic processing unit 4 calculates the corresponding tetrahedron based on the basic data (grid point data) obtained by the four grid point specifying process (S108b) and the interpolation coefficient obtained by the interpolation coefficient calculation process (S108c). Then, an interpolation operation for obtaining an output value Dout corresponding to the input value is performed (S108d).
[0078]
The arithmetic processing unit 4 performs the above-described series of processing for each of the output colors Y, M, C, and K (S112), and performs the processing for all the pixels (S110) to obtain the color of the input RGB color space. The data is converted to data in the YMCK color space.
[0079]
FIG. 5 is a diagram illustrating a specific example of a data structure when performing color conversion from RGB input to YMCK output using a multidimensional LUT in the data conversion device 1 of the first embodiment. For comparison with the conventional example shown in FIG. 18, the number of data stored in the original (conventional) LUT is defined as 17 data × 17 data × 17 data (4913 grid point addresses are required).
[0080]
Here, as described above, the arithmetic processing unit 4 performs the tetra-hydra interpolation operation. In this case, the memory (data storage unit 2) includes four memories (RAM0 to RAM4) for four vertices so that data of four vertices necessary for the tetra-hydra interpolation operation can be simultaneously extracted within a certain unit time. RAM 3).
[0081]
At the address position of each vertex, grid point data for four colors of YMCK are collected and held as one combined data. Here, the RGB input data is 8 bits, and four colors of YMCK are combined, so that one word is stored in a state of 8 bits × 4 colors = 32 bits. According to such a configuration, the occupied area of the memory configured in the application-specific semiconductor is significantly smaller than the case where the memory is individually used for each output color, and the cost is economical. Is overwhelming.
[0082]
FIG. 6 is a block diagram illustrating a specific configuration of the data conversion device 1 according to the first embodiment. The configuration of the data converter 1 shown in FIG. 6 is a specific circuit configuration to which the memory configuration shown in FIG. 5 is applied in the case of three-dimensional input of R, G, and B. Here, it is also assumed that the components of the input digital color separation signal are R, G, and B, each of which is 8-bit data.
[0083]
As illustrated, the arithmetic processing unit 4 includes an address generation unit 10 that executes a unit cube determination process (Steps S100 to S102 in FIG. 4) and an access address identification process (S108a), and a tetrahedron determination process (S104 to S108). The tetrahedron determination unit 14 that performs S106), the data separation unit 16 that performs data separation processing (S108b), the interpolation coefficient generation unit 20 that performs interpolation coefficient calculation processing (S108c), and the four neighboring data An output color data determination unit 22 for executing a tetra-hydra interpolation calculation process (S108d) to be used.
[0084]
The data storage unit 2 refers to a first vertex data reference memory 2T1 and a second vertex data that constitute an LUT for referencing the data of the first vertex so as to correspond to the four vertices in the tetra-hydra interpolation operation. A second vertex data reference memory 2T2 which forms an LUT for performing the operation, a third vertex data reference memory 2T3 which forms an LUT for referring to the third vertex data, and a fourth vertex data which is referred to. There is provided a fourth vertex data reference memory 2T4 constituting the LUT.
[0085]
The memories 2T1 to 2T4 store LUTs having the same contents and the same capacity. Conventionally, when performing tetra-hydra interpolation calculation, as shown in FIG. 18, four memories having the same capacity and the same contents are prepared, and a total of 16 memories are prepared in accordance with four outputs of Y, M, C, and K. Had to be prepared. Here, although the address to each vertex is different, each color requires data of the same vertex, and the address value is the same even if the actual memory to be accessed is different.
[0086]
Therefore, as shown in FIGS. 3A and 5, by combining the four output value components of one address, it is possible to simplify the memory. In this case, the output value is 8-bit data, and the output color components are four colors of Y, M, C, and K, so that one address stores 32-bit composite data.
[0087]
For example, in the first vertex data reference memory 2T1, composite data "Y1 + M1 + C1 + K1" in which data on the first vertices of the four output colors Y, M, C, and K are combined (the reference numeral "1" indicates the vertex number). Is stored. Similarly, the composite data “Y2 + M2 + C2 + K2” is stored in the second vertex data reference memory 2T2, the composite data “Y3 + M3 + C3 + K3” is stored in the third vertex data reference memory 2T3, and the composite data “T3” is stored in the fourth vertex data reference memory 2T4. Y4 + M4 + C4 + K4 ″ are stored.
[0088]
With such a memory configuration, the advantage of minimizing the gate scale can be enjoyed. As described above, when configuring memories of the same capacity, it is possible to reduce the gate size by increasing the bit width and decreasing the number of memories.
[0089]
The data separation unit 16 of the first embodiment separates combined data for all output colors into output color components, and outputs the first output data so as to correspond to the four vertex memories 2T1 to 2T4. A color data separation unit 16T1, a second output color data separation unit 16T2, a third output color data separation unit 16T3, and a fourth output color data separation unit 16T4 are provided.
[0090]
The output color data determination unit 22 includes a Y interpolation processing unit 22Y, an M interpolation processing unit 22M, a C interpolation processing unit 22C, and a K interpolation processing unit 22K corresponding to the four output colors Y, M, C, and K. Have.
[0091]
The address generating unit 10 is an example of a combined data reading unit, and has both functions of a unit cell determining unit and an address setting unit. Further, the interpolation coefficient generation unit 20 and the output color data determination unit 22 constitute an interpolation calculation processing unit.
[0092]
FIG. 7 is a diagram for explaining the unit cube determination processing (steps S100 to S102 in FIG. 2) in the arithmetic processing unit 4, and includes an original three-dimensional LUT constituting grid point data, which is a representative value of an output value, and an input. FIG. 3 is a diagram illustrating a relationship with data. Here, FIG. 7A is a conceptual diagram of the LUT in a three-dimensional space, and FIG. 7B is a three-dimensional LUT in which each 8-bit RGB input signal corresponds to the upper 4-bit signal of each signal. The above positional relationship is shown.
[0093]
As shown in FIG. 7A, the range of possible values for each of the R, G, and B axes is divided into a plurality. Here, an example in which each axis is divided into 16 is shown. An LUT is configured by using a grid point obtained by such division as an address and associating the converted value (representative value) at that grid point. Therefore, in this example, it is possible to create a three-dimensional LUT in which, for 17 × 17 × 17 = 4913 grid points, corresponding converted data is stored as a representative value.
[0094]
The arithmetic processing unit 4 converts the inputted 8-bit R, G, B digital color separation signal into upper α bits (α consecutive from the most significant bit) and lower β bits (β consecutive from the least significant bit). ). For example, the arithmetic processing unit 4 sets α = β = 4 and divides the input R, G, and B into upper four bits RH, GH, and BH and lower four bits RL, GL, and BL, respectively. Of course, α and β may be other than these. Note that “α + β” is preferably equal to the number of bits 8 of the input data.
[0095]
For example, as shown in FIG. 7A, each LUT holds 17 data for each axis of RGB. Here, as shown in FIG. 7B, in the unit cube formed by the combination value of the upper 4-bit data, the combination value of the arbitrary input R, G, B 8-bit data (input pixel data) Since the spatial position P22 is included, a unit cube (unit lattice) starting from the spatial position P21 indicated by the upper 4-bit data RH, GH, and BH is specified as a unit cube that includes the input 8-bit data. Becomes possible.
[0096]
Each vertex constituting the unit cube can be generated based on the spatial position P21. That is, with P21 (RH, GH, BH) as a base point, P23 (RH + 1, GH, BH), P24 (RH + 1, GH + 1, BH), P25 (RH, GH + 1, BH), P26 (RH, GH, BH + 1), P27 (RH + 1, GH, BH + 1), P28 (RH, GH + 1, BH + 1), and P29 (RH + 1, GH + 1, BH + 1) are the coordinates of the vertices of the unit cube. In the case of the present embodiment, the coordinates of these vertices match the coordinates of the lattice points of the original three-dimensional LUT. Further, the calculation formula of the access address to the LUT is the following formula (2).
(Equation 2)
Figure 2004208128
[0097]
The arithmetic processing unit 4 calculates the output value corresponding to the combination value of the 8-bit data of the inputs R, G, and B using the four grid point data near the input point, that is, the unit shown in FIG. It is obtained by the Tetra Hydra method using four of the coordinate data of the eight vertices of the cube as basic data.
[0098]
FIG. 8 is a diagram for explaining the tetrahedron determination process (steps S104 to S106 in FIG. 4) in the arithmetic processing unit 4, and includes a unit cube that includes input data and a unit cube divided into six. It is a figure which shows the relationship with the obtained tetrahedron. As described above, the arithmetic processing unit 4 of the first embodiment stores each of the output signals YMCK corresponding to the combination value of the input digital color separation signals R, G, and B in the data storage unit 2. Based on the basic data (lattice point data) present, it is obtained by an interpolation operation by the tetra-hydra method.
[0099]
The unit cube shown in FIG. 7B can be further divided into six unit tetrahedrons having the same volume, as shown in FIG. The tetrahedron included in the spatial position P22 of the inputs R, G, and B can be specified as shown in Table 2 shown in the lower part of FIG. 8 based on the magnitude relation of the lower bit data RL, GL, and BL.
[0100]
For example, when the lower bit data RL, GL, and BL have a relationship of RL ≧ GL ≧ BL, inputs R, G, and B are (RH, GH, BH), (RH + 1, GH, BH), (RH + 1, GH + 1, BH) and (RH + 1, GH + 1, BH + 1). When RL>BL> GL, the inputs R, G, and B are (RH, GH, BH), (RH + 1, GH, BH), (RH + 1, GH, BH + 1), (RH + 1, GH + 1, BH + 1). It belongs to the tetrahedron 2 as the vertex. When BL ≧ RL> GL, the inputs R, G, and B are (RH, GH, BH), (RH + 1, GH, BH + 1), (RH, GH, BH + 1), (RH + 1, GH + 1, BH + 1). Belongs to a tetrahedron 3 having a vertex as a vertex.
[0101]
Similarly, when BL> GL ≧ RL, the inputs R, G, and B are (RH, GH, BH), (RH, GH, BH + 1), (RH, GH + 1, BH + 1), (RH + 1, GH + 1). , BH + 1) as vertices. When GL ≧ BL> RL, the inputs R, G, and B are (RH, GH, BH), (RH, GH + 1, BH), (RH, GH + 1, BH + 1), (RH + 1, GH + 1, BH + 1). Belong to a tetrahedron 5 having a vertex as a vertex. When GL> RL ≧ BL, the inputs R, G, and B are (RH, GH, BH), (RH, GH + 1, BH), (RH + 1, GH + 1, BH), (RH + 1, GH + 1, BH + 1). Belongs to a tetrahedron 6 having a vertex as a vertex.
[0102]
Therefore, first, when the image data R, G, and B are input, the address generation unit 10 of the arithmetic processing unit 4 converts the input data R, G, and B into upper bit data RH, GH, and BH (in this example, the upper 4 bits). Bits; collectively referred to as DH) and lower bit data RL, GL, BL (in this example, lower 4 bits; collectively referred to as DL), and based on the upper 4 bits of data DH in FIG. As shown in (B), the input position P22 of the unit cube including the input point in the three-dimensional LUT is specified. In addition, the address generation unit 10 inputs the lower bit data DL of the divided data to the tetrahedron determination unit 14 and the interpolation coefficient generation unit 20.
[0103]
Upon receiving the lower 4-bit signals DL of the input RGB signals generated by the address generator 10, the tetrahedron determination unit 14 compares the magnitudes of the three signals and calculates the input 8-bit signals. It is determined which tetrahedron in the unit cube is included. The tetrahedron determination unit 14 notifies the determination result to the address generation unit 10 and the interpolation coefficient generation unit 20.
[0104]
Assuming that the lower four-bit signal DL of the input RGB signal is RL, GL, and BL, respectively, assuming that the comparison condition in the tetrahedron determination unit 14 conforms to the tetrahedron configuration of FIG. Is the tetrahedron 1, the tetrahedron 2 when RL>BL> GL, the tetrahedron 3 when BL ≧ RL> GL, the tetrahedron 4 when BL> GL ≧ RL, and the GL ≧ BL> RL Is a tetrahedron 5, and a tetrahedron 6 when GL> RL ≧ BL.
[0105]
FIG. 9 is a diagram illustrating a relationship between the base point P21 and the coordinate positions of the four vertices based on the determination result by the tetrahedron determination unit 14. In the figure, a corresponds to the base point P21 shown in FIG. 7B.
[0106]
The input point P22 indicating the input data position is included in the unit cube defined by the upper bit data RH, GH, and BH of the input data, and the position of this unit cube is the base point P21 in FIG. (A).
[0107]
The address generator 10 receives the result of the tetrahedron determination process by the tetrahedron determiner 14 and determines the eight vertices (a to h in FIG. 9) of the unit cube including the input point P22 by the tetrahedron determiner 14. The four vertex addresses based on the result are calculated according to equation (2), and are set in the four memories 2T1, 2T2, 2T3, and 2T4. By doing so, when data is read from each of the memories 2T1, 2T2, 2T3, and 2T4 of the data storage unit 2, 32-bit composite data indicating grid point data of four vertices near the input point P22 is obtained from the set address. The data is input to the data separation unit 16.
[0108]
From the memories 2T1 to 2T4, data of the first to fourth vertices are output simultaneously within a certain unit time. The output data is composite data in which data of four identical vertices (same addresses) of Y, M, C, and K are integrated. For this reason, each of the output color data separation units 16T1 to 16T4 of the data separation unit 16 refers to a predetermined data synthesis method, and outputs unit data of output colors Y, M, C, and K, that is, an 8-bit unit. Separate into data. The data separated into 8-bit units is referred to as interpolation target data D1, D2, D3, and D4. Since the composite data is prepared in a format summarized for each output color, the data separation process is simple.
[0109]
As can be seen from Table 3 in FIG. 9, the lattice points assigned to the interpolation target data D1, D2, D3, and D4 are different for each of the six tetrahedrons. The data separation unit 16 inputs the interpolation target data D1, D2, D3, and D4 for each separated output color to the corresponding interpolation processing units 22Y to 22K.
[0110]
FIG. 10 is a diagram for explaining the interpolation coefficient calculation processing (S102c) and the interpolation calculation processing (S102d) of the output value calculation processing (step S108 in FIG. 4) in the calculation processing unit 4. Here, FIG. 10A is a chart showing a calculation formula of an interpolation coefficient required for the interpolation calculation, and FIG. 10B is a functional block diagram of the interpolation calculation processing.
[0111]
The interpolation coefficient calculation process (S102c) is executed by the interpolation coefficient generation unit 20. The interpolation coefficient generation unit 20 performs interpolation based on the lower 4-bit signals DL (RL, GL, BL) of the input RGB signals input from the address generation unit 10 and the tetrahedron determination result determined by the tetrahedron determination unit 14. The calculation coefficients W1, W2, W3, and W4 are calculated. Table 4 shown in FIG. 10A shows an equation for calculating an interpolation coefficient required for the interpolation operation by the tetra-hydra method. As can be seen from Table 4, the calculation formula is different for each of the six tetrahedrons.
[0112]
Upon receiving the result of the tetrahedron determination processing (steps S104 to S106 in FIG. 4), the interpolation coefficient generation unit 20 switches the calculation formula defined for each tetrahedron including the input value based on Table 3. Then, the interpolation coefficients W1, W2, W3, and W4 are calculated based on the lower bit data RL, GL, and BL of the four grid points forming the tetrahedron, and the interpolation coefficients W1, W2, W3, and W4 are calculated by the interpolation processing units 22Y to 22Y. Input commonly to 22K. This interpolation coefficient calculation processing is the same as the processing in the conventional data conversion device.
[0113]
The interpolation calculation processing (S102d) is executed by the output color data determination unit 22. Each of the interpolation processing units 22Y to 22K includes the interpolation coefficients W1, W2, W3, and W4 input from the interpolation coefficient generation unit 20 and the interpolation target data D1, D2, and D3 input from the corresponding data separation units 16T1 to 16T4. Based on D4 (basic data of four vertices), an interpolation calculation process by a tetra-hydra method of calculating a final output value Dout is performed. For example, the final output value Dout is calculated according to equation (3). FIG. 10B functionally shows the equation (3). In equation (3), the output value is obtained by linear interpolation. However, the present invention is not limited to this, and a quadratic equation or another higher-order interpolation calculation equation may be used.
[Equation 3]
Figure 2004208128
[0114]
FIG. 11 is a diagram illustrating a second example of the memory data structure. The data structure of the first example collectively stores (combines) some or all of the output color components. On the other hand, the data structure of the second example is characterized in that some or all data of a plurality of image attributes are collectively (combined) and stored. Hereinafter, only differences from the data structure of the first example will be described.
[0115]
In the data structure of the first example, there is one neighboring data in the LUT corresponding to the input value at each vertex, and the data output by interpolation is determined one-to-one with respect to one input. Was. However, it is desired that a hard copy output device such as a printer performs a different color conversion for each component (eg, text, computer graphics image, photographic image, etc.) in the output document. That is, a plurality of data corresponding to different image attributes are required as data of each vertex.
[0116]
In this case, in the conventional configuration, the required number of memories for one image attribute (the number of grid points (vertexes) of the LUT required for the interpolation operation × the number of output color components X) is determined by the number of required image attributes. You have to prepare for the minute. For example, in order to convert RGB input color data into YMCK output color data by tetra-hydra interpolation, four conversions to Y are performed to extract four grid points, and similarly four conversions to M are performed. Since a total of 16 are required for conversion into C and four for conversion to K, if the number of image attributes is G, 16 · G memories are required, and the scale of the memory circuit is required. Increase.
[0117]
Therefore, in the data structure of the second example, the number of grid points (number of vertices) of the LUT required for the interpolation operation, which is the number of memories required for one image attribute, and the number of output color components are the same as in the conventional example. It is composed of the same number of memories as X. When converting RGB input color data into YMCK output color data by tetra-hydra interpolation, 4 × 4 = 16 memories are used.
[0118]
On the other hand, as shown in FIG. 11, which shows an example corresponding to four image attributes, the output position of each of the output color components is text, computer graphics image, or A part or all of the selected data components according to the image attribute such as a photographic image are collected (combined) and stored. It goes without saying that the bit width is wider when all the pieces are combined as shown in FIG. 11A than when only a part is combined as shown in FIG. 11B.
[0119]
Here, the data bit width of an arbitrary lattice point to be synthesized is L bits, the data bit width of one component is M bits (L and M are positive integers), and an arbitrary address of the original (previous) LUT. The stored data size is Y bits (Y is a positive integer), the number of selected data components according to the image attribute is Z (Z is a positive integer of 2 or more), and the number of selected data components (Z) is predetermined. If the data is divided into groups of number n (Z = z1 + z2 +... + Zn; zj is a positive integer), the data bit width L or Lj (unit is bit) of the LUT lattice point of each group is expressed by the following equation (4). ).
(Equation 4)
Figure 2004208128
[0120]
If Zj = Z, it means that all are put together, and there is only one group. As can be seen from the previous example, usually, the data bit width M of one component is equal to the data size Y of the LUT.
[0121]
In addition, as long as the expression (4) is satisfied, as shown in FIG. 11B and FIG. Also, as shown in FIG. 11C, depending on the way of grouping, a group can be stored with the data bit width of one component itself.
[0122]
As shown in FIGS. 11A to 11C, there are various methods of data synthesis for integrating a plurality of image attributes. These methods are the same for each output color component. Preferably, a technique is employed. However, this does not exclude changing the method of data synthesis according to the output color component. For example, the method shown in FIG. 11A is used for the output colors Y, M, and C, while the method shown in FIG. 11B is used for the output color K.
[0123]
In addition, since the data is divided into a plurality of groups, in this case, it is assumed that the number Z of the selected data components is 3 or more. This is because the number Z of selected data components must be plural (2 or more) in order to combine them, and when Z = 2, only one group can be created by combining them.
[0124]
The second example is different from the first example in that a process using a one-dimensional LUT for converting data on a certain color axis (for example, each axis in a Lab space) to a different data value on the same axis, that is, an input component The number 1 is also applicable. This is because the conversion characteristics of the one-dimensional LUT may be switched according to the image attribute.
[0125]
An example in which the number of input components is "2", "3", or "4" is the same as in the first example. Since the specific example of the color space is the same as that of the first example, the description is omitted.
[0126]
FIG. 12 is a diagram illustrating a basic configuration example of the data conversion device 1 according to the second embodiment when an LUT having a data structure to which the synthesis method of the second example illustrated in FIG. 11 is applied is used. The difference from the configuration of the first embodiment shown in FIG. 3 is the memory data structure in the data storage unit 2 and the function of the data separation unit 16. Hereinafter, differences will be described.
[0127]
As described with reference to FIG. 11, the data storage unit 2 according to the second embodiment groups selected data components corresponding to a plurality of image attributes according to a predetermined criterion, and stores a plurality of bases of the same address in the group. The look-up table LUT is configured by storing the data in one piece of combined data. For example, when all the selected data components are put together into one group, reference is made to the number T × X, which is equal to the number of lattice points (vertexes) T × the number X of output color components of the LUT required for the interpolation operation. , 2S1T2,..., 2S1Tt, 2S2T1, 2S2T2,..., 2S2Tt, 2SxT1, 2S1T2,. For example, when RGB input color data is converted into YMCK output color data by tetra-hydra interpolation, 16 memories are used because T = 4 and X = 4. Each of the reference memories 2T1, 2T2,..., 2Tt stores the combined grid point data for the image attributes Z1 to Zz.
[0128]
Each of the memories 2S1T1, 2S1T2,..., 2SxTt is independently addressable so that it can cope with a case where the time allocated as the processing time of the color space conversion for one pixel is very short. It is configured to be readable, that is, independently readable.
[0129]
The arithmetic processing unit 4 includes, as signal processing systems, S1 signal generation units 4S1, S2 signal generation units 4S2,..., Sx signal generation units 4Sx so as to correspond to the color components S1, S2,. including. The arithmetic processing unit 4 separates the combined data stored in the data storage unit 2 into data for each image attribute (selected data component) such as a text, a computer graphics image, or a photographic image. A section 16 is provided. Here, the data separation unit 16 of the second embodiment has an internal circuit corresponding to grid points T1, T2,..., Tt of the LUT and output colors S1, S2,. Is provided.
[0130]
The arithmetic processing unit 4 firstly outputs the grid of each output color component from any address of the memories 2S1T1, 2S1T2,..., 2S1Tt, 2S2T1, 2S2T2,..., 2S2Tt, 2SxT1, 2S1T2,. L-bit or Lj-bit synthesized data which is point data and synthesized for a plurality of image attributes is read. The data separation unit 16 refers to a predetermined data synthesis method and converts the read synthesized data into grid point data for each image attribute such as a text, a computer graphics image, or a photographic image. Separate and select grid point data according to the image attribute to be processed. Since the composite data is prepared in a format summarized for each image attribute, data separation / selection processing is simple. The signal generators 4S1 to 4Sx provided for each of the color components S1, S2,..., Sx perform a complementary operation using the separated and selected grid point data, so that each of the color components S1, S2,. To generate output data.
[0131]
Note that the processing procedure regarding color data conversion in the data conversion device 1 of the second embodiment is the same as that of the first embodiment except that the data separation processing in the data separation unit 16 is separation / selection processing according to image attributes. This is the same as the processing procedure of the embodiment. The flowchart showing the processing procedure is not shown.
[0132]
According to the configuration of the second embodiment, the addresses of the vertices of the memories 2S1T1, 2S1T2,..., 2S1Tt, 2S2T1, 2S2T2,..., 2S2Tt, 2SxT1, 2S1T2,. At the position, grid point data of a plurality of image attributes are collected and held as one composite data. That is, in order to perform different color conversion for each component (image object) in the output document, the number of memories used (the number of grid points of the LUT (the number of vertices required for interpolation calculation) ) While maintaining T × the number of output color components X), the overall capacity is maintained by increasing the data bit width. According to such a configuration, even when the total memory capacity is increased to perform different color conversion for each image object in the output document, compared to the case where the memory is individually used for each image object, The memory occupied by the memory configured in the application-specific semiconductor is remarkably reduced, and the cost is economically significant.
[0133]
<< Third Configuration Example of Memory Data and Corresponding Circuit >>
FIG. 13 is a diagram illustrating a third example of the memory data structure. This third example is a combination of the first and second examples.
[0134]
First, similarly to the first example, the data structure of the third example is such that the number of grid points (number of vertices) of the LUT required for the interpolation operation can be set so that the data required for the interpolation operation can be simultaneously extracted within a certain unit time. (T; four in the case of tetra-hydra interpolation).
[0135]
On the other hand, as shown in FIG. 13 showing an example corresponding to four output colors and three image attributes, output color components (Y, M, C or K), and collectively (composite) and store some or all data of a plurality of image attributes. As shown in FIG. 13A, the bit width is wider when all of the plurality of output color components and the plurality of image attributes are combined than when only a part is combined as shown in FIG. 13B. Needless to say.
[0136]
Here, the data bit width of an arbitrary lattice point to be synthesized is K bits, the data bit width of one component is M bits (L and M are positive integers), and an arbitrary address of the original (previous) LUT. The stored data size is Y bits (Y is a positive integer), the number of output color components is X (X is a positive integer of 2 or more), and the output color components (X) are grouped into a predetermined number n. Dividing (X = x1 + x2 +... + Xn; xi is a positive integer), the number of selected data components according to the image attribute is Z (Z is a positive integer of 2 or more), and the number of selected data components (Z) is predetermined. If the data is divided into groups of number n (Z = z1 + z2 +... + Zn; zj is a positive integer), the data bit widths K, Ki, Kj, and Kij (units are bits) of the LUT lattice points of each group are as follows: Equation (5) can be used.
(Equation 5)
Figure 2004208128
[0137]
If xi = X and Zj = Z, it means that all are put together, and there is only one group. When Xi = X and Zj ≠ Z, there is only one group of output color components. When Xi ≠ Z and Zj = Z, there is only one group of image attributes.
[0138]
As described in the first and second examples, at least one of the output component and the image attribute (selected data component) can be divided into a plurality of groups as long as Expression (5) is satisfied. In addition, since it is divided into a plurality of groups, in this case, it is assumed that at least one of the number X of output components and the number Z of selected data components is 3 or more. This is because the number of output components X or the number of selected data components Z must be plural (2 or more) in order to combine them. If X = 2 or Z = 2, only one group can be created by combining them. .
[0139]
The third example is different from the second example in that the number of input components is limited to two or more. This is because this is a combination with the first example. An example in which the number of input components is “3” or “4” is the same as in the first example. Since the specific example of the color space is the same as that of the first example, the description is omitted.
[0140]
FIG. 14 is a diagram illustrating a basic configuration example of the data conversion device 1 according to the third embodiment when an LUT having a data structure to which the synthesis method of the third example illustrated in FIG. 13 is applied is used. The differences from the configuration of the first embodiment shown in FIG. 3 or the second embodiment shown in FIG. 12 are the memory data structure in the data storage unit 2 and the function of the data separation unit 16. Hereinafter, differences will be described.
[0141]
As described with reference to FIG. 13, the data storage unit 2 of the third embodiment groups a plurality of output color components and a plurality of selected data components corresponding to a plurality of image attributes according to a predetermined standard. A plurality of basic data having the same address are combined into one piece of combined data and stored to form a look-up table LUT. For example, when all output color components and all selected data components are grouped together, as in the first example, the reference memory 2T1 for the number T of grid point data required for the interpolation calculation is used. , 2T2, ..., 2Tt. Each of the reference memories 2T1, 2T2,..., 2Tt stores grid point data for the image attributes Z1 to Zz and the output colors S1 to Sx in a combined manner.
[0142]
Each of the memories 2T1, 2T2,..., 2Tt is independently addressable so as to be able to cope with the case where the time allocated as the processing time of the color space conversion for one pixel is very short. It is configured to be readable, that is, independently readable.
[0143]
The arithmetic processing unit 4 includes, as signal processing systems, S1 signal generation units 4S1, S2 signal generation units 4S2,..., Sx signal generation units 4Sx so as to correspond to the color components S1, S2,. including. The arithmetic processing unit 4 separates the composite data stored in the data storage unit 2 into data for each image attribute (selected data component) such as a text, a computer graphics image, or a photographic image, and outputs the data. A data separation unit 16 that separates data for each component is provided. Here, in the data separation unit 16 of the third embodiment, an individual circuit is provided inside corresponding to the output colors S1, S2,..., Sx.
[0144]
The arithmetic processing unit 4 first obtains a plurality of output color components and a plurality of image attributes from grid addresses of each output color component from an arbitrary address of the memories 2T1, 2T2,. Is read out of the K-bit or Ki-bit synthesized data. The data separation unit 16 refers to a predetermined data synthesis method and converts the read synthesized data into grid point data for each image attribute such as a text, a computer graphics image, or a photographic image. The grid point data is selected according to the image attribute to be separated and processed, and is also separated into grid point data for each output color component. Since the composite data is prepared in a format summarized for each output color and image attribute, the data separation / selection process is simple. Note that the selection process of the grid point data according to the image attribute to be processed (image attribute selection process) and the separation process into the grid point data for each output color component (output color separation process) do not matter in any order. .
[0145]
The signal generators 4S1 to 4Sx provided for the respective color components S1, S2,..., Sx perform complementary operations using the grid point data separated for each output color component, thereby obtaining the color components S1, S2,. .... Generate output data for each Sx.
[0146]
Note that the processing procedure regarding color data conversion in the data conversion device 1 of the third embodiment is the same as the data separation processing in the data separation unit 16 except that separation / selection processing according to image attributes is added. This is the same as the processing procedure of the first embodiment. The flowchart showing the processing procedure is not shown.
[0147]
FIG. 15 is a diagram illustrating a specific example of a data structure when performing color conversion from RGB input to YMCK output using a multidimensional LUT in the data conversion device 1 of the third embodiment. The case of two image attributes and four output colors YMCK is shown. For comparison with the conventional example shown in FIG. 18, the number of data stored in the original (conventional) LUT is defined as 17 data × 17 data × 17 data (4913 grid point addresses are required).
[0148]
Here, as described above, the arithmetic processing unit 4 performs the tetra-hydra interpolation operation. In this case, the memory (data storage unit 2) includes four memories (RAM0 to RAM4) for four vertices so that data of four vertices necessary for the tetra-hydra interpolation operation can be simultaneously extracted within a certain unit time. RAM 3).
[0149]
At the address position of each vertex, two image attributes and grid point data for four colors of YMCK are collected and held as one composite data. Here, the RGB input data is 8 bits, and two image attributes are arranged in a row of 8 bits × 2 × 4 colors = 64 bits because two image attributes and four colors of YMCK are combined. That is, in order to perform different color conversion for each component (image object) in the output document, the data bit width is increased while maintaining the number of lattice points (vertexes) T of the LUT necessary for the interpolation operation. To maintain full capacity. According to such a configuration, the occupied area of the memory configured in the application-specific semiconductor is significantly smaller than the case where the memory is individually used for each image attribute and each output color, and the cost is reduced. The economic effect is enormous.
[0150]
FIG. 16 is a block diagram illustrating a specific configuration of the data conversion device 1 according to the third embodiment. The configuration of the data conversion device 1 shown in FIG. 16 is a specific circuit configuration to which the memory configuration shown in FIG. 5 in the case of three-dimensional input of R, G, and B is applied. Here, it is also assumed that the components of the input digital color separation signal are R, G, and B, each of which is 8-bit data.
[0151]
In the data conversion device 1 according to the third embodiment, the functions of the address generation unit 10, the tetrahedron determination unit 14, the interpolation coefficient generation unit 20, and the output color data determination unit 22 correspond to the data of the first embodiment shown in FIG. This is the same as the conversion device 1. On the other hand, the configuration of the data separation unit 16 is different from the data conversion device 1 of the first embodiment.
[0152]
Specifically, the data separation unit 16 of the third embodiment separates the combined data summarizing all the image attributes and all the output colors into each output color component, and first stores the four vertex memories 2T1 to 2T1. The first data selector 17T1, the second data selector 17T2, the third data selector 17T3, the fourth data selector 17T4, the first output color data separator 16T1, and the second output color correspond to 2T4. It includes a data separation unit 16T2, a third output color data separation unit 16T3, and a fourth output color data separation unit 16T4.
[0153]
Each of the data selection units 17T1 to 17T4 of the data separation unit 16 separates the composite data output from the memories 2T1 to 2T4 into grid point data for each image attribute such as a text, a computer graphics image, or a photographic image. Then, grid point data corresponding to the image attribute to be processed is selected and input to the corresponding output color data separation units 16T1 to 16T4. Each of the output color data separation units 16T1 to 16T4 separates the output data into unit data of the output colors Y, M, C, and K, that is, 8-bit units of interpolation target data D1, D2, D3, and D4. The data separation unit 16 inputs the interpolation target data D1, D2, D3, and D4 for each separated output color to the corresponding interpolation processing units 22Y to 22K.
[0154]
As described with reference to FIG. 14, since the order of the image attribute selection process and the output color separation process does not matter, the arrangement order of each data selection unit 17T1 to 17T4 and each output color data separation unit 16T1 to 16T4 is changed. It may be reversed.
[0155]
In the data conversion device 1 of the first embodiment, there is one neighboring data in the LUT corresponding to the input value at each vertex, and the data output by the interpolation operation is one-to-one with respect to one input. It was decided. However, it is desired that a hard copy output device such as a printer performs a different color conversion for each component (eg, text, computer graphics image, photographic image, etc.) in the output document. That is, a plurality of data is required as the data of each vertex. Which of the data of a certain vertex is to be applied to perform the subsequent interpolation operation is realized by, for example, adding additional data (tag; tag) to the input image data.
[0156]
Each of the memories 2T1 to 2T4 in the data storage unit 2 addressed by the address generation unit 10 stores two data of the Y component (Y0, Y1), two data of the M component (M0, M1), and two data of the C component. A total of eight pieces of data (C0, C1) and two pieces of K component data (K0, K1) are output as one piece of combined data. Here, the bit width is 64 bits because the original LUT grid point data is 8 bits.
[0157]
The input RGB data has, for each pixel, tag data indicating a component in the document described above. Here, it is assumed that the data is 1-bit data. Tag data is input to each of the data selection units 17T1 to 17T4. When the tag data is “0”, each of the data selecting units 17T1 to 17T4 selects the upper 32 bits of the grid point data Y0, M0, C0, and K0 of the first image attribute from the 64-bit composite data. The data of the part is separated and selected and passed to the corresponding output color data separation units 16T1 to 16T4.
[0158]
On the other hand, when the tag data is “1”, each of the data selection units 17T1 to 17T4, from the 64-bit composite data, lower-order data of the grid point data Y1, M1, C1, and K1 of the second image attribute. The data of the 32-bit portion is separated and selected, and passed to the corresponding output color data separation units 16T1 to 16T4. The output color data separation units 16T1 to 16T4 separate the interpolation target data D1, D2, D3, and D4 of the output colors Y, M, C, and K, and the interpolation target data D1, D2, and D3 for each of the separated output colors. , D4 are input to the corresponding interpolation processing units 22Y to 22K.
[0159]
The interpolation coefficients W1, W2, W3, and W4 are commonly input from the interpolation coefficient generation unit 20 to the interpolation processing units 22Y to 22K. Since the interpolation coefficients W1, W2, W3, and W4 are determined for each tetrahedron including the input point, they are not affected by the state of the tag data. As in the first embodiment, each of the interpolation processing units 22Y to 22K uses the interpolation coefficients W1, W2, W3, and W4 and the corresponding interpolation target data D1, D2, D3, and D4 to perform the tetra-hydra method. , The corresponding output color data is generated.
[0160]
As described above, the present invention has been described using the embodiment. However, the technical scope of the present invention is not limited to the scope described in the embodiment. Various changes or improvements can be made to the above-described embodiment without departing from the spirit of the invention, and embodiments with such changes or improvements are also included in the technical scope of the present invention.
[0161]
Further, the above embodiments do not limit the invention according to the claims (claims), and all combinations of the features described in the embodiments are not necessarily essential to the means for solving the invention. Absent. The embodiments described above include inventions at various stages, and various inventions can be extracted by appropriately combining a plurality of disclosed constituent features. Even if some components are deleted from all the components shown in the embodiment, as long as the effect is obtained, a configuration from which some components are deleted can be extracted as an invention.
[0162]
For example, in each of the above-described embodiments, in order to simplify the data separation processing, the composite data is prepared in a format summarized for each output color or image attribute. Or may be combined separately regardless of image attributes. At the time of the data conversion processing, the original grid point data may be extracted with reference to the synthesis method.
[0163]
Further, in the above-described embodiment, synthesized data obtained by synthesizing a plurality of pieces of grid point data is used from the viewpoint of image attributes and output colors. However, the present invention is not limited to this. Synthesized data obtained by synthesizing point data may be used.
[0164]
The applicant of the present application has proposed in Japanese Patent Application No. 2002-273976 a technique for realizing color data conversion with a smaller number of memory resources than the number of grid points (the number of data for an interpolation operation) required for an interpolation operation. I have. The method of the present embodiment described above, in which the synthesized data obtained by synthesizing the respective grid point data of the original look-up table according to a predetermined standard and storing the data as grid point data of a new look-up table, is described in Japanese Patent Application Publication No. The technique can also be applied to grid point data in the technique described in US Pat.
[0165]
The technique described in Japanese Patent Application No. 2002-273976 uses, when performing an interpolation operation in a polyhedron, a memory space that can be independently controlled in a number smaller than the number of data for the interpolation operation site, and uses each of the memory spaces. , A plurality of basic addresses are assigned to one address according to a predetermined procedure, with basic data corresponding to grid point data associated with each grid point in a k-dimensional grid space defined by k input color signal elements. The basic data for the number of data for the interpolation operation site corresponding to the pixel data to be processed is extracted from among a plurality of basic data assigned to the same address, This is to perform an interpolation operation within the polyhedron.
[0166]
If the above-described embodiment is applied to the technology described in Japanese Patent Application No. 2002-273976, the memory size can be reduced, and the number of data for the interpolation operation site is less than four (four in the case of four-point interpolation). Color data conversion can be realized with a small amount of memory resources, and power consumption and radiation noise can be reduced.
[0167]
【The invention's effect】
As is apparent from the above description, in the present invention, the combined data obtained by combining a plurality of pieces of each grid point data in the original look-up table based on a predetermined criterion are used as the grid points in the new look-up table. Store as data. The bit width of the synthesized data is increased by an amount obtained by synthesizing a plurality of data.
[0168]
When the bit width of data is increased, the gate scale (memory size) of a memory for storing data is reduced even with the same memory capacity. Therefore, by storing the synthesized data having a wide bit width in the memory (data storage unit), a memory having a smaller chip size can be used, and the memory cost can be reduced.
[Brief description of the drawings]
FIG. 1 is a diagram illustrating the relationship between the capacity of a memory, which is an example of a storage unit included in an application-specific semiconductor, and an area occupied by the memory (hereinafter referred to as a gate scale).
FIG. 2 is a diagram illustrating a first example of a data structure (memory data structure) stored in an LUT used when converting color data.
FIG. 3 is a diagram illustrating a basic configuration example of a data conversion device according to the first embodiment to which the synthesis method of the first example is applied.
FIG. 4 is a flowchart illustrating an outline of a processing procedure regarding color data conversion in the data conversion device according to the first embodiment.
FIG. 5 is a diagram illustrating a specific example of a data structure in the data conversion device according to the first embodiment.
FIG. 6 is a block diagram illustrating a specific configuration of the data conversion device according to the first embodiment.
FIG. 7 is a diagram illustrating a unit cube determination process (steps S100 to S102 in FIG. 4) in an arithmetic processing unit.
8 is a diagram illustrating a tetrahedron determination process (steps S104 to S106 in FIG. 4) in the arithmetic processing unit.
FIG. 9 is a diagram illustrating a relationship between a base point P21 and coordinate positions of four vertices based on a determination result by a tetrahedron determination unit.
FIG. 10 is a diagram illustrating an interpolation coefficient calculation process (S102c) and an interpolation calculation process (S102d) of an output value calculation process (step S108 in FIG. 4) in the calculation processing unit.
FIG. 11 is a diagram illustrating a second example of the memory data structure.
FIG. 12 is a diagram illustrating a basic configuration example of a data conversion apparatus according to a second embodiment to which the combining method of the second example is applied.
FIG. 13 is a diagram illustrating a third example of the memory data structure.
FIG. 14 is a diagram illustrating a basic configuration example of a data conversion device according to a third embodiment to which the combining method of the third example is applied.
FIG. 15 is a diagram illustrating a specific example of a data structure in the data conversion device according to the third embodiment.
FIG. 16 is a block diagram illustrating a specific configuration of a data conversion device according to a third embodiment.
FIG. 17 is a diagram illustrating a configuration example of a conventional data conversion device that performs color conversion from RGB input to YMCK output using tetra-hydra interpolation.
18 is a diagram illustrating an example of a data configuration of a reference memory of each vertex data used in a data storage unit in the data conversion device illustrated in FIG. 17;
[Explanation of symbols]
DESCRIPTION OF SYMBOLS 1 ... Data conversion device, 2 ... Data storage part, 4 ... Operation processing part, 6 ... Address bus, 8 ... Data bus, 10 ... Address generation part, 14 ... Tetrahedron determination part, 16 ... Data separation part, 20 ... Interpolation Coefficient generation unit 22, 22 output color data determination unit, 22Y, 22M, 22C, 22K interpolation processing unit

Claims (21)

入力色データを出力色データに変換する際に用いられるルックアップテーブルの格子点データに基づいて、前記入力色データの画素データごとに、当該入力色データに対応する出力色用の画素データを決定するデータ変換方法であって、
ルックアップテーブルの各格子点に、複数の前記出力色についての元のルックアップテーブルにおける各格子点データを所定の基準に基づいて所定数の出力色分を合成した合成データを格納しておき、
前記入力色データの画素データに対応する前記合成データを読み出し、
この読み出した前記合成データを、前記出力色についての各格子点データに分離し、
前記出力色ごとに、前記分離した当該出力色用の格子点データを使用して、前記出力色用の画素データを決定する
ことを特徴とするデータ変換方法。
For each pixel data of the input color data, determine the pixel data for the output color corresponding to the input color data based on the grid point data of the lookup table used when converting the input color data to the output color data. Data conversion method,
At each grid point of the lookup table, composite data obtained by combining a predetermined number of output colors for each grid point data in the original lookup table for the plurality of output colors based on a predetermined reference is stored.
Reading the composite data corresponding to the pixel data of the input color data,
The read composite data is separated into grid point data for the output color,
A data conversion method, wherein pixel data for the output color is determined using the separated grid point data for the output color for each of the output colors.
入力色データを出力色データに変換する際に用いられるルックアップテーブルの格子点データに基づいて、前記入力色データの画素データごとに、当該入力色データに対応する出力色用の画素データを決定するデータ変換方法であって、
ルックアップテーブルの各格子点に、複数の画像属性についての元のルックアップテーブルにおける各格子点データを所定の基準に基づいて所定数の画像属性分を合成した合成データを格納しておき、
前記入力色データの画素データに対応する前記合成データを読み出し、
この読み出した前記合成データを、前記画像属性についての各格子点データに分離し、
前記出力色ごとに、前記分離した当該出力色用の格子点データを使用して、前記出力色用の画素データを決定する
ことを特徴とするデータ変換方法。
For each pixel data of the input color data, determine the pixel data for the output color corresponding to the input color data based on the grid point data of the lookup table used when converting the input color data to the output color data. Data conversion method,
At each grid point of the lookup table, composite data obtained by combining a predetermined number of image attributes for each grid point data in the original lookup table for a plurality of image attributes based on a predetermined criterion is stored.
Reading the composite data corresponding to the pixel data of the input color data,
The read composite data is separated into grid point data for the image attributes,
A data conversion method, wherein pixel data for the output color is determined using the separated grid point data for the output color for each of the output colors.
入力色データを出力色データに変換する際に用いられるルックアップテーブルの格子点データに基づいて、前記入力色データの画素データごとに、当該入力色データに対応する出力色用の画素データを決定するデータ変換方法であって、
ルックアップテーブルの各格子点に、複数の画像属性並びに複数の出力色についての元のルックアップテーブルにおける各格子点データを所定の基準に基づいて所定数の画像属性分並びに所定数の出力色分を合成した合成データを格納しておき、
前記入力色データの画素データに対応する前記合成データを読み出し、
この読み出した前記合成データを、前記画像属性並びに前記出力色についての各格子点データに分離し、
前記出力色ごとに、前記分離した当該出力色用の格子点データを使用して、前記出力色用の画素データを決定する
ことを特徴とするデータ変換方法。
For each pixel data of the input color data, determine the pixel data for the output color corresponding to the input color data based on the grid point data of the lookup table used when converting the input color data to the output color data. Data conversion method,
At each grid point of the lookup table, each grid point data in the original lookup table for a plurality of image attributes and a plurality of output colors is stored for a predetermined number of image attributes and a predetermined number of output colors based on a predetermined reference. Store the synthesized data obtained by synthesizing
Reading the composite data corresponding to the pixel data of the input color data,
The read composite data is separated into each grid point data for the image attribute and the output color,
A data conversion method, wherein pixel data for the output color is determined using the separated grid point data for the output color for each of the output colors.
前記入力色データの画素データごとに、当該画素データが前記格子点データの集合を構成する単位格子体の何れに属するのかを判定し、該当する単位格子体の中をさらに複数個の多面体に分割して前記画素データが何れの前記多面体に属するのかを判定し、該当する前記多面体内での補間演算により、入力された前記画素データに対応する出力用の画素データを決定する
ことを特徴とする請求項1から3のうちの何れか1項に記載のデータ変換方法。
For each pixel data of the input color data, it is determined to which of the unit lattices constituting the set of the lattice point data the pixel data belongs, and the corresponding unit lattice is further divided into a plurality of polyhedrons. Then, it is determined which of the polyhedrons the pixel data belongs to, and an output pixel data corresponding to the input pixel data is determined by an interpolation operation in the corresponding polyhedron. The data conversion method according to any one of claims 1 to 3.
入力色データを出力色データに変換する際に用いられるルックアップテーブルの格子点データに基づいて、前記入力色データの画素データごとに、当該入力色データに対応する出力色用の画素データを決定するデータ変換装置であって、
複数の前記出力色についての元のルックアップテーブルにおける各格子点データを、所定の基準に基づいて所定数の出力色分を合成して得られる合成データが各格子点に格納されてなるデータ格納部と、
前記データ格納部から前記入力色データの画素データに対応する前記合成データを読み出す合成データ読出部と、
前記合成データ読出部が読み出した前記合成データを、前記出力色についての各格子点データに分離するデータ分離部と、
前記出力色ごとに、前記データ分離部が分離した当該出力色用の格子点データを使用して、前記出力色用の画素データを決定する出力色データ決定部と
を備えたことを特徴とするデータ変換装置。
For each pixel data of the input color data, determine the pixel data for the output color corresponding to the input color data based on the grid point data of the lookup table used when converting the input color data to the output color data. Data conversion device,
A data storage in which composite data obtained by synthesizing each grid point data in the original lookup table for the plurality of output colors with a predetermined number of output colors based on a predetermined standard is stored at each grid point. Department and
A combined data reading unit that reads the combined data corresponding to the pixel data of the input color data from the data storage unit;
A data separation unit that separates the combined data read by the combined data reading unit into respective grid point data for the output color;
An output color data determining unit that determines pixel data for the output color using grid point data for the output color separated by the data separating unit for each of the output colors. Data converter.
前記所定の基準は、前記複数の出力色の構成要素数をX、前記元のルックアップテーブルにおける各格子点データのビット幅をY、前記合成データのビット幅をNとしたとき、N=X・Yとする
ものであることを特徴とする請求項5に記載のデータ変換装置。
The predetermined criterion is N = X, where X is the number of components of the plurality of output colors, Y is the bit width of each grid point data in the original lookup table, and N is the bit width of the composite data. 6. The data conversion device according to claim 5, wherein Y is set.
前記所定の基準は、前記複数の出力色の構成要素を複数のグループに分割したときのi番目のグループに属する前記出力色の構成要素数をxi、前記i番目のグループにおける前記合成データのビット幅をNiとしたとき、Ni=xi・Yとする
ものであることを特徴とする請求項5に記載のデータ変換装置。
The predetermined criterion is such that when the components of the plurality of output colors are divided into a plurality of groups, the number of components of the output color belonging to the i-th group is xi, and the number of bits of the composite data in the i-th group is 6. The data conversion device according to claim 5, wherein when the width is Ni, Ni = xi.Y.
入力色データを出力色データに変換する際に用いられるルックアップテーブルの格子点データに基づいて、前記入力色データの画素データごとに、当該入力色データに対応する出力色用の画素データを決定するデータ変換装置であって、
複数の画像属性についての元のルックアップテーブルにおける各格子点データを所定の基準に基づいて所定数の画像属性分を合成して得られる合成データが各格子点に格納されてなるデータ格納部と、
前記データ格納部から前記入力色データの画素データに対応する前記合成データを読み出す合成データ読出部と、
前記合成データ読出部が読み出した前記合成データを、前記画像属性についての各格子点データに分離するデータ分離部と、
前記出力色ごとに、前記データ分離部が分離した当該出力色用の格子点データを使用して、前記出力色用の画素データを決定する出力色データ決定部と
を備えたことを特徴とするデータ変換装置。
For each pixel data of the input color data, determine the pixel data for the output color corresponding to the input color data based on the grid point data of the lookup table used when converting the input color data to the output color data. Data conversion device,
A data storage unit in which combined data obtained by combining each grid point data in the original look-up table for a plurality of image attributes into a predetermined number of image attributes based on a predetermined reference is stored at each grid point; ,
A combined data reading unit that reads the combined data corresponding to the pixel data of the input color data from the data storage unit;
A data separating unit that separates the combined data read by the combined data reading unit into respective grid point data for the image attributes;
An output color data determining unit that determines pixel data for the output color using grid point data for the output color separated by the data separating unit for each of the output colors. Data converter.
前記所定の基準は、前記画像属性の構成要素数をZ、前記元のルックアップテーブルにおける各格子点データのビット幅をY、前記合成データのビット幅をLとしたとき、L=Z・Yとする
ものであることを特徴とする請求項8に記載のデータ変換装置。
The predetermined criterion is that when the number of components of the image attribute is Z, the bit width of each grid point data in the original lookup table is Y, and the bit width of the composite data is L, L = Z · Y 9. The data conversion device according to claim 8, wherein:
前記所定の基準は、前記複数の画像属性の構成要素を複数のグループに分割したときのj番目のグループに属する前記画像属性の構成要素数をzj、前記j番目のグループにおける前記合成データのビット幅をLjとしたとき、Lj=zj・Yとする
ものであることを特徴とする請求項8に記載のデータ変換装置。
The predetermined criterion is that when the components of the plurality of image attributes are divided into a plurality of groups, the number of components of the image attributes belonging to the j-th group is zj, and the number of bits of the combined data in the j-th group is 9. The data conversion device according to claim 8, wherein when the width is Lj, Lj = zj.Y.
入力色データを出力色データに変換する際に用いられるルックアップテーブルの格子点データに基づいて、前記入力色データの画素データごとに、当該入力色データに対応する出力色用の画素データを決定するデータ変換装置であって、
複数の画像属性並びに複数の出力色についての元のルックアップテーブルにおける各格子点データを所定の基準に基づいて所定数の画像属性分並びに所定数の出力色分を合成して得られる合成データが各格子点に格納されてなるデータ格納部と、
前記データ格納部から前記入力色データの画素データに対応する前記合成データを読み出す合成データ読出部と、
前記合成データ読出部が読み出した前記合成データを、前記画像属性並びに前記出力色についての各格子点データに分離するデータ分離部と、
前記出力色ごとに、前記データ分離部が分離した当該出力色用の格子点データを使用して、前記出力色用の画素データを決定する出力色データ決定部と
を備えたことを特徴とするデータ変換装置。
For each pixel data of the input color data, determine the pixel data for the output color corresponding to the input color data based on the grid point data of the lookup table used when converting the input color data to the output color data. Data conversion device,
Synthesized data obtained by synthesizing each grid point data in the original look-up table for a plurality of image attributes and a plurality of output colors into a predetermined number of image attributes and a predetermined number of output colors based on a predetermined reference is obtained. A data storage unit stored at each grid point,
A combined data reading unit that reads the combined data corresponding to the pixel data of the input color data from the data storage unit;
A data separating unit that separates the combined data read by the combined data reading unit into respective grid point data for the image attribute and the output color;
An output color data determining unit that determines pixel data for the output color using grid point data for the output color separated by the data separating unit for each of the output colors. Data converter.
前記所定の基準は、前記複数の出力色の構成要素数をX、前記画像属性の構成要素数をZ、前記元のルックアップテーブルにおける各格子点データのビット幅をY、前記合成データのビット幅をKとしたとき、K=X・Z・Yとする
ものであることを特徴とする請求項11に記載のデータ変換装置。
The predetermined criterion is that the number of components of the plurality of output colors is X, the number of components of the image attribute is Z, the bit width of each grid point data in the original lookup table is Y, and the bit of the composite data is 12. The data conversion device according to claim 11, wherein when the width is K, K = XZZY.
前記所定の基準は、前記複数の出力色の構成要素を複数のグループに分割したときのi番目のグループに属する前記出力色の構成要素数をxi、前記画像属性の構成要素数をZ、前記i番目のグループにおける前記合成データのビット幅をKiとしたとき、Ki=xi・Z・Yとする
ものであることを特徴とする請求項11に記載のデータ変換装置。
The predetermined criterion is such that when the components of the plurality of output colors are divided into a plurality of groups, the number of components of the output color belonging to the i-th group is xi, the number of components of the image attribute is Z, 12. The data conversion device according to claim 11, wherein when a bit width of the combined data in the i-th group is Ki, Ki = xi.Z.Y.
前記所定の基準は、前記複数の出力色の構成要素数をX、前記複数の画像属性の構成要素を複数のグループに分割したときのj番目のグループに属する前記画像属性の構成要素数をzj、前記j番目のグループにおける前記合成データのビット幅をKjとしたとき、Kj=X・zj・Yとする
ものであることを特徴とする請求項11に記載のデータ変換装置。
The predetermined criterion is that the number of components of the plurality of output colors is X, and the number of components of the image attribute belonging to the j-th group when the components of the plurality of image attributes are divided into a plurality of groups is zj. 12. The data conversion apparatus according to claim 11, wherein when a bit width of the combined data in the j-th group is Kj, Kj = X · zj · Y.
前記所定の基準は、前記複数の出力色の構成要素を複数のグループに分割したときのi番目のグループに属する前記出力色の構成要素数をxi、前記複数の画像属性の構成要素を複数のグループに分割したときのj番目のグループに属する前記画像属性の構成要素数をzj、前記j番目のグループにおける前記合成データのビット幅をKijとしたとき、Kij=xi・zj・Yとする
ものであることを特徴とする請求項11に記載のデータ変換装置。
The predetermined criterion is such that when the components of the plurality of output colors are divided into a plurality of groups, the number of components of the output color belonging to the i-th group is xi, and the components of the plurality of image attributes are a plurality of components. When the number of components of the image attribute belonging to the j-th group when divided into groups is zj, and the bit width of the composite data in the j-th group is Kij, Kij = xi · zj · Y The data conversion device according to claim 11, wherein
入力色データを出力色データに変換する際に用いられるルックアップテーブルの格子点データに基づいて、前記入力色データの画素データごとに、当該入力色データに対応する出力色用の画素データを決定するデータ変換装置であって、
元のルックアップテーブルにおける各格子点データを所定の基準に基づいて複数分を合成して得られる合成データが各格子点に格納されてなるデータ格納部と、
前記データ格納部から前記入力色データの画素データに対応する前記合成データを読み出す合成データ読出部と、
前記合成データ読出部が読み出した前記合成データを前記元のルックアップテーブルの各格子点データに分離するデータ分離部と、
前記出力色ごとに、前記データ分離部が分離した当該出力色用の格子点データを使用して、前記出力色用の画素データを決定する出力色データ決定部と
を備えたことを特徴とするデータ変換装置。
For each pixel data of the input color data, determine the pixel data for the output color corresponding to the input color data based on the grid point data of the lookup table used when converting the input color data to the output color data. Data conversion device,
A data storage unit in which combined data obtained by combining a plurality of pieces of each grid point data in the original lookup table based on a predetermined reference is stored at each grid point,
A combined data reading unit that reads the combined data corresponding to the pixel data of the input color data from the data storage unit;
A data separation unit that separates the combined data read by the combined data reading unit into respective grid point data of the original lookup table;
An output color data determining unit that determines pixel data for the output color using grid point data for the output color separated by the data separating unit for each of the output colors. Data converter.
前記入力色の構成要素数が2であることを特徴とする請求項5から7、11から15、のうちの何れか1項に記載のデータ変換装置。The data conversion device according to any one of claims 5 to 7, 11 to 15, wherein the number of components of the input color is two. 前記入力色の構成要素数が1であることを特徴とする請求項8から10のうちの何れか1項に記載のデータ変換装置。11. The data conversion device according to claim 8, wherein the number of components of the input color is one. 前記入力色の構成要素数が3であって、当該入力色の構成要素で規定される色空間が、RGB色空間、sRGB色空間、Lab色空間、YCbCr色空間、YMC色空間、XYZ色空間のうちの何れかであることを特徴とする請求項5から16のうちの何れか1項に記載のデータ変換装置。The number of components of the input color is three, and the color space defined by the components of the input color is an RGB color space, an sRGB color space, a Lab color space, a YCbCr color space, a YMC color space, and an XYZ color space. The data conversion device according to any one of claims 5 to 16, wherein the data conversion device is any one of the following. 前記入力色の構成要素数が4であって、当該入力色の構成要素で規定される色空間が YMCK色空間、K+Lab色空間、RGB+L色空間であることを特徴とする請求項5から16のうちの何れか1項に記載のデータ変換装置。17. The method according to claim 5, wherein the number of components of the input color is four, and the color spaces defined by the components of the input color are a YMCK color space, a K + Lab color space, and an RGB + L color space. The data conversion device according to any one of the preceding claims. 前記入力色データの画素データごとに、当該画素データが前記格子点データの集合を構成する単位格子体の何れに属するのかを判定する単位格子体判定部と、
前記該単位格子体判定部により判定された該当する単位格子体の中をさらに複数個の多面体に分割して前記画素データが何れの前記多面体に属するのかを判定する多面体判定部とを備え、
前記出力色データ決定部は、前記多面体判定部により判定された該当する前記多面体内での補間演算により、入力された前記画素データに対応する出力用の画素データを決定する補間処理部を含む
ことを特徴とする請求項5から20のうちの何れか1項に記載のデータ変換装置。
For each pixel data of the input color data, a unit lattice body determining unit that determines which of the unit lattices constituting the set of the lattice point data the pixel data belongs to,
A polyhedron determination unit that further divides the corresponding unit lattice determined by the unit lattice determination unit into a plurality of polyhedrons and determines which of the polyhedrons the pixel data belongs to,
The output color data determination unit may include an interpolation processing unit that determines output pixel data corresponding to the input pixel data by an interpolation operation in the corresponding polyhedron determined by the polyhedron determination unit. The data conversion device according to any one of claims 5 to 20, wherein:
JP2002376208A 2002-12-26 2002-12-26 Data conversion method and data converter Pending JP2004208128A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2002376208A JP2004208128A (en) 2002-12-26 2002-12-26 Data conversion method and data converter

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2002376208A JP2004208128A (en) 2002-12-26 2002-12-26 Data conversion method and data converter

Publications (1)

Publication Number Publication Date
JP2004208128A true JP2004208128A (en) 2004-07-22

Family

ID=32813726

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002376208A Pending JP2004208128A (en) 2002-12-26 2002-12-26 Data conversion method and data converter

Country Status (1)

Country Link
JP (1) JP2004208128A (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100800699B1 (en) 2006-02-01 2008-02-01 삼성전자주식회사 Method for color look-up table generation
WO2014166705A1 (en) * 2013-04-08 2014-10-16 Thomson Licensing Method for encoding and method for decoding a lut and corresponding devices

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100800699B1 (en) 2006-02-01 2008-02-01 삼성전자주식회사 Method for color look-up table generation
US7826111B2 (en) 2006-02-01 2010-11-02 Samsung Electronics Co., Ltd. Color conversion method using a colors look-up table
WO2014166705A1 (en) * 2013-04-08 2014-10-16 Thomson Licensing Method for encoding and method for decoding a lut and corresponding devices
CN105230019A (en) * 2013-04-08 2016-01-06 汤姆逊许可公司 The equipment of the method that LUT is encoded and the method for being decoded and correspondence
US10097857B2 (en) 2013-04-08 2018-10-09 Dolby Laboratories Licensing Corporation Method for encoding and method for decoding a LUT and corresponding devices
US10694209B2 (en) 2013-04-08 2020-06-23 Dolby Laboratories Licensing Corporation Method for encoding and method for decoding a LUT and corresponding devices
US11153605B2 (en) 2013-04-08 2021-10-19 Dolby Laboratories Licensing Corporation Method for encoding and method for decoding a LUT and corresponding devices
EP4254954A3 (en) * 2013-04-08 2023-10-18 Dolby International AB Method for encoding and method for decoding a lut and corresponding devices

Similar Documents

Publication Publication Date Title
KR100364942B1 (en) Multidimensional data conversion apparatus and method
JP4978598B2 (en) Image processing method, image processing apparatus, and image processing program
JP3976849B2 (en) Device for generating interpolator input data
JP2000115558A (en) Color characteristic description device, color management device, image converter and color correction method
JPH11165435A (en) Creation method of merge data component
US8891144B2 (en) Color management method, module, and program product, and printer using said method
AU722868B2 (en) Method and system for image format conversion
US6389161B1 (en) Method of interpolation in an n-dimensional color space
JPH05110840A (en) Method and device for converting chrominance signal
JP2006157252A (en) Data classification method, multidimensional interpolation apparatus, multidimensional interpolation method, and computer program
JP4046857B2 (en) Image processing apparatus and method, and recording medium
JP2004208128A (en) Data conversion method and data converter
JPH10117291A (en) Decision device for input data path of interpolator
US20080225345A1 (en) Image processing apparatus and computer readable medium
JP4096672B2 (en) Data conversion method and data conversion apparatus
JP4137113B2 (en) Image processing apparatus and image processing method
JP2007067956A (en) Multi-dimensional interpolation apparatus and multi-dimensional interpolation method
JP6448410B2 (en) Data conversion apparatus, control method therefor, and program
JP6501561B2 (en) DATA PROCESSING APPARATUS, CONTROL METHOD THEREOF, AND PROGRAM
JP3455078B2 (en) Image processing apparatus and image processing method
JP4431953B2 (en) Data conversion apparatus, data conversion method, and data conversion program
JP3911898B2 (en) Color conversion apparatus and method
JP2010050832A (en) Device and method for processing image, program, and recording medium
JP2010193474A (en) Device and method for multi-dimensional interpolation, and computer program
JP2627824B2 (en) Image processing device

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20051124

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20070523

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070626

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070827

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20080219