JP2004112523A - Method and device for data conversion - Google Patents

Method and device for data conversion Download PDF

Info

Publication number
JP2004112523A
JP2004112523A JP2002273976A JP2002273976A JP2004112523A JP 2004112523 A JP2004112523 A JP 2004112523A JP 2002273976 A JP2002273976 A JP 2002273976A JP 2002273976 A JP2002273976 A JP 2002273976A JP 2004112523 A JP2004112523 A JP 2004112523A
Authority
JP
Japan
Prior art keywords
data
unit
interpolation
basic
basic data
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.)
Granted
Application number
JP2002273976A
Other languages
Japanese (ja)
Other versions
JP4096672B2 (en
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 JP2002273976A priority Critical patent/JP4096672B2/en
Publication of JP2004112523A publication Critical patent/JP2004112523A/en
Application granted granted Critical
Publication of JP4096672B2 publication Critical patent/JP4096672B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

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

Abstract

<P>PROBLEM TO BE SOLVED: To reduce memory capacity used for a data converting device for determining output color data corresponding to input color data by four-point interpolation. <P>SOLUTION: Memories 2R, 2G and 2B are used for a data storage unit 2. The number of these memories is less than four pieces required for four-point interpolation. Basic data is divided into groups in parallel to each axial direction of an input color and stored in each memory circuit. A tetrahedron determining unit 14 determines a tetrahedron including an input value based on lower bit data. An address generating unit 10 activates two memory circuits, from which basic data of four lattice points required for interpolation calculation are extracted out of three memory circuits, and direct the memory circuits to output all of basic data for the relevant address to a data selecting unit 16. The data selecting unit 16 refers to upper bit data and extracts four required basic data. An interpolation processing unit 22 calculates final output values Y, M, C, and K, based on an interpolation coefficient inputted from an interpolation coefficient generating unit 20 and the basic data of four vertexes inputted from the data selecting unit 16. <P>COPYRIGHT: (C)2004,JPO

Description

【0001】
【発明の属する技術分野】
本発明は、補間演算を用いてデータ変換を行なうデータ変換方法およびデータ変換装置に関する。より詳細には、たとえば、プリンタ装置、ファクシミリ装置、あるいはそれらの機能を有する複合機などの画像処理装置において、たとえば、R(赤),G(緑),B(青)の多次元入力画像データを、Y(イエロ),M(マゼンタ),C(シアン),K(黒)の多次元出力画像データのそれぞれ1つの色データに変換するなど、複数次元の入力画像信号を別の色データに変換する技術に関する。
【0002】
【従来の技術】
【特許文献1】
特開平8−181874号公報
【特許文献2】
特公昭58−16180号公報点
【特許文献3】
特開昭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の容量を削減するものである。入力信号に該当する出力値が存在しない場合はその入力値が示す空間位置の近傍データを用いて補間処理を施し出力値を算出する。
【0013】
このような補間演算処理は、LUTから読み出したデータ(格子点データ)をいくつ用いるか、また、どのような関係の格子点データを用いるかによって、いくつかの方法に分類できる。一般的に、格子点データを多く用いる方法では補間精度は向上するが補間回路の規模が大きくなる。比較的回路規模が小さな補間方法として、たとえば特許文献1,2,3に記載されている4点補間法(テトラ・ハイドラ補間;Tetra−Hydra 補間)が知られている。また、特許文献1には、5点補間法もあることが述べられている。また、特許文献2には、回路規模が大きくなるが、補間精度がよい補間方法として、立方体補間法(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には、LUTに保持するデータ量と補間に用いるデータの個数とを効率的に規定する方法が提案されている。特許文献1に記載の方法は、先ず、入力3要素のデータからなる格子体(単位立方体)を構成し、入力3要素の上位のビットデータRH,GH,BHに基づいて何れの格子体に該当データが含まれるかを決定し、その中をさらに6つの4面体に分割し、入力3要素の下位のビットデータRL,GL,BLに基づいて何れかの4面体に該当データが含まれるかを決定し、4面体頂点から得られる基礎データとその4面体ごとに決められた乗数(補間係数)とに基づいて、入力値に対応する出力値をテトラ・ハイドラ法による演算で求めるというものである。
【0018】
この特許文献1に記載の方法では、入力データが決まれば、必要となる4面体が一意に決まる。すなわち、入力R,G,Bの3次元LUT上における近傍4格子点が特定される。そして、4面体を決めるには互いに交差しない2つの線分から得られる合計4頂点があればよい。これらの線分は、入力3要素うち1つの要素のそれぞれ連続する頂点を結ぶもので表すことができる。
【0019】
この特許文献1に記載の方法を用いると、入力R,G,Bから任意の1色(出力色)への変換に際し、LUTへの格納データ数を17データ×17データ×17データと規定した場合、LUTの容量は49キロバイトで実現可能となり、補間処理を用いない方式における16メガバイトと比較すると大幅な容量削減が可能である。
【0020】
【発明が解決しようとする課題】
しかしながら、特許文献1に記載の方法では、1つの画素に対する色空間変換の処理時間として割り当てられている時間が非常に短時間である場合、LUTとして用いられるメモリから複数のデータを複数回読み出すことが不可能であるため、同容量のメモリを補間演算所用データ数の分だけ使用しなければならない。
【0021】
テトラ・ハイドラ補間の場合において、RGBからYMCKへの変換を想定するとYへの変換に4つの格子点抽出用として4個、同様にMへの変換用に4個、Cへの変換用に4個、Kへの変換用に4個、合計16個の同容量のメモリが必要となる。LUTへの格納データ数を上述のように17データ×17データ×17データと規定した場合、全メモリ容量は786キロバイトになる。補間精度を重視し、8点補間を想定すると32個もメモリが必要となり、全メモリ容量は1,568キロバイトにもなる。
【0022】
一方、メモリ容量の増大もさることながら、ある単位時間に多大な数のメモリに同時アクセスするということは消費電力の増大や放射ノイズの増大をも招く。従来の方式では、補間方式を決めてしまうと、補間演算に必要となる格子点データ数も一義的に決まり、またそれに応じて同時アクセスのメモリ数も一義的に決まってしまうため、消費電力や放射ノイズを低減する有効な手段がなかった。
【0023】
本発明は、上記事情に鑑みてなされたものであり、補間演算を利用してデータ変換を行なうに際して、補間精度を劣化させることなく、データ格納のためのメモリ容量、あるいは消費電力や放射ノイズを低減することができるデータ変換方法および装置を提供することを目的とする。
【0024】
【課題を解決するための手段】
すなわち、本発明に係るデータ変換方法は、入力色データを出力色データに変換する際に用いられる格子点データに基づいて、入力色データの画素データごとに、当該画素データが格子点データの集合を構成する単位格子体の何れに属するのかを判定し、該当する単位格子体の中をさらに複数個の多面体に分割して画素データが何れの多面体に属するのかを判定し、該当する多面体内での補間演算により、入力された画素データに対応する出力用の画素データを決定するデータ変換方法であり、先ず、多面体に応じて規定される補間演算所用データ数(つまり補間演算に必要となる基礎データの数)よりも少ない数のそれぞれ独立に制御可能なメモリ空間を使用することとした。
【0025】
そして、k色の入力色信号要素で規定されるk次元格子空間の各格子点に対応づけられた格子点データに対応する基礎データを所定の基準に従って複数のグループに分け、グループごとに、このグループ内の複数の基礎データを複数のメモリ空間の対応するものに格納しておく。つまり、各メモリ空間ごとに、基礎データを所定の基準に従ってグループ分けし、各グループ内の個々の基礎データに対して共通のアドレスを割り当てて、各々のメモリセルに格納しておく。
【0026】
そして、実際の補間演算に際しては、グループに対応付けられた複数の基礎データの中から、処理対象の画素データに対応する補間演算所用データ数分の基礎データを抽出し、この抽出した補間演算所用データ数分の基礎データを用いて多面体内での補間演算を行なう。
【0027】
処理対象の画素データに対応する補間演算所用データ数分の基礎データを抽出するに際しては、その処理対象の画素データが複数個の多面体のうちの何れに属するのかの判定結果を参照することが好ましい。
【0028】
なお、本発明に係るデータ変換方法は、特に、k色が3色つまり入力色空間が3次元であって、多面体が出力色信号要素である4色つまり出力色空間が4次元で、これに対応する多面体が4面体であって、4面体補間演算を行なうものに適用すると効果が高い。
【0029】
本発明に係るデータ変換装置は、上記本発明に係るデータ変換方法を実施する装置である。すなわち、本発明に係るデータ変換装置は、入力色データを出力色データに変換する際に用いられる格子点データに基づいて、入力色データの画素データごとに、当該画素データが格子点データの集合を構成する単位格子体の何れに属するのかを判定する単位格子体判定部と、単位格子体判定部により判定された該当単位格子体の中をさらに複数個の多面体に分割して画素データが何れの多面体に属するのかを判定する多面体判定部と、多面体判定部により判定された該当多面体内での補間演算により、入力された画素データに対応する出力用の画素データを決定する補間演算処理部とを備えたデータ変換装置において、先ず、多面体に応じて規定される補間演算所用データ数よりも少ない数のそれぞれ独立に制御可能な複数のメモリ空間を具備し、k色の入力色信号要素で規定されるk次元格子空間の各格子点に対応づけられた格子点データに対応する基礎データを格納するデータ格納部であって、基礎データを所定の基準に従って複数のグループに分け、グループごとに、このグループ内の複数の基礎データを複数のメモリ空間の対応するものに格納するデータ格納部を備える構成とした。
【0030】
また、本発明に係るデータ変換装置は、データ格納部に格納されているグループに対応付けられた複数の基礎データの中から、処理対象の画素データに対応する補間演算所用データ数分の基礎データを抽出する基礎データ抽出部を備えるとともに、補間演算処理部を、基礎データ抽出部により抽出された補間演算所用データ数分の基礎データを用いて多面体内での補間演算を行なうものとした。
【0031】
また従属項に記載された発明は、本発明に係るデータ変換装置のさらなる有利な具体例を規定する。
【0032】
なお、データ格納部の制御機能部分や補間演算機能部分に関してはハードウェアによらずソフトウェアにて実現することもでき、本発明に係るデータ変換装置を、電子計算機を用いてソフトウェアで実現するために好適なプログラムやこのプログラムを格納したコンピュータ読取り可能な記憶媒体も、本願の発明として抽出することが可能である。なお、プログラムは、コンピュータ読取り可能な記憶媒体に格納されて提供されてもよいし、有線あるいは無線による通信手段を介して配信されてもよい。
【0033】
上記において、「独立に制御可能なメモリ空間」とは、データ格納部から補間演算に必要となる基礎データを読み出す際に、少なくも、各メモリ空間に対して読出アドレスを独立に設定可能であることを意味する。読出クロックも独立に設定可能であるとより好ましい。また、各メモリ空間の出力を独立にハイインピーダンス状態に設定可能なものであれば一層好ましい。
【0034】
また、「基礎データ」とは、補間演算に必要となるデータであって、元のLUTの格子点データそのものであってもよいし、これに限らず、元のLUTの格子点データに対応する所定のデータであってもよい。
【0035】
【作用】
本発明の上記構成においては、先ず、補間演算に必要となる基礎データを格納する独立制御可能なメモリ空間の数を、補間演算に必要となる基礎データの数よりも少なくする。そして、その少ないメモリ空間に対して、元のLUTの格子点データあるいは格子点データに対応する多数のデータの中から、所定の規則に基づいて所定数分をグループに分けることで、各々のアドレスに複数の基礎データを対応付けてメモリ空間に格納する。
【0036】
そして、実際の補間演算に際しては、各々のアドレスに対応付けられた複数の基礎データの中から、処理対象の画素データに対応する補間演算所用データ数分の基礎データを読み出して多面体内での補間演算を行なう。
【0037】
【発明の実施の形態】
以下、図面を参照して本発明の実施の形態について詳細に説明する。
【0038】
図1は、本発明に係るデータ変換装置の第1実施形態を示すブロック図である。このデータ変換装置1には、外部機器から、一例として、R,G,B、各8ビットの入力デジタル色分解信号が入力され、それを出力系の色成分Y,M,C,Kの各8ビットのデータに色変換する。なお、この入力データや出力データの形式は一例に過ぎず、他の色系列であってもよいし、ビット数Bも“8”に限らない。
【0039】
図示するように、第1実施形態のデータ変換装置1は、入力データに対応する色変換後の出力データを補間演算により求める際に使用される基礎データを出力色ごとに格納するデータ格納部2と、データ格納部2との間データのやり取りをしながら、出力色ごとに、入力画素データに対応する出力画素データを補間演算により求める演算処理部4とを備える。本実施形態の場合、後述するように、テトラ・ハイドラ法による補間演算を行なうので、基礎データは、元となる3次元LUTの格子点データそのものである。
【0040】
演算処理部4は、信号処理系統として、出力系の色成分Y,M,C,Kのそれぞれに対応するように、Y信号生成部4Y,M信号生成部4M,C信号生成部4C,K信号生成部4Kを含む。この演算処理部4は、たとえば中央演算処理装置(CPU;Central Processing Unit )やDSP(Digital Signal Processor)で構成するとよい。
【0041】
データ格納部2は、入力データR,G,Bに対応するように、R軸メモリ回路2R、G軸メモリ回路2G、B軸メモリ回路2Bの3つのメモリ空間に分けられている。そして、各メモリ回路2R,2G,2Bすなわち独立に制御可能な3つのメモリ空間のそれぞれには、3色の入力色信号要素で規定される3次元格子空間(3次元LUT)の各格子点に対応づけられた格子点データに対応する基礎データが、後述(図3〜図5参照)するように、入力色の各軸ごとに所定の基準に従ってグループ化され、そのグループ内の複数の基礎データが1つのアドレス対応付けられて格納され、各軸用のルックアップテーブルLUTを構成するようになっている。
【0042】
これらメモリ回路2R,2G,2Bは、1つの画素に対する色空間変換の処理時間として割り当てられている時間が非常に短時間である場合にも対応可能なように、それぞれ独立にアドレス設定可能かつ読出可能に、つまり独立に読出アクセス可能に構成されている。なお、独立したリードイネーブル(Read enable )端子REもしくはチップセレクト(Chip Select )端子CSを備え、読出しに必要のないメモリ回路の出力をハイインピーダンス状態に設定可能なものを使用するのがよい。
【0043】
データ格納部2と演算処理部4との間は、演算処理部4がデータ格納部2から基礎データを読み出すためにアドレス信号などの制御信号を送るアドレスバス6、およびデータ格納部2から読み出された基礎データを演算処理部4へ送るデータバス8で接続されている。
【0044】
アドレスバス6では、データ格納部2内の個々のメモリ空間(メモリ回路2R,2G,2B)における基礎データの読出位置を設定するアドレス信号、クロック、あるいはチップセレクト信号などの伝送が行なわれる
【0045】
データバス8は、データ変換前の入力データを図示しない外部装置から入力するためや、変換後の出力データを同一または別の外部装置へ出力するためにも用いられる。
【0046】
図2は、上記構成のデータ変換装置1における色データの変換に関する処理手順の概要を示したフローチャートである。
【0047】
第1実施形態の演算処理部4は、データ格納部2に格納されている色変換用のLUT(ルックアップテーブル)の格子点データを用いて、外部機器から入力されたR,G,Bの各信号を、Y,M,C,Kの色データに色変換する際に、テトラ・ハイドラ法(4面体補間法)を用いた補間処理を利用する。
【0048】
このため、画像データR,G,Bが入力されると、演算処理部4は先ず、入力された8ビットのR,G,Bデジタル色分解信号を、画素ごとに、上位mビット(最上位ビット側から連続したm個)と下位nビット(最下位ビット側から連続したn個)に分割する(S100)。そして、演算処理部4は、入力3要素の上位mビットのデータRH,GH,BHに基づいて、入力3要素のR,G,Bデータからなる3次元格子体(3次元LUT)を構成したとき、各格子点で規定される多数の単位格子体(本例では単位立方体)のうちの何れの単位立方体に該当データが含まれるかを決定する(S102)。このステップS100〜S102の処理を単位立方体判定処理という。
【0049】
次に、演算処理部4は、該当する単位立方体の中をさらに6つの4面体に分割し(S104)、入力3要素の下位nビットのデータRL,GL,BLに基づいて何れの4面体に該当データが含まれるかを決定する(S106)。このステップS104〜S106の処理を4面体判定処理という。
【0050】
次に、演算処理部4は、該当する4面体内での補間演算というテトラ・ハイドラ法(4面体補間法)により、入力値(入力された画素データ)に対応する出力値(出力すべき画素データ)を求める(S108)。
【0051】
具体的には、図中右側に示すように、演算処理部4は、先ず3つのメモリ回路2R,2G,3Gのうち、テトラ・ハイドラ法による補間演算処理に必要となる4格子点の基礎データを抽出すべき2つのメモリを特定するアクセスメモリ特定処理を行なう(S108a)。次に、演算処理部4は、入力点を包含する基点の座標値に基づいて、アクセスメモリ特定処理にて特定された同一アドレスのデータ群における補間演算に必要な4格子点を特定し抽出する4格子点特定処理を行なう(S108b)。なお、アクセスメモリ特定処理(S108a)と4格子点特定処理(S108b)とを纏めて、アクセスアドレス特定処理ともいう。
【0052】
演算処理部4は、アクセスメモリ特定処理(S108a)および4格子点特定処理(S108b)と並行して、該当する4面体について、4面体頂点から得られる4つの基礎データ(本例では元の格子点データそのもの)に対する重み係数(乗算係数)である補間係数を算出する補間係数算出処理を行なう(S108c)。そして、演算処理部4は、該当する4面体について、4格子点特定処理(S108b)により得られた基礎データ(格子点データ)と補間係数算出処理(S108c)により得られた補間係数とに基づいて、入力値に対応する出力値Doutを求める補間演算処理を行なう(S108d)。
【0053】
演算処理部4は、上記の一連の処理を、出力色であるY,M,C,Kのそれぞれについて(S112)、全画素について(S100)行なうことで、入力されたRGB色空間の色データをYMCK色空間のデータに変換する。
【0054】
図3〜図5は、出力値の代表値である格子点データを構成するLUTを説明する図である。ここでは、R,G,Bの各軸について、17×17×17=4913個の格子点について、それぞれ対応する変換後のデータを代表値として格納した3次元LUTを元の格子点データとする場合で説明する。本実施形態のデータ格納部2は、入力された色信号R,G,Bに対応する同容量の3つのメモリ空間に、同じ格子点データを持つ。このため、図1に示したように、R,G,Bの各軸に対応するメモリ回路2R,2G,2Bが設けられている。
【0055】
図3〜図10の各(A)は、RGB3次元空間の一部を記したものである。また、図3〜図10の各(B)は、各軸用のメモリ回路2R,2G,2Bのメモリ空間上におけるアドレスと基礎データの関係、すなわち各軸のLUTを示す。なお、図3〜図10の各(B)における表の下部に示した「2次元アドレスの場合のアドレス」の使用方法については、第3実施形態(図18参照)や具体的回路構成の第2例(図20参照)や第3例(図21参照)で説明する。
【0056】
従来技術では、丸で示す格子点位置それぞれ出力値の代表値がLUTとして格納されており、その個々の格子点位置が格子点データを格納するメモリ上のアドレスとなっていた。つまり、前述したように4913個のアドレスが定義されていた。一方、本実施形態では、1つのアドレスに複数の基礎データ(本例では格子点データそのもの)を対応付けてグループ単位で格納(マッピング)する。
【0057】
つまり、任意のアドレスが設定されると、そのアドレスに対応付けて登録されているグループ内の複数の基礎データを纏めてパッキングデータとして出力するようにする。ここで、「複数の基礎データを纏めてパッキングデータとして出力する」とは、複数の基礎データをほぼ同時に並列的に出力することに限らず、その複数の基礎データを時系列的に逐次出力することも含む。どのような形態で複数の基礎データを出力するかは、各軸用のメモリ回路2R,2G,2Bの構成や読出回路の構成による。
【0058】
たとえば、図3(A)に示すように、R軸方向の基礎データを軸に平行に沿って複数のグループに分けて(一塊りにして)R軸メモリ回路2Rに格納することでR軸用のLUTを構成する。太線は基礎データがグループに分けられている(一塊りになっている)ことを示している。つまり、任意のGH,BHの組合せで基礎データ(本例では格子点データそのもの)がアドレスされ、1つのアドレスには17格子分の基礎データを保持していることになる。R軸メモリ回路2R上におけるアドレスと基礎データの関係であるR軸LUTを図3(B)に示す。
【0059】
同様に、図4(A)に示すように、G軸メモリ回路2GにはG軸方向の基礎データを軸に平行に沿って複数のグループに分けて(一塊りにして)格納することでG軸用のLUTを構成する。太線は基礎データがグループに分けられている(一塊りになっている)ことを示している。ここでは任意のRH,BHの組合せでデータはアドレスされ、1つのアドレスには17格子点分の基礎データを保持している。メモリ上におけるアドレスと基礎データの関係であるB軸LUTを図4(B)に示す。
【0060】
同様に、図5(A)に示すように、B軸メモリ回路2BはB軸方向の基礎データを軸に平行に沿って複数のグループに分けて(一塊りにして)格納することでB軸用のLUTを構成する。太線は基礎データがグループに分けられている(一塊りになっている)ことを示しており、ここでは任意のRH,GHの組合せでデータはアドレスされ、1つのアドレスには17格子点分の基礎データを保持している。メモリ上におけるアドレスと基礎データの関係であるB軸LUTを図5(B)に示す。
【0061】
演算処理部4における補間処理の際には、メモリ回路2R,2G,2B内に纏めて保持されている上述のようなデータ列の中から、入力データに適合する2つの基礎データを読み出す。この方式を用いると、入力データR,G,Bからある1色への変換に際し、LUTの容量は49キロバイトで実現可能となり、補間処理を用いない方式における16メガバイトと比較すると大幅な容量削減が可能であるというテトラ・ハイドラ法の利点を享受できるとともに、使用するメモリ数(メモリ空間数)や同時に読出アクセスするメモリ数を従来構成のものよりも削減することが可能となる。
【0062】
図6は、演算処理部4における単位立方体判定処理(図2のステップS100〜S102)を説明する図であって、出力値の代表値である格子点データを構成する元の3次元LUTと入力データとの関係を説明する図である。ここで図6(A)は、LUTの3次元空間での概念図を示し、図6(B)は、各8ビットのRGB入力信号とそれぞれの信号の上位4ビット信号が対応する3次元LUT上での位置関係を示す。
【0063】
図6(A)に示すように、R,G,Bの各軸における取り得る値の範囲を複数に分割する。ここでは各軸を16に分割した例を示している。このような分割によって得られる格子点をアドレスとし、その格子点における変換後の値(代表値)を対応付けることによってLUTを構成する。したがって、この例では、17×17×17=4913個の格子点について、それぞれ対応する変換後のデータを代表値として格納した3次元LUTを作成することができる。
【0064】
演算処理部4は、入力された8ビットのR,G,Bデジタル色分解信号を上位mビット(最上位ビット側から連続したm個)と下位nビット(最下位ビット側から連続したn個)に分割する。たとえば、演算処理部4は、m=n=4とし、入力されたR,G,Bを、それぞれ上位4ビットのRH,GH,BHと下位4ビットのRL,GL,BLに分割する。もちろん、m,nは、これ以外であってもかまわない。なお、“m+n”は、入力データのビット数8と等しいことが好ましい。
【0065】
図6(B)に示すように、上位4ビットデータの組合せ値で形成される単位立方体の中に、任意の入力R,G,Bの8ビットデータ(入力画素データ)の組合せ値の空間位置P22が包含されるので、上位の4ビットデータRH,GH,BHで示す空間位置P21を基点とした単位立方体(単位格子体)で入力8ビットデータを包含する単位立方体を特定することが可能となる。
【0066】
単位立方体を構成する各頂点は、空間位置P21を基準に生成可能である。すなわち、(RH,GH,BH)を基点として、(RH+1,GH,BH),(RH+1,GH+1,BH),(RH,GH+1,BH),(RH,GH,BH+1),(RH+1,GH,BH+1),(RH,GH+1,BH+1) ,(RH+1,GH+1,BH+1)が、この単位立方体の頂点の座標となる。本実施形態の場合には、これらの頂点の座標は、元ととなる3次元LUTの格子点の座標に一致する。
【0067】
演算処理部4は、この入力R,G,Bの8ビットデータの組合せ値に対応する出力値を、近傍の格子点データを、つまり、図6(B)に示す単位立方体の頂点の座標のデータを基礎データとして使って、テトラ・ハイドラ法(4面体補間法)により求める。
【0068】
図7は、演算処理部4における4面体判定処理(図2のステップS104〜S106)を説明する図である。先にも述べたように、本実施形態の演算処理部4は、入力デジタル色分解信号R,G,Bの組合せ値に対応する出力信号YMCKのそれぞれを、データ格納部2に格納されている基礎データ(格子点データ)に基づいてテトラ・ハイドラ法による補間演算により求める。
【0069】
図7は、入力データが包含される単位立方体と、この単位立方体を6つに分割して得られる4面体との関係を示している。図6(B)に示した単位立方体は、さらに図7に示すように、同体積の6つの単位4面体に分割可能である。
【0070】
入力R,G,Bの空間位置P22がどの4面体に包含されるかは、下位のビットデータRL,GL,BLの大小関係から、図7下部に示す表1のように特定可能である。また、データ選択部16がアクセスすべきLUTとアクセスアドレスも、表1のように特定可能である。
【0071】
なお、表1において、X,Y,Zは3次元の入力データを一般化して示したものであり、本実施形態では、X=R,Y=G,Z=Bである。基点A,Bに示す“17”は3次元LUTの各軸を分割して得られる格子点数である。この表1は、入力RGBが各8ビットであり、出力がYMCKであり、1色当りその上位4ビット分に相当する17×17×17=4913個のデータでLUTを構成する場合のアクセスアドレス算出式を記したものである。
【0072】
たとえば、下位ビットデータ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に属する。
【0073】
同様に、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に属する。
【0074】
演算処理部4は、このような判定(4面体判定)を行なうことにより、入力R,G,Bの3次元LUT上における近傍4格子点を特定する。すなわち、先ず、下位ビットデータRL,GL,BLに基づいて入力データの属する4面体を特定する。この結果を受けて、特定された4面体に対応する2つのLUTを特定し、入力データを包含する単位立方体を特定する上位ビットデータRH,GH,BHと図7の表1に示したアドレス計算式に従って前記2つのLUTへのアクセスアドレスを算出する。そして、演算処理部4は、前記2つのLUTの前記求めたアクセスアドレスから各々2つの基礎データを抽出することで、近傍4格子点の基礎データを取得する。
【0075】
図8は、演算処理部4における出力値算出処理(図2のステップS108)の第1段階の処理であるアクセスメモリ特定処理(S108a)と4格子点特定処理(S108b)を説明する図であって、単位立方体を分割して得られる各4面体の形状と、それを構成する頂点の関係を示した図である。4面体1は、α、α’、β、β’の頂点から構成される。ここで、αとα’は、GおよびB座標上では同じ空間位置であり、図3に示したR軸LUTから一括で抽出することが可能である。一方、残りのβおよびβ’はRおよびG座標上では同じ空間位置であり、図4に示したB軸LUTから一括で抽出することが可能である。
【0076】
同様にして、4面体2の場合は、R軸LUTとG軸LUTから所望の基礎データが得られる。4面体3の場合は、B軸LUTとG軸LUTから所望の基礎データが得られる。4面体4の場合は、B軸LUTとR軸LUTから所望の基礎データが得られる。4面体5の場合は、G軸LUTとR軸LUTから所望の基礎データが得られる。4面体6の場合は、G軸LUTとB軸LUTから所望の基礎データが得られる。
【0077】
そこで、演算処理部4は、4面体判定処理の判定結果を受けて、図7の表1に示した選択条件に従って、3つのメモリ回路2R,2G,2Bの中から、テトラ・ハイドラ法による補間演算に必要となる4格子点の基礎データを抽出すべき2つのメモリ(つまり4格子点を含むデータ群を格納した2つのLUT)を特定するアクセスメモリ特定処理を行なう。
【0078】
具体的には、演算処理部4は、入力データを包含する単位立方体を特定する上位ビットデータRH,GH,BHつまり図6(B)の基点P21の座標値と図7の表1に示したアクセスアドレス式とに従って前記2つのLUTへのアクセスアドレスを算出することでテトラ・ハイドラ法による補間演算に必要となる4格子点を含むデータ群を特定する。この後、演算処理部4は、入力点を包含する基点の座標値(RH,GH,BH)に基づいて、同一アドレスのデータ群における、テトラ・ハイドラ法による補間演算に必要となる4格子点を特定し抽出する4格子点特定処理を行なう。
【0079】
図9〜図15は、具体的なLUTアクセスの例を説明する図である。ここで、図9は、入力データと3次元LUT空間上のデータの位置関係を示した図である。図10〜図15は、それぞれ対応する4面体の頂点とLUTのデータ構造の相関を示した図である。
【0080】
図9において、格子点の数をR,G,Bそれぞれに3個、合計で3×3×3=27個のデータに簡略化して示す。任意の各々8ビットのRGB値(入力データ)が示す3次元空間上での位置が図9の位置P121であるとする。この場合、入力値の上位4ビット値から入力点が包含される立方体の1つの頂点は図9の位置P122に定まる。座標値は、(RH,GH,BH)=(0,1,0)であり、この位置P122を基点座標と定義する。
【0081】
以下、この入力点が単位立方体中の6つの4面体それぞれに属す場合に分けてLUTアクセスを説明する。図示した例では、入力位置P121は、3次元LUTのデータ群のうち、基点P122(0,1,0)で定まる“3,4,6,7,12,13,15,16”のデータの座標位置で囲まれた単位立方体の中に包含される。
【0082】
演算処理部4は、上位4ビットデータの組合せ値の空間位置P21を基点にして該当する単位立方体の各頂点の基礎データ(格子点データ)の中から、処理対象画素に対応する4個の基礎データを抽出する。
【0083】
たとえば、入力点が図10に示す頂点で構成される4面体1に属すると判定された場合は、演算処理部4は、R軸LUT(R軸メモリ回路2R)とB軸LUT(B軸メモリ回路2B)にアクセスして、αとα’をR軸LUT(R軸メモリ回路2R)から、βとβ’をB軸LUT(B軸メモリ回路2B)から抽出する。
【0084】
具体的には、演算処理部4は、図7の表1の基点Aに基づき、R軸LUTへのアクセスアドレスADRをGH+3BHで算出する。ここではアクセスアドレスADRは“1”であり、そのアドレス1のデータ群を抽出する。次に、演算処理部4は、抽出したデータ群のうち、基点座標P122(0,1,0)のR軸成分は“0”なので、データ群中の0番目(3)と1番目(4)が所望の基礎データであると決定する。ここでは、図10における表の下部に示した「2次元アドレスの場合のアドレス」で示す0番目(3)の基礎データをα、1番目(4)の基礎データをα’とする。
【0085】
同様に、演算処理部4は、図7の表1に基づき、B軸LUTへのアクセスアドレスADBを(RH+1)+3(GH+1)で算出する。ここではアクセスアドレスADRは“7”であり、そのアドレス7のデータ群を抽出する。次に、演算処理部4は、抽出したデータ群のうち、基点座標P122(0,1,0)のB軸成分は“0”なので、データ群中の0番目(7)と1番目(16)が所望の基礎データであると決定する。ここでは、0番目(7)の基礎データをβ、1番目(16)の基礎データをβ’とする。
【0086】
こうすることで、演算処理部4は、4面体補間演算に必要となる所望の4点のデータを抽出することができる。演算処理部4は、このようにして抽出した4点のデータを、それぞれD1=α,D2=α’,D3=β,D4=β’とする。
【0087】
なお、他の4面体に属する場合も、演算処理部4は、図7の表1に基づいてアクセスアドレスADR,ADG,ADBを計算して、計算したそれぞれ2つのLUTにアクセスしてデータ群を抽出し、この抽出したデータ群の中から、基点座標に準じた所望の2つの基礎データを2つのLUTごとに抽出する。
【0088】
たとえば、図11に示すように、入力点が4面体2に属する場合は、演算処理部4は、R軸LUT(R軸メモリ回路2R)のアクセスアドレスADR(GH+3BH=1)から基点座標P122(0,1,0)に対応する0番目(3)の基礎データをα、1番目(4)の基礎データをα’として抽出する。同様に、演算処理部4は、G軸LUT(G軸メモリ回路2G)のアクセスアドレスADG((RH+1)+3(BH+1)=4)から基点座標P122(0,1,0)に対応する1番目(13)の基礎データをβ、2番目(16)の基礎データをβ’とする。
【0089】
図12に示すように、入力点が4面体3に属する場合は、演算処理部4は、B軸LUT(B軸メモリ回路2B)のアクセスアドレスADB(RH+3GH=3)から基点座標P122(0,1,0)に対応する0番目(3)の基礎データをα、1番目(12)の基礎データをα’として抽出する。同様に、演算処理部4は、G軸LUT(G軸メモリ回路2G)のアクセスアドレスADG((RH+1)+3(BH+1)=4)から基点座標P122(0,1,0)に対応する1番目(13)の基礎データをβ、2番目(16)の基礎データをβ’とする。
【0090】
図13に示すように、入力点が4面体4に属する場合は、演算処理部4は、B軸LUT(B軸メモリ回路2B)のアクセスアドレスADB(RH+3GH=3)から基点座標P122(0,1,0)に対応する0番目(3)の基礎データをα、1番目(12)の基礎データをα’として抽出する。同様に、演算処理部4は、R軸LUT(R軸メモリ回路2R)のアクセスアドレスADR((GH+1)+3(BH+1)=5)から基点座標P122(0,1,0)に対応する0番目(15)の基礎データをβ、1番目(16)の基礎データをβ’とする。
【0091】
図14に示すように、入力点が4面体5に属する場合は、演算処理部4は、G軸LUT(G軸メモリ回路2G)のアクセスアドレスADG(RH+3BH=0)から基点座標P122(0,1,0)に対応する1番目(3)の基礎データをα、2番目(6)の基礎データをα’として抽出する。同様に、演算処理部4は、R軸LUT(R軸メモリ回路2R)のアクセスアドレスADR((GH+1)+3(BH+1)=5)から基点座標P122(0,1,0)に対応する0番目(15)の基礎データをβ、1番目(16)の基礎データをβ’とする。
【0092】
図15に示すように、入力点が4面体6に属する場合は、演算処理部4は、G軸LUT(G軸メモリ回路2G)のアクセスアドレスADG(RH+3BH=0)から基点座標P122(0,1,0)に対応する1番目(3)の基礎データをα、2番目(6)の基礎データをα’として抽出する。同様に、演算処理部4は、B軸LUT(B軸メモリ回路2B)のアクセスアドレスADB((RH+1)+3(GH+1)=7)から基点座標P122(0,1,0)に対応する0番目(7)の基礎データをβ、1番目(16)の基礎データをβ’とする。
【0093】
図16に示す表2は、演算処理部4における出力値算出処理(図2のステップS108)の第2段階の処理である補間係数算出処理(S102c)と補間演算処理(S102d)を説明する図である。この表2は、テトラ・ハイドラ法による補間演算にて必要となる補間係数の算出式を示している。表2から分かるように、6つの4面体ごとに計算式が異なる。
【0094】
演算処理部4は、4面体判定処理(図2のステップS104〜S106)の結果を受けて、図16の表2に基づき、入力値が包含される4面体に応じて補間係数の算出に用いる式を切り替え、その入力値が包含される4面体ごとに定められた計算式に従って、その4面体を構成する4格子点と下位ビットデータRL,GL,BLとに基づいて補間係数W1,W2,W3,W4を算出する。この4面体補間演算処理は、従来のデータ変換装置における処理と同様である。
【0095】
そして、演算処理部4は、公知の4点補間演算を用いて、このようにして求めた補間係数W1,W2,W3,W4と第1段階の4格子点特定処理により抽出した入力点に対応する4面体頂点の基礎データ(元々は格子点データ)D1,D2,D3,D4とに基づいて最終出力値Doutを算出するというテトラ・ハイドラ法による補間演算処理を行なう。たとえば、次式(1)に従って、最終出力値Doutを算出する。なお、式(1)では1次式補間で出力値を求めているが、これに限らず、2次式やその他の高次の補間演算式を利用してもよい。
【数1】

Figure 2004112523
【0096】
この第1実施形態の構成によれば、入力データに対応する出力データを4面体補間演算により求めるに際して、格子点データ保持用のメモリ(空間)の数を、4面体補間演算に必要となる4頂点に相当する4個ではなく3個で構成したので、結果的に、同じデータのメモリを4倍持つ必要がなく3倍ですむため、同じ機能を達成するために必要なメモリの総容量が従来の3/4になる。
【0097】
つまり、従来は、同容量の独立駆動可能なメモリ(空間)を補間演算所用データ数だけ備える必要があったのと異なり、補間演算に必要となる格子点データ数とメモリ空間の数を同じにしなければならないという従来の制約から開放され、たとえば、4点補間の場合は、格子点データ保持用のメモリを4倍持つ必要がなく4倍未満(たとえば3倍)で済むなど、同じ機能を達成するために必要なメモリの総容量や独立制御可能なメモリ空間数を低減することができる。加えて、同時アクセスのメモリ空間数を低減することができるので、消費電力や放射ノイズを低減することもできる。
【0098】
たとえば、従来は1つの補間演算用データを抽出するために17×17×17個、つまり4,193バイト必要であり、4点補間の場合は同時に4格子点のデータを抽出するために、その4倍、つまり、4913バイト×4個=19,652バイトを必要とした。しかし、本実施形態の構成では、その4分の3の容量のメモリで同時に4格子点のデータを抽出することが可能となる。
【0099】
補間演算回路は、従来の構成とほぼ同様のものを使用することができるので、全体としての回路変更はメモリ回路周りだけとなるので、上記構成の実回路への適用も容易である。
【0100】
図17は、本発明に係るデータ変換装置の第2実施形態を示すブロック図である。この第2実施形態の構成は、R,G,Bの3次元入力の場合における上述の補間演算をリアルタイムで高速に行なうようにした具体的な回路構成の第1例を示すものである。
【0101】
図示するように、第2実施形態の演算処理部4におけるY信号生成部4Yは、第1実施形態の演算処理部4における単位立方体判定処理(図2のステップS100〜S102)およびアクセスメモリ特定処理(同S108a)を実行するアドレス生成部10と、4面体判定処理(同S104〜S106)を実行する4面体判定部14と、4格子点特定処理(S108b)を実行するデータ選択部16と、補間係数算出処理(S108c)を実行する補間係数生成部20と、補間演算処理(S108d)を実行する補間処理部22とを備える。
【0102】
アドレス生成部10は、本発明の単位格子体判定部とアドレス設定部の両機能を備える。また、4面体判定部14は、本発明の単位格子体判定部の一例である。また、データ選択部16は、本発明の基礎データ抽出部の一例である。また、補間係数生成部20と補間処理部22とにより、本発明の補間演算処理部が構成される。
【0103】
なお、図では省略して示しているが、M信号生成部4M、C信号生成部4C、およびK信号生成部4Kも、Y信号生成部4Yと同様の構成となっている。
【0104】
アドレス生成部10は、画像データR,G,Bが入力されると、その入力データR,G,Bを上位ビットデータRH,GH,BH(本例では上位4ビット;纏めてDHとする)と下位ビットデータRL,GL,BL(本例では下位4ビット;纏めてDLとする)に分割し、その内の上位4ビットのデータDHに基づいて、図6(B)や図9に示したように、3次元LUTにおける入力点が包含される単位立方体の位置P22(図9の基点P122に相当)を特定し、この単位立方体を特定する基点を示す座標情報(RH,GH,BH)をデータ選択部16に入力する。
【0105】
また、アドレス生成部10は、分割したデータの内の下位ビットデータDLを4面体判定部14と補間係数生成部20とに入力する。4面体判定部14は、アドレス生成部10から入力された下位ビットデータDLに基づいて、単位立方体を分割する6つの4面体のうちの入力値が含まれる4面体を特定し、この特定した4面体を示す情報を判定結果として、アドレス生成部10、データ選択部16、および補間係数生成部20に入力する。
【0106】
アドレス生成部10は、4面体判定部14による4面体判定処理結果を受けて、図7の表1に示した選択条件に従って、3つのメモリ回路2R,2G,2Bの中から、テトラ・ハイドラ法による補間演算に必要となる4格子点の基礎データを抽出すべき2つのメモリを特定し、R軸読出クロックCKR,G軸読出クロックCKG,B軸読出クロックCKBを独立に制御する(具体的には、読出アクセス読出な回路へのリードクロックを停止する)。これは、ある単位時間に多大な数のメモリに同時アクセスするということは消費電力の増大、放射ノイズの増大をも招き、環境の観点からも改善が望まれるからである。
【0107】
すなわち、本実施形態の構成では、処理対象の画素データについて同時に読出アクセスすべき、補間演算に必要となる4格子点の基礎データを含むメモリ回路は、3つのメモリ回路のうちの何れか2つであるので、メモリ数を従来の4つから3つに低減したことによる消費電力や放射ノイズの低減効果に加えて、同時アクセス不要なメモリ回路へのリードクロックの供給を停止することで、消費電力や放射ノイズをなお一層低減する。
【0108】
また、アドレス生成部10は、入力データを包含する単位立方体を特定する上位ビットデータRH,GH,BHつまり図6(B)の基点P21の座標値と図7の表1に示したアクセスアドレス式とに従って算出したアクセスアドレスADR,ADG,ADBを、アクセスすべきメモリ回路ごとに設定する。こうすることで、メモリ回路からのデータ読出時には、3つのメモリ回路2R,2G,2Rのうち、テトラ・ハイドラ法による補間演算に必要となる4格子点の基礎データを含むメモリ回路のみがアクティブになり、そのアクティブなメモリ回路に設定されたアドレスから一群のデータ(パッキングデータPR,PG,PRのうちの任意の2組)がデータ選択部16に入力されるようになる。
【0109】
たとえば、メモリ回路2R,2G,2Bとして、1つのアドレスが設定されると、それに対応する複数のデータを並列的に出力可能なものを使用する。そして、アドレス入力に対しては、アクセスアドレスADR,ADG,ADBを設定する。たとえば、図3〜図10の各(B)にて、アドレス欄の値をアクセスアドレスADR,ADG,ADBに設定することで、各メモリ回路2R,2G,2Gからは、基点座標(RH,GH,BH)に対応する2つの基礎データを含む一群のデータの全てが並列的に出力される。
【0110】
また、アドレス生成部10は、各メモリ回路のチップセレクト端子CSへの入力であるR軸メモリ制御信号CTR,G軸メモリ制御信号CTG,B軸メモリ制御信号CTBを独立に制御する(具体的には、ロー/ハイに切り替える)ことで、同時読出しが必要な2つのメモリ回路をアクティブに、不要な1つのメモリ回路をインアクティブ(ハイインピーダンス状態)にする。こうすることで、消費電力の低減を図ることができるとともに、メモリ回路の後段の回路をコンパクトにすることもできる。
【0111】
次に、データ選択部16は、上位4ビットデータの組合せ値の空間位置P21を基点にして該当する単位立方体の各頂点のデータ(格子点データ)の中から必要なものを抽出する。たとえば、データ選択部16は、テトラ・ハイドラ法による補間演算に必要となる4格子点の基礎データを含むメモリのみから入力された所定アドレスのデータ群すなわちパッキングデータPR,PG,PRのうちの任意の2組をデータ格納部2から受け取ると、4面体判定部14による4面体判定処理結果とアドレス生成部10からの入力点を包含する基点の座標値(RH,GH,BH)とに基づいて、2組のパッキングデータの中から、テトラ・ハイドラ法による補間演算に必要となる4格子点の基礎データD1,D2,D3,D4を抽出し、この抽出した4つのデータD1,D2,D3,D4を補間処理部22に入力する。
【0112】
なお、図10〜図15から分かるように、メモリから出力されたパッキングデータPR,PG,PBのうちの2つに含まれるデータ(α,α’とβ,β’)が、D1,D2,D3,D4の何れに対応するのかは、入力点の属する4面体によって異なる。データ選択部16は、入力値に対応する所用の2つのメモリから入力されたパッキングデータPR,PG,PBのうちの2つに含まれるデータ(α,α’とβ,β’)が、補間演算処理におけるD1,D2,D3,D4の何れとすべきかを、4面体判定部14による4面体判定処理結果に基づいて図7の表1に示した選択条件に従って判断する。
【0113】
これと並行して、補間係数生成部20は、4面体判定部14による4面体判定処理の結果を受けて、図16の表2に基づき、6つの4面体のうち入力値が包含される4面体に応じた計算式に従って、その4面体を構成する4格子点と下位ビットデータRL,GL,BLとに基づいて補間係数W1,W2,W3,W4を算出し、算出した補間係数W1,W2,W3,W4を補間処理部22に入力する。
【0114】
補間処理部22は、公知の4点補間演算を用いて、補間係数生成部20から入力された補間係数W1,W2,W3,W4とデータ選択部16から入力されたデータD1,D2,D3,D4(4頂点の基礎データ)とに基づいて最終出力値Y,M,C,Kを、それぞれ算出する。
【0115】
この第2実施形態の構成によれば、LUTと補間演算を用いたデジタル色分解信号から他の色成分のデジタル色分解信号への変換を行なう際にテトラ・ハイドラ法を用いる場合は、従来は4つのメモリを必要としていたものが、第1実施形態と同様に、3つのメモリで4面体補間演算処理を実現することができる。また、パッキングした基礎データの中から所望の基礎データを抽出するための付加回路の規模はさほど大きくないので、補間回路の規模や複雑さを増すことなく、データ変換装置1を実現することができる。
【0116】
加えて、従来は補間演算に用いられるデータを抽出する際に1色の出力値の算出につき4つのメモリにアクセスする必要があったが、本実施形態の構成によれば、メモリのチップセレクト端子CS(もしくはリードイネーブル端子RE)を制御することで、3つのメモリ回路2R,2G,3Gのうち、テトラ・ハイドラ法による補間演算に必要となる4格子点の基礎データを含むメモリのみをアクティブにするので、従来の半分の2つのメモリにアクセスするだけでよく、システムの消費電力や放射ノイズを低減することもできる。
【0117】
すなわち、LUTと補間演算を用いたデジタル色分解信号から他の色成分のデジタル色分解信号への変換を行なう際に、少ないメモリ資源で色データ変換を実現することができるという効果がある。また、従来は補間演算に用いられるデータを抽出する際に1色の出力値の算出につき4つのメモリに同時にアクセスする必要があったが、本実施形態の構成では半分の2つだけでよく、システムの消費電力や放射ノイズの低減効果もある。
【0118】
図18は、本発明に係るデータ変換装置の第3実施形態を示すブロック図である。この第3実施形態の構成の基本は第2実施形態のものと同じである。第2実施形態の構成との相違点は、第2実施形態のデータ選択部16を備えておらず、このデータ選択部16の機能をアドレス生成部10が兼用する構成としている点にある。つまり、第3実施形態のアドレス生成部10は、本発明の基礎データ抽出部の機能も備える。
【0119】
この変更に応じて、4面体判定部14は、アドレス生成部10から入力された下位ビットデータDLに基づいて、単位立方体を分割する6つの4面体のうちの入力値が含まれる4面体を特定し、この特定した4面体を示す情報を判定結果として、アドレス生成部10、補間係数生成部20、およびに補間処理部22に入力する。すなわち、3次元LUTにおける入力点が包含される単位立方体の位置を特定し、その情報をデータ選択部16に伝える。
【0120】
また、第3実施形態のメモリ回路2R,2G,2Bは、アドレス生成部10により設定されたアドレスADR,ADG,ADBごとに一群の全データを纏めてパッキングデータPR,PG,PRとして出力する形態のものではなく、一群のうちの任意の2つのアドレスも設定可能で、それら2つを纏めて出力可能なものを使用する。
【0121】
つまり、第1実施形態や第2実施形態と同様に、1つのアドレスADR,ADG,ADBごとに複数の格子点データをマッピングするが、読出しに際しては、テトラ・ハイドラ法による補間演算に必要となる4格子点を含む各軸のメモリに対して、2つの基礎データ(α,α’もしくはβ,β’)のみを纏めて出力させる。
【0122】
具体的には、アドレス空間を2次元状に制御可能なものを使用し、一方のアドレス軸に対しては、第1実施形態や第2実施形態と同様にアクセスアドレスADR,ADG,ADBを設定する。そして、他方のアドレス軸に対しては、X軸方向のアドレス設定のためのアクセスアドレスADXR,ADXG,ADXBにより、入力値を包含する単位立方体を特定する基点座標(RH,GH,BH)に対応する値を設定することで、4格子点特定処理を行なう。
【0123】
たとえば、図3〜図10の各(B)にて、アドレスの欄の値をアクセスアドレスADR,ADG,ADBに設定し、データ欄の下部に示した「2次元アドレスの場合のアドレス」のうち基点座標(RH,GH,BH)に対応する値(0,1,…のうちの連続した2つのアドレス)をX軸方向のアドレス設定のためのアクセスアドレスADXR,ADXG,ADXBに設定する。こうすることで、メモリ回路2R,2G,2Gのうちの2つからは、それぞれ基点座標(RH,GH,BH)に対応する2つの基礎データが並列的に出力される。
【0124】
補間処理部22は、入力値に対応する所用の2つのメモリから入力された各2つの基礎データ(α,α’とβ,β’)について、補間演算処理におけるD1,D2,D3,D4の何れとすべきかを、4面体判定部14による4面体判定処理結果に基づいて図7の表1に示した選択条件に従って判断する。これは、図10〜図15から分かるように、メモリから出力された各2つの基礎データ(α,α’とβ,β’)が、D1,D2,D3,D4の何れに対応するのかは、入力点の属する4面体によって異なるからである。
【0125】
補間処理部22は、公知の4点補間演算を用いて、補間係数生成部20から入力された補間係数W1,W2,W3,W4と、入力値に対応する所用の2つのメモリから入力された各2つの基礎データ(α,α’とβ,β’)に対応するデータD1,D2,D3,D4とに基づいて最終出力値Y,M,C,Kを、それぞれ算出する。
【0126】
この第3実施形態の構成によれば、第2実施形態と構成が異なるものの、基本的な作用は第2実施形態と同様である。したがって、第1実施形態と同様に、3つのメモリで4面体補間演算処理を実現することができることに加えて、メモリのチップセレクト端子CS(もしくはリードイネーブル端子RE)を制御することで、システムの消費電力や放射ノイズを低減することもできる。
【0127】
図19は、データ格納部2とデータ選択部16の具体的な構成の第1例を示すブロック図である。ここでは、上記の第1〜第3実施形態と同様に、17×17×17の3次元LUTに対応するR軸メモリ回路2Rについて詳細を示し、G軸メモリ回路2GやB軸メモリ回路2Bについては図示を省略する。
【0128】
この第1例は、上記第1および第2実施形態に適用可能な構成のものであって、「処理対象の画素データに対応する基礎データを含むアドレスの全ての基礎データを纏めてパッキングデータとして読み出し、その後に、処理対象の画素データに対応する補間演算所用データ数分の基礎データを抽出する」に際して、対象アドレスの全基礎データをほぼ同時に並列的にメモリ回路から出力する構成のものである。
【0129】
すなわち、図示するように、R軸メモリ回路2Rは、それぞれ8ビットの基礎データを格納するメモリセル30が行列状に配されてX−Yアドレス型のメモリコア部が構成されている。そして、このメモリコア部に対して、X方向のアドレスを設定するXアドレス設定回路32と、Y方向のアドレスを設定するYアドレス設定回路34と、所定のYアドレスに応じた各X方向のメモリセル30からの基礎データを受けて外部の回路(本例ではデータ選択部16)に出力する複数の出力バッファ36とが設けられている。メモリセル30の出力は、Xアドレスごとに共通に対応する出力バッファ36に接続されるようになっている。
【0130】
Xアドレス設定回路32には、全てのXアドレスをアクティブにするアドレス制御信号ADXRが入力される。一方、Yアドレス設定回路34には、アドレス生成部10からのアクセスアドレスADRが入力される。上記実施形態で説明したように、このアクセスアドレスADRは、処理対象の画素データが含まれる4面体に応じたアドレス値が設定される。
【0131】
また、R軸メモリ回路2Rのチップセレクト端子CSには、アドレス生成部10からのR軸メモリ制御信号CTRが入力されており、R軸メモリ回路2Rは、テトラ・ハイドラ法による補間演算にこのR軸メモリ回路2Rが保持している基礎データを必要とする場合にはアクティブに設定され、不要な場合にはインアクティブに設定される。
【0132】
個々のメモリセル30には基礎データを読み出すための読出クロックCKが入力される。本例においては、1つの読出クロックCKにより各メモリセル30からパラレルでビットデータを読出し出力バッファ36に入力する構成のものとする。なお、各メモリセル30からシリアルでビットデータを読み出す構成としてもよい。この場合、8ビット分を読み出すためには、8個の読出クロックCKをメモリセル30に入力すればよい。
【0133】
なお、個々のメモリセル30としては、出力をハイインピーダンス状態(ディセーブル;disenable )に切替設定することが可能な3ステート型のものを用いる。この3ステート型のメモリセル30の図示しない出力イネーブル(enable)端子には、Yアドレス設定回路34からのアドレス設定信号がX方向(すなわち同一アドレスラインのメモリセル30)に共通に印加されている。そして、メモリセル30は、アドレス設定信号がアクティブのときには能動状態(イネーブル)となりメモリセル30に保持している基礎データを出力バッファ36に向けて出力する一方で、アクティブのときには出力端子がハイインピーダンス状態(ディセーブル)となる。こうすることで、後段の出力バッファ36との間にデータセレクタを設ける必要がなく、回路構成がコンパクトになる。
【0134】
出力バッファ36としては、出力をハイインピーダンス状態(ディセーブル;disenable )に切替設定することが可能な3ステート型のものを用いる。この3ステート型の出力バッファ36の出力イネーブル(enable)端子OEには、チップセレクト端子CSからの出力イネーブル信号(実質的にR軸メモリ制御信号CTRと同じ)が印加されている。たとえば、出力バッファ36は、イネーブル信号がハイ(High)のときには能動状態(イネーブル)となりメモリセル30から受け取った基礎データをそのまま出力する一方で、ロー(Low )のときには受け取った信号状態に拘わらずハイインピーダンス状態(ディセーブル)となる。
【0135】
すなわち、出力バッファ36は、R軸メモリ制御信号CTRによりR軸メモリ回路2Rがアクティブに設定されている場合には、Yアドレス設定回路34により設定されたYアドレスの全Xアドレスの基礎データをほぼ同時に出力しパッキングデータPRとしてデータ選択部16に入力する。一方、R軸メモリ制御信号CTRによりR軸メモリ回路2Rがインアクティブに設定されている場合には、各出力バッファ36の出力がハイインピーダンス状態に設定される。
【0136】
このような構成のR軸メモリ回路2Rによれば、補間演算に必要な基礎データを含む同一ライン(X方向)の複数の基礎データの全てをほぼ同時に読み出すことができるので、実際の補間演算に必要のない基礎データを読み出すことになるが、処理速度低下の問題は生じない。ただし、同時に読出アクセスするメモリセル数が増えるので、消費電力や放射ノイズのアップが懸念される。
【0137】
図示しない、G軸メモリ回路2GやB軸メモリ回路2Bも、R軸メモリ回路2Rと同様の構成となっており、それぞれには、対応するアクセスアドレスADG,ADBやメモリ制御信号CTG,CTBが入力される。
【0138】
また、データ選択部16は、R軸メモリ回路2Rの各出力バッファ36から出力された基礎データをそれぞれ受け取り保持する複数(LT0〜LT16)のラッチ回路40と、複数のラッチ回路40の何れか2つからの基礎データを受け取り、この受け取った2つの基礎データの出力先を切り替えるデータセレクタ42とを備えている。複数のラッチ回路40とデータセレクタ42とは、R軸系統、G軸系統、およびB軸系統の分だけ設けられる。図では、G軸系統およびB軸系統を省略して示しているが、R軸系統と同様の回路構成とされる。
【0139】
またデータ選択部16は、R軸系統、G軸系統、およびB軸系統の各データセレクタ42の一方の出力端子からの基礎データ(αまたはβ)を受け取り、その出力先を切り替えるデータセレクタ44と、R軸系統、G軸系統、およびB軸系統の各データセレクタ42の他方の出力端子からの基礎データ(α’またはβ’)を受け取り、その出力先を切り替えるデータセレクタ46と、ラッチ回路40およびデータセレクタ42,44,46を制御する出力切替回路48とを備えている。
【0140】
個々のラッチ回路40には、ラッチクロックLCKが共通に入力されており、R軸メモリ回路2Rからの基礎データの送出に合わせた所定のタイミングで、その基礎データを同時に取り込み保持する。なお、各メモリセル30からシリアルでビットデータを読み出す構成とする場合、ラッチ回路40はシリパラ変換機能を備えたものとする。
【0141】
また、個々のラッチ回路40の出力イネーブル(enable)端子OEには、出力切替回路48からの制御信号CT1が入力されており、複数のラッチ回路40のうち隣接する2つの出力のみが選択的にアクティブとなるように設定される。
【0142】
データセレクタ42は、2つの入力端子IN1,IN2と2つの出力端子OUT1,OUT2とを備え、出力切替回路48からの制御信号CT2が入力される構成となっている。そして、ラッチ回路40の出力のうち、偶数番目(0を含む)が入力端子IN1に入力され、奇数番目が入力端子IN2に入力されるように接続されている。
【0143】
データセレクタ42は、制御信号CT2がローLのときには入力されたデータを直列的に出力する、すなわち、入力端子IN1のデータ(ラッチ回路40の偶数番目のデータ)を出力端子OUT1へ、入力端子IN2のデータ(ラッチ回路40の奇数番目のデータ)を出力端子OUT2へ出力する一方、制御信号CT2がハイHのときには入力されたデータを交差的に出力する、すなわち、入力端子IN1のデータを出力端子OUT2へ、入力端子IN2のデータを出力端子OUT1へ出力する。
【0144】
データセレクタ44,46はともに、3つの入力端子IN1,IN2,IN3と2つの出力端子OUT1,OUT2とを備え、出力切替回路48からの制御信号CT31,CT32、CT33がデータセレクタ44へ、制御信号CT41,CT42,CT43がデータセレクタ46へ入力される構成となっている。
【0145】
データセレクタ44,46は、制御信号CT31,CT32,CT33もしくはCT41,CT42,CT43の組合せ状態に応じて、3つの入力端子IN1,IN2,IN3のデータの出力先を切り替える。
【0146】
たとえば、制御信号CT31(CT41),CT32(CT42)により、3つの入力端子IN1,IN2,IN3のうちの2つを選択し、制御信号CT33(CT43)により、データセレクタ42の制御信号CTデータ格納部2と同様に、その選択した2つの出力先を決める。
【0147】
制御信号CT31(CT41),CT32(CT42)については、たとえば、CT31(CT41)=ローLでかつCT32(CT42)=ローLのときには入力端子IN1,IN2のデータを選択し、CT31(CT41)=ハイHでかつCT32(CT42)=ローLのときには入力端子IN2,IN3のデータを選択し、CT31(CT41)=ローLでかつCT32(CT42)=ハイHのときには入力端子IN1,IN3のデータを選択する。
【0148】
そして、データセレクタ42と略同様に、制御信号CT33(CT43)がローLのときには選択したデータを直列的に出力し、制御信号CT33(CT43)がハイHのときには選択したデータを交差的に出力する。
【0149】
出力切替回路48には、4面体判定部14による4面体判定処理結果とアドレス生成部10からの入力点を包含する基点の座標値(RH,GH,BH)とが入力される。これを受けて、出力切替回路48は、各軸用のメモリ回路2R,2G,2Bから入力されたパッキングデータPR,PG,PBの中から、テトラ・ハイドラ法による補間演算に必要となる4格子点の基礎データD1,D2,D3,D4をデータセレクタ44,46から出力させるために必要となる制御信号CT1,CT2,CT31〜33,CT41〜43を生成する。
【0150】
すなわち、図10〜図15から分かるように、各軸系統のメモリ2R,2G,2Bから出力されたパッキングデータPR,PG,PBのうちの2つに含まれるデータ(α,α’とβ,β’)が、D1,D2,D3,D4の何れに対応するのかは、入力点の属する4面体によって異なる。出力切替回路48は、入力値に対応する所用の2つのメモリから入力されたパッキングデータPR,PG,PBのうちの2つに含まれるデータ(α,α’とβ,β’)について、補間演算処理におけるD1,D2,D3,D4の何れとすべきかを、4面体判定部14による4面体判定処理結果に基づいて図7の表1に示した選択条件に従って特定し、後段の補間演算処理部22に対応する入力端子にそれらを入力させるための制御信号CT1,CT2,CT31〜33,CT41〜43を生成する。
【0151】
たとえば、入力点が図10に示す頂点で構成される4面体1に属すると4面体判定部14が判定した場合は、R軸LUT(R軸メモリ回路2R)の基礎データがパッキングデータPRとしてR軸系統のラッチ回路40に入力され、またB軸LUT(B軸メモリ回路2B)からの基礎データがパッキングデータPBとしてB軸系統のラッチ回路40に入力され、G軸LUT(G軸メモリ回路2G)からはデータ入力がない。
【0152】
データ選択部16は、このパッキングデータPRの中から、基点座標P122(0,1,0)のR軸成分“0”に対応する0番目(3)と1番目(4)をα系列の基礎データであると決し、またパッキングデータPBの中から、基点座標P122(0,1,0)のB軸成分“0”に対応する0番目(7)と1番目(16)をβ系列の基礎データであると決し、この4点のデータを、それぞれD1=α,D2=α’,D3=β,D4=β’として、データセレクタ44,46から出力させなければならない。
【0153】
このような切替制御を行なうため、出力切替回路48は、先ず基点座標P122(RH,GH,BH)の各軸成分に対応するN番目とN+1番目のみがラッチ回路40から出力されるように、ラッチ回路40に対する制御信号CT1を生成する。
【0154】
また、出力切替回路48は、データセレクタ42に対する制御信号CT2を、ラッチ回路40の偶数番目(0を含む)のデータをα,β系列とし奇数番目のデータをα’,β’系列とする場合にはローL、逆に、ラッチ回路40の偶数番目のデータをα’,β’系列とし奇数番目のデータをα,β系列とする場合にはハイHに設定する。
【0155】
また、出力切替回路48は、入力値に対応する所用の2つのメモリを選択するために、つまりパッキングデータPR,PG,PBのうちの2つに含まれる基礎データを選択するために、データセレクタ44,46に対する制御信号CT31,CT32,CT41,CT42を生成する。たとえば、(R,G)を選択出力する場合にはCT31(CT41)=ローLでかつCT32(CT42)=ローL、(G,B)を選択出力する場合にはCT31(CT41)=ハイHでかつCT32(CT42)=ローL、(R,B)を選択出力する場合には、CT31(CT41)=ローLでかつCT32(CT42)=ハイHを設定する。
【0156】
また、選択したそれぞれのα,α’系列とβ,β’系列を切り替えるために、データセレクタ44,46に対する制御信号CT33,CT43を生成する。具体的には、α,α’系列とする場合にはローL、β,β’系列とする場合にはハイHを設定する。
【0157】
これにより、データ選択部16は、テトラ・ハイドラ法による補間演算に必要となる4格子点の基礎データを含む2つのメモリのみから入力された所定アドレスのデータ群すなわちパッキングデータPR,PG,PRのうちの任意の2組をデータ格納部2から受け取ると、その2組のパッキングデータの中から、テトラ・ハイドラ法による補間演算に必要となる4格子点の基礎データD1,D2,D3,D4を抽出し、この抽出した4つのデータD1,D2,D3,D4を補間処理部22の適切な入力端子に入力することができるようになる。
【0158】
図20は、データ格納部2とデータ選択部16の具体的な構成の第2例を示すブロック図である。第1例と同様に、17×17×17の3次元LUTに対応するR軸メモリ回路2Rについて詳細を示し、G軸メモリ回路2GやB軸メモリ回路2Bについては図示を省略する。
【0159】
この第2例は、上記第1および第2実施形態に適用可能な構成のものであって、「処理対象の画素データに対応する基礎データを含むアドレスの全ての基礎データを纏めてパッキングデータとして読み出し、その後に、処理対象の画素データに対応する補間演算所用データ数分の基礎データを抽出する」に際して、対象アドレスの全基礎データを時系列的に逐次出力する構成のものである。
【0160】
具体的には、アドレス空間を2次元状に制御可能なメモリを使用し、一方のアドレス軸に対しては、Yアドレス設定回路34により、第1〜第3実施形態と同様にアクセスアドレスADR,ADG,ADBを設定する。そして、他方のアドレス軸に対しては、Xアドレス設定回路32により、入力値を包含する単位立方体を特定する基点座標(RH,GH,BH)に対応する値を、第1および第2実施形態との対応では複数回、第3実施形態との対応では2回にそれぞれ分けて設定することで、各メモリ回路2R,2G,2Gから、基点座標(RH,GH,BH)に対応する複数個もしくは2個のデータが逐次出力されるようにする。
【0161】
なお、この第2例は、上記第1および第2実施形態に適用可能な構成のものとしている。以下、第1例との相違点のみ説明する。
【0162】
図示するように、R軸メモリ回路2Rの出力バッファ36は、Yアドレス設定回路34により設定されたYアドレスの全Xアドレスのメモリセル30に対して共通に使用されるように1つのみが設けられている。これに応じて、データ選択部16のラッチ回路40には、その1つの出力バッファ36からの出力データが共通に入力されるように構成されている。
【0163】
Xアドレス設定回路32には、Yアドレス設定回路34により設定されたYアドレスの各Xアドレスのメモリセル30から基礎データが順に出力バッファ36に出力されるように、読出対象の1つのXアドレスのみを順にアクティブとするアドレス制御信号ADXRを入力する。
【0164】
個々のメモリセル30としては、Xアドレス設定回路32からのXアドレス設定がアクティブでかつYアドレス設定回路34からのYアドレス設定がアクティブの場合に限って能動状態(イネーブル)となり、メモリセル30に保持している基礎データを出力バッファ36に向けて出力するものとする。これにより、出力バッファ36からは、Yアドレス設定回路34により設定されたYアドレスの各Xアドレスのデータが順にデータ選択部16に入力される。
【0165】
このような構成のR軸メモリ回路2Rによれば、補間演算に必要な基礎データを含む同一ライン(X方向)の複数の基礎データの全てを順に読み出すことができるので、実際の補間演算に必要のない基礎データを読み出すことになるが、同時に読出アクセスするメモリセル数を従来よりも低減することができるので放射ノイズを低減することができる。ただし、トータルの読出サイクル数が増えるので、消費電力のアップや処理速度低下が懸念される。なお、リードクロックを高速化(前例では17倍にする)して、速度低下を実質的に防止することは可能である。ただし、この場合、消費電力のさらなるアップが懸念される。
【0166】
データ選択部16の個々のラッチ回路40には、R軸メモリ回路2R側のXアドレスの設定に応じてラッチクロックLCKが個別に入力されている。各ラッチ回路40は、R軸メモリ回路2Rからの基礎データの送出に合わせた各Xアドレスの設定タイミングに応じて、その基礎データをそれぞれ異なるタイミングで取り込み保持する。データ選択部16は、ラッチ回路40にデータを取り込んだ後には、第1例と同様の処理を行なえばよい。
【0167】
図21は、データ格納部2、アドレス生成部10、および補間演算処理部22の具体的な構成の一例(以下第3例という)を示すブロック図である。第1例および第2と同様に、17×17×17の3次元LUTに対応するR軸メモリ回路2Rについて詳細を示し、G軸メモリ回路2GやB軸メモリ回路2Bについては図示を省略する。
【0168】
この第3例は、上記第3実施形態に適用可能な構成のものであって、「補間演算に必要な基礎データのみを読み出す構成であって、それらの基礎データをほぼ同時に並列的に出力する構成」のものである。以下、第1例や第2例との相違点のみ説明する。
【0169】
図示するように、アドレス生成部10には、4面体判定部14による4面体判定処理結果と自身が生成した入力点を包含する基点の座標値(RH,GH,BH)とに基づいて制御信号CT1,CT2を生成する、第1例や第2例における出力切替回路48と略同様の構成の出力切替回路50が設けられている。制御信号CT31〜CT33,CT41〜CT43を生成する機能を備えていない点が異なる。
【0170】
出力切替回路50には、第1例や第2例におけるアドレス設定機能が組み込まれており、R軸メモリ回路2RのXアドレス設定回路32には、出力切替回路50からの制御信号CT1に相当するアドレス制御信号ADXRが入力される。また、R軸メモリ回路2RのYアドレス設定回路34には、処理対象の画素データが含まれる4面体に応じたアドレス値を設定するためのアクセスアドレスADRが入力される。
【0171】
また、個々のメモリセル30には、基礎データを読み出すための読出クロックCKが出力切替回路50から入力される。また、メモリ回路2Rのチップセレクト端子CSには、各軸用のメモリ回路2R,2G,2Bのうち処理対象の画素データについてテトラ・ハイドラ法による補間演算に必要となる4格子点の基礎データを出力するものを選択するためのR軸メモリ制御信号CTRが出力切替回路50から印加されている。
【0172】
R軸メモリ回路2Rの出力側には、第1例や第2例におけるデータセレクタ42と同様の構成のデータセレクタ38が設けられ、このデータセレクタ38の出力側に出力バッファ36が設けられている。データセレクタ38には、出力切替回路50からの制御信号CT2が入力される。
【0173】
また、2次元状に配されたメモリセル30のうち、Xアドレスの偶数番目(0を含む)が入力端子IN1に共通に入力され、奇数番目が入力端子IN2に共通に入力されるように接続されている。
【0174】
データセレクタ38は、第1例や第2例のデータセレクタ42と同様に、制御信号CT2がローLのときには入力されたデータを直列的に出力する一方、制御信号CT2がハイHのときには入力されたデータを交差的に出力する。
【0175】
補間処理部22には、第1例や第2例における出力切替回路48と略同様の構成の入力切替回路60が設けられている。この入力切替回路60には、4面体判定部14による4面体判定処理結果のみが入力される点で異なる。
【0176】
入力切替回路60は、各軸用のメモリ回路2R,2G,2Bの何れか2つから入力された補間演算に必要となる4格子点の基礎データ(α、α’もしくはβ,β’)をD1,D2,D3,D4に対応付けるために必要となる制御信号CT31〜33,CT41〜43を生成する。
【0177】
この第3例の構成では、制御信号CT1,CT2,CT31〜33,CT41〜43の生成場所と、これを受けた切替えのための回路要素の設置場所が第1例や第2例と異なるが、基本的なデータ選択の仕組みは変わらない。ただし、制御信号CT1に基づいて作用する回路要素をXアドレス設定回路32としたことで、各軸用のメモリ回路2R,2G,2Bから出力される基礎データは、補間演算に必要な2つの基礎データのみとなる。
【0178】
したがって、この第3例の構成(すなわち第3実施形態の構成)によれば、補間演算に必要な基礎データのみを読み出すことができ、無駄なメモリアクセス処理を防止することができる。第1例や第2例の構成では、補間演算に必要のないデータをも読み出すので、読出方式によっては、従来構成よりも処理速度が低下する問題やトータルの消費電力がアップすることが懸念されるが、この第3例によれば、処理速度の低下は殆どなく、また消費電力を確実に低減することができる。
【0179】
なお、第2例の前段に述べたように、各軸用のメモリ回路2R,2G,2Bから出力される2つの基礎データを時系列的に逐次出力する構成を、この第3例に適用することもできる。その変形については図示を省略する。
【0180】
上述したメモリアクセスのための4面体判定や補間演算などの一連の処理は、上述のようにハードウェア回路により実行させることもできるが、ソフトウェアにより実行させることもできる。一連の処理をソフトウェアにより実行させる場合には、そのソフトウェアを構成するプログラムが、専用のハードウェアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、たとえば汎用のパーソナルコンピュータなどに、記録媒体からインストールされる。
【0181】
この記録媒体は、コンピュータとは別に、ユーザにプログラムを提供するために配布される、プログラムが記録されている磁気ディスク(フレキシブルディスクを含む)、光ディスク(CD−ROM(Compact Disc−Read Only Memory )、DVD(Digital Versatile Disc)を含む)、光磁気ディスク(MD(Mini Disc )を含む)、もしくは半導体メモリなどよりなるパッケージメディアにより構成されるだけでなく、コンピュータに予め組み込まれた状態でユーザに提供される、プログラムが記録されているROMやハードディスクなどで構成されてもよい。あるいは、ソフトウェアを構成するプログラムが、通信網を介して提供されてもよい。
【0182】
たとえば、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ(またはCPUやMPU)が記憶媒体に格納されたプログラムコードを読み出し実行することによっても、上記実施形態で述べた効果は達成される。この場合、記憶媒体から読出されたプログラムコード自体が前述した実施形態の機能を実現することになる。
【0183】
また、コンピュータが読出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているOS(オペレーティングシステム)などが実際の処理の一部または全部を行ない、その処理によって前述した実施形態の機能が実現される場合であってもよい。
【0184】
さらに、記憶媒体から読出されたプログラムコードが、コンピュータに挿入された機能拡張カードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた後、そのプログラムコードの指示に基づき、その機能拡張カードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行ない、その処理によって前述した実施形態の機能が実現される場合であってもよい。
【0185】
以上、本発明を実施形態を用いて説明したが、本発明の技術的範囲は上記実施形態に記載の範囲には限定されない。発明の要旨を逸脱しない範囲で上記実施形態に多様な変更または改良を加えることができ、そのような変更または改良を加えた形態も本発明の技術的範囲に含まれる。
【0186】
また、上記の実施形態は、クレーム(請求項)にかかる発明を限定するものではなく、また実施形態の中で説明されている特徴の組合せの全てが発明の解決手段に必須であるとは限らない。前述した実施形態には種々の段階の発明が含まれており、開示される複数の構成要件における適宜の組合せにより種々の発明を抽出できる。実施形態に示される全構成要件から幾つかの構成要件が削除されても、効果が得られる限りにおいて、この幾つかの構成要件が削除された構成が発明として抽出され得る。
【0187】
たとえば、上記実施形態では、格子点データを格納するメモリとして、入力データの軸と共通する方向の基礎データを複数のグループに分けて1つのアドレスに複数のデータをマッピング(パッキング)し、その一塊りの全データ(第1もしくは第2実施形態の場合)あるいはその中の2つの基礎データ(第3実施形態の場合)を並列的に読み出すようにしていたが、パッキングの方向や読出し方はこのような方法に限らない。
【0188】
たとえば、入力の3軸を互いに45度傾けた互いに直交する軸の方向の基礎データを複数のグループに分けて1つのアドレスに複数のデータをマッピング(パッキング)するようにしてもよい。このようなパッキング方法でも、元の3次元LUTの全ての格子点データを取り扱うことが可能である。
【0189】
ただしこの場合、原点を通る軸上のデータが最も多くパッキングされ、元の3次元LUTの最外郭のデータが1つのみパッキングされるので、各軸に対しては同容量のメモリを使用できるものの、アドレスに応じて対応付けられるデータ数が異なるので、実際には使用しないメモリ空間が生じることになる。
【0190】
また、45度傾けに限らず、60度や他の任意の角度に傾けてもかまわない。軸に応じて傾き角を異なるものとしてもよい。これらの場合においても、元の3次元LUTの全ての格子点データがパッキングされた何れかの群に含まれるようにアドレスと対応付けることで、元の3次元LUTの全ての格子点データを取り扱うようにすることが好ましい。
【0191】
なお、元の3次元LUTの一部の格子点データがパッキングされた何れの群にも含まれないということがあってもかまわない。
【0192】
また、元のLUTの格子点データのうち、軸を通らない格子点データについては、たとえば線形補間などにより生成した新たなデータをその格子点データに対応する基礎データとして割り当ててもよい。
【0193】
なお、上記第1〜第3のように、入力データの軸と共通する方向の基礎データを複数のグループに分けて1つのアドレスに複数のデータをパッキングすれば、パッキングされた各アドレスには同数の格子点データが対応付けられ使用しないメモリ空間が生じないようにすることができるとともに、元の3次元LUTの全ての格子点データを漏れなく取り扱うことができるので、同容量のメモリを無駄なく使用できるなど、全体のバランスがよい。
【0194】
また、上記実施形態では、入力色データを出力色データに変換する際に用いられる格子点データの集合を構成する単位立方体の中を6個の4面体に分割して入力値(入力された画素データ)が何れの4面体に属するのかを判定し、該当する4面体内での補間演算により入力値に対応する出力値(出力用の画素データ)を決定する手法として、4点補間の典型例であるテトラ・ハイドラ法を適用した場合について説明したが、本願発明の適用は、4点補間に限らず、立方体補間(8点補間)や5点補間など他の補間方法に適用することも可能である。
【0195】
つまり、補間演算所用データ数未満(事実上多面体を規定する頂点数よりも少ない)のメモリを使用し、元のLUTの格子点データを所定の方向(使用するメモリ数に応じて軸を設定)にグループ分けし、グループごとに1つのアドレスに複数の格子点データを対応付けてそのメモリに格納し、補間演算処理の際には、グループ分けしたデータ群の中から、補間演算に必要となる格子点のデータを抽出するという構成のものであればよい。
【0196】
たとえば、8点補間演算を行なう装置構成とする場合、使用するメモリ数は8個ではなく7以下とし、同様に、5点補間演算を行なう装置構成とする場合、使用するメモリ数は5個ではなく4以下とするなど、格子点データ保持用のメモリを補間演算所用データ数未満で済ますことができ、同じ機能を達成するために必要なメモリの総容量を低減することができる。
【0197】
また上記実施形態では、k色の入力色データとしてR,G,Bの3色のデータを取り扱い、j色の出力色データとしてY,M,C,Kの4色に変換する例を説明したが、入力系および出力系それぞれについて色の構成要素が3つ以上である限り、他の色系統を取り扱う形態に変更することもできる。もちろん、色空間に依存せず、RGB,Lab,YCbCr,YMCKなど、いずれにも対応することができる。
【0198】
また、上記実施形態では、k個(具体的には3個)の成分データに基づいて定まるk次元超立方格子空間の2のk乗個の格子点が形成するk次元超立方体の各格子点に対応づけられた格子点データを元のLUTとして取り扱い、単位格子体の形状が立方体であるのもとしていたが、個々の格子点により規定される単位格子体の形状は、必ずしも立方体に限らない。
【0199】
また、上記実施形態では、単位格子体(単位立方体)を同容量の多面体(具体的には4面体)で内分することとしていたが、単位格子体を分割する多面体は、必ずしも同容量のものでなくてもよい。
【0200】
【発明の効果】
以上の説明から明らかなように、本発明においては、多面体内での補間演算を行なう際に、補間演算所用データ数よりも少ない数のそれぞれ独立に制御可能なメモリ空間を使用し、そのメモリ空間のそれぞれについて、k色の入力色信号要素で規定されるk次元格子空間の各格子点に対応づけられた格子点データに対応する基礎データを、所定の手順に従って1つのアドレスに複数の基礎アドレスが割り当てられるようにパッキングして格納し、同一アドレスに割り当てられた複数の基礎データの中から、処理対象の画素データに対応する補間演算所用データ数分の基礎データを抽出して、多面体内での補間演算を行なうようにした。
【0201】
これにより、補間演算所用データ数(4点補間の場合は4つ)未満という少ないメモリ資源で色データ変換を実現することができ、また消費電力や放射ノイズを低減することもできるようになった。
【図面の簡単な説明】
【図1】本発明に係るデータ変換装置の第1実施形態を示すブロック図である。
【図2】第1実施形態のデータ変換装置における色データの変換に関する処理手順の概要を示したフローチャートである。
【図3】出力値の代表値である格子点データを構成するR軸用のルックアップテーブルを説明する図である。
【図4】出力値の代表値である格子点データを構成するG軸用のルックアップテーブルを説明する図である。
【図5】出力値の代表値である格子点データを構成するB軸用のルックアップテーブルを説明する図である。
【図6】演算処理部における単位立方体判定処理(図2のS100〜S102)を説明する図である。
【図7】演算処理部における4面体判定処理(図2のS104〜S106)を説明する図である。
【図8】演算処理部におけるアクセスメモリ特定処理(図2のS108a)と4格子点特定処理(図2のS108b)を説明する図である。
【図9】入力データと3次元LUT空間上のデータの位置関係を示した図である。
【図10】4面体1に属する入力データと3次元LUT空間上のデータの位置関係を示した図である。
【図11】4面体2に属する入力データと3次元LUT空間上のデータの位置関係を示した図である。
【図12】4面体3に属する入力データと3次元LUT空間上のデータの位置関係を示した図である。
【図13】4面体4に属する入力データと3次元LUT空間上のデータの位置関係を示した図である。
【図14】4面体5に属する入力データと3次元LUT空間上のデータの位置関係を示した図である。
【図15】4面体6に属する入力データと3次元LUT空間上のデータの位置関係を示した図である。
【図16】演算処理部における補間係数算出処理(図2のS102c)と補間演算処理(図2のS102d)を説明する図である。
【図17】本発明に係るデータ変換装置の第2実施形態を示すブロック図である。
【図18】本発明に係るデータ変換装置の第3実施形態を示すブロック図である。
【図19】データ格納部とデータ選択部の具体的な構成の第1例を示すブロック図である。
【図20】データ格納部とデータ選択部の具体的な構成の第2例を示すブロック図である。
【図21】データ格納部、アドレス生成部、および補間演算処理部の具体的な構成の一例を示すブロック図である。
【符号の説明】
1…データ変換装置、2…データ格納部、2R…R軸メモリ回路、2G…G軸メモリ回路、2B…B軸メモリ回路、4…演算処理部、4Y…Y信号生成部、4M…M信号生成部、4C…C信号生成部、4K…K信号生成部、10…アドレス生成部、14…4面体判定部、16…データ選択部、20…補間係数生成部、22…補間処理部、30…メモリセル、32…Xアドレス設定回路、34…Yアドレス設定回路、36…出力バッファ、38,42,44,46…データセレクタ、40…ラッチ回路、48,50…出力切替回路、60…入力切替回路[0001]
TECHNICAL FIELD OF THE INVENTION
The present invention relates to a data conversion method and a data conversion device for performing data conversion using an interpolation operation. More specifically, for example, in an image processing apparatus such as a printer apparatus, a facsimile apparatus, or a multifunction peripheral having these functions, for example, R (red), G (green), and B (blue) multidimensional input image data Is converted into one color data of each of multi-dimensional output image data of Y (yellow), M (magenta), C (cyan), and K (black). Related to conversion technology.
[0002]
[Prior art]
[Patent Document 1]
JP-A-8-181874
[Patent Document 2]
JP-B-58-16180
[Patent Document 3]
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, and in this case, devices for inputting color images are mainly scanners and video cameras. 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 a digital signal such as an image is generally performed using a LUT (Look Up Table; lookup table) in many cases. 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.
[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 the LUT is used in the color conversion processing, it is general to reduce the memory capacity of the LUT to be used by using the interpolation calculation processing together. Has been proposed. This is to reduce the capacity of the LUT in the above-described method 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 1, 2, and 3 is known. Patent Literature 1 states that there is also a five-point interpolation method. Patent Document 2 describes, as a conventional example, that there is a cubic interpolation method (8-point interpolation method) as an interpolation method with a large circuit scale but with good 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 Document 1 proposes a method for efficiently defining the amount of data held in an LUT and the number of data used for interpolation. In the method described in Patent Document 1, first, a lattice (unit cube) composed of input three-element data is formed, and the lattice corresponds to any lattice based on upper bit data RH, GH, and BH of the three input elements. It is determined whether data is included, and the data is further divided into six tetrahedrons. Based on the lower bit data RL, GL, and BL of the input three elements, it is determined which tetrahedron contains the corresponding data. Is determined, and an output value corresponding to the input value is calculated by the tetra-hydra method based on the basic data obtained from the tetrahedron vertices and a multiplier (interpolation coefficient) determined for each tetrahedron. .
[0018]
In the method described in Patent Document 1, 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]
When the method described in Patent Document 1 is used, when the input R, G, and B are converted into an arbitrary color (output color), the number of data stored in the LUT is defined as 17 data × 17 data × 17 data. In this case, the capacity of the LUT can be realized with 49 Kbytes, and the capacity can be greatly reduced as compared with 16 Mbytes in a system not using interpolation processing.
[0020]
[Problems to be solved by the invention]
However, according to the method described in Patent Literature 1, when the time allocated as the processing time of the color space conversion for one pixel is extremely short, a plurality of data is read from the memory used as the LUT a plurality of times. Therefore, 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. When the number of data stored in the LUT is defined as 17 data × 17 data × 17 data as described above, the total memory capacity is 786 kilobytes. Assuming importance on interpolation accuracy and assuming 8-point interpolation, 32 memories are required, and the total memory capacity is 1,568 kilobytes.
[0022]
On the other hand, simultaneous access to a large number of memories in a certain unit time, in addition to an increase in memory capacity, also causes an increase in power consumption and an increase in radiation noise. In the conventional method, if the interpolation method is determined, the number of grid point data required for the interpolation calculation is also uniquely determined, and the number of memories for simultaneous access is also uniquely determined accordingly. There was no effective means to reduce radiated noise.
[0023]
The present invention has been made in view of the above circumstances, and when performing data conversion using an interpolation operation, the memory capacity for storing data, or the power consumption or radiation noise is reduced without deteriorating the interpolation accuracy. It is an object of the present invention to provide a data conversion method and apparatus capable of reducing data.
[0024]
[Means for Solving the Problems]
That is, the data conversion method according to the present invention is such that, for each pixel data of the input color data, the pixel data is a set of grid point data based on the grid point data used when converting the input color data into the output color data. Is determined, to which of the unit lattices that belong to, the corresponding unit lattice is further divided into a plurality of polyhedrons, and it is determined which polyhedron the pixel data belongs to. This is a data conversion method for determining output pixel data corresponding to input pixel data by the interpolation calculation of (1). First, the number of data for the interpolation calculation office defined according to the polyhedron (that is, the basic data required for the interpolation calculation) (Number of data), and a smaller number of independently controllable memory spaces is used.
[0025]
Then, basic data corresponding to the grid point data associated with each grid point of the k-dimensional grid space defined by the input color signal elements of k colors is divided into a plurality of groups according to a predetermined criterion. A plurality of basic data in a group is stored in a corresponding one of a plurality of memory spaces. That is, the basic data is divided into groups according to a predetermined standard for each memory space, a common address is assigned to each basic data in each group, and stored in each memory cell.
[0026]
Then, at the time of the actual interpolation calculation, the basic data for the number of interpolation calculation stations corresponding to the pixel data to be processed is extracted from the plurality of basic data associated with the group. Interpolation in the polyhedron is performed using the basic data for the number of data.
[0027]
When extracting the basic data for the number of data for the interpolation operation site corresponding to the pixel data to be processed, it is preferable to refer to a determination result as to which of the plurality of polyhedrons the pixel data to be processed belongs to. .
[0028]
It should be noted that the data conversion method according to the present invention is particularly applicable to the case where the k colors are three colors, that is, the input color space is three-dimensional, and the polyhedron is the four colors that are the output color signal elements, that is, the output color space is four-dimensional. The effect is high when the corresponding polyhedron is a tetrahedron and is applied to a device that performs tetrahedral interpolation.
[0029]
A data conversion device according to the present invention is a device that performs the data conversion method according to the present invention. That is, the data conversion device according to the present invention, for each pixel data of the input color data, based on the grid point data used when converting the input color data into the output color data, the pixel data is a set of grid point data And a unit lattice body determining unit that determines which one of the unit lattice bodies belongs to, and the unit lattice body determined by the unit lattice body determining unit is further divided into a plurality of polyhedrons so that the pixel data A polyhedron determination unit that determines whether the polyhedron belongs to a polyhedron, and an interpolation calculation processing unit that determines pixel data for output corresponding to the input pixel data by interpolation calculation within the polyhedron determined by the polyhedron determination unit. First, a plurality of independently controllable memory spaces of a number smaller than the number of data for the interpolation operation site defined according to the polyhedron are provided. A data storage unit for storing basic data corresponding to grid point data associated with each grid point of a k-dimensional grid space defined by k input color signal elements; The data storage unit is divided into a plurality of groups according to the standard, and includes a data storage unit for storing a plurality of basic data in each group in a corresponding one of a plurality of memory spaces.
[0030]
In addition, the data conversion device according to the present invention is configured such that, from among a plurality of basic data associated with the group stored in the data storage unit, the basic data for the number of data for the interpolation calculation office corresponding to the pixel data to be processed. And an interpolation operation processing unit that performs an interpolation operation in the polyhedron using the basic data for the number of data for the interpolation operation site extracted by the basic data extraction unit.
[0031]
The dependent claims define further advantageous specific examples of the data conversion device according to the present invention.
[0032]
Note that the control function portion and the interpolation calculation function portion of the data storage unit can be realized by software without using hardware, and in order to realize the data conversion device according to the present invention by software using an electronic computer. Suitable programs and computer-readable storage media storing the programs 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.
[0033]
In the above, the “independently controllable memory space” means that, when reading basic data required for an interpolation operation from the data storage unit, at least a read address can be independently set for each memory space. Means that. More preferably, the read clock can also be set independently. It is more preferable that the output of each memory space can be independently set to a high impedance state.
[0034]
The “basic data” is data necessary for the interpolation operation, and may be the lattice point data of the original LUT itself, or is not limited thereto, and corresponds to the lattice point data of the original LUT. It may be predetermined data.
[0035]
[Action]
In the above configuration of the present invention, first, the number of independently controllable memory spaces for storing basic data required for the interpolation operation is made smaller than the number of basic data required for the interpolation operation. Then, by dividing a predetermined number into groups based on a predetermined rule from the lattice data of the original LUT or a large number of data corresponding to the lattice data in the small memory space, Is associated with a plurality of basic data and stored in the memory space.
[0036]
At the time of the actual interpolation operation, the basic data for the number of data for the interpolation operation site corresponding to the pixel data to be processed is read out from a plurality of basic data corresponding to each address, and the interpolation within the polyhedron is performed. Perform the operation.
[0037]
BEST MODE FOR CARRYING OUT THE INVENTION
Hereinafter, embodiments of the present invention will be described in detail with reference to the drawings.
[0038]
FIG. 1 is a block diagram showing a first embodiment of the data conversion device according to the present invention. As an example, an R, G, B, 8-bit input digital color separation signal is input from an external device to the data conversion device 1, and the input digital color separation signal is output to each of output system color components Y, M, C, K. Color conversion to 8-bit data. 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 B is not limited to “8”.
[0039]
As shown in the figure, the data conversion device 1 of the first embodiment stores a basic data used for obtaining output data after color conversion corresponding to input data by interpolation operation for each output color. And an arithmetic processing unit 4 for obtaining output pixel data corresponding to input pixel data by interpolation for each output color while exchanging data with the data storage unit 2. In the case of the present embodiment, as will be described later, an interpolation operation is performed by the tetra-hydra method, so that the basic data is the lattice point data of the original three-dimensional LUT.
[0040]
The arithmetic processing unit 4 includes, as signal processing systems, Y signal generation units 4Y, M signal generation units 4M, C signal generation units 4C, K so as to correspond to the respective color components Y, M, C, K of the output system. Includes signal generator 4K. The arithmetic processing unit 4 may be composed of, for example, a central processing unit (CPU; Central Processing Unit) or a DSP (Digital Signal Processor).
[0041]
The data storage unit 2 is divided into three memory spaces of an R-axis memory circuit 2R, a G-axis memory circuit 2G, and a B-axis memory circuit 2B so as to correspond to the input data R, G, and B. Each of the memory circuits 2R, 2G, and 2B, that is, each of the three independently controllable memory spaces, has a corresponding one of three grid points of a three-dimensional grid space (three-dimensional LUT) defined by three input color signal elements. Basic data corresponding to the associated grid point data is grouped according to a predetermined criterion for each axis of the input color, as described later (see FIGS. 3 to 5), and a plurality of basic data in the group is provided. Are stored in association with one address, and constitute a look-up table LUT for each axis.
[0042]
These memory circuits 2R, 2G, and 2B can independently set addresses and read data so as to be able to cope with a case where the time allocated as the processing time of the color space conversion for one pixel is very short. Possible, that is, independently read-accessible. It is preferable to use one having an independent read enable (Read enable) terminal RE or a chip select (Chip Select) terminal CS and capable of setting the output of a memory circuit that is not necessary for reading to a high impedance state.
[0043]
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.
[0044]
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 circuits 2R, 2G, 2B) in the data storage unit 2.
[0045]
The data bus 8 is also used to input input data before data conversion from an external device (not shown) and to output output data after conversion to the same or another external device.
[0046]
FIG. 2 is a flowchart showing an outline of a processing procedure regarding color data conversion in the data conversion device 1 having the above configuration.
[0047]
The arithmetic processing unit 4 of the first embodiment uses the grid point data of the LUT (look-up table) for color conversion stored in the data storage unit 2 to calculate the R, G, and B input from an external device. When performing color conversion of each signal into Y, M, C, and K color data, an interpolation process using a tetra-hydra method (tetrahedral interpolation method) is used.
[0048]
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-separated signals into upper m bits (most significant bits) for each pixel. It is divided into m consecutive bits from the bit side and lower n bits (n consecutive bits from the least significant bit side) (S100). Then, the arithmetic processing unit 4 forms a three-dimensional lattice (three-dimensional LUT) composed of the R, G, and B data of the three input elements based on the upper m-bit data RH, GH, and BH of the three input elements. At this time, 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.
[0049]
Next, the arithmetic processing unit 4 further divides the corresponding unit cube into six tetrahedrons (S104), and based on the lower n-bit data RL, GL, and BL of the three input elements, divides the tetrahedron into any of the tetrahedrons. It is determined whether the corresponding data is included (S106). The processing of steps S104 to S106 is referred to as tetrahedron determination processing.
[0050]
Next, the arithmetic processing unit 4 outputs an output value (pixel to be output) corresponding to the input value (input pixel data) by a tetra-hydra method (tetrahedral interpolation method) of an interpolation operation in the corresponding tetrahedron. Data) (S108).
[0051]
Specifically, as shown on the right side of the figure, the arithmetic processing unit 4 firstly outputs basic data of four grid points required for the interpolation arithmetic processing by the tetra-hydra method among the three memory circuits 2R, 2G, and 3G. An access memory specifying process for specifying two memories from which is to be extracted is performed (S108a). Next, the arithmetic processing unit 4 specifies and extracts four grid points required for the interpolation operation in the data group of the same address specified in the access memory specifying process based on the coordinate values of the base point including the input point. Four grid point specifying processing is performed (S108b). The access memory specifying process (S108a) and the four grid point specifying process (S108b) are collectively referred to as an access address specifying process.
[0052]
In parallel with the access memory specifying process (S108a) and the tetrahedral point specifying process (S108b), the arithmetic processing unit 4 performs four basic data (from the original grid in this example) An interpolation coefficient calculation process for calculating an interpolation coefficient which is a weight coefficient (multiplication coefficient) for the point data itself 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).
[0053]
The arithmetic processing unit 4 performs the series of processes described above for each of the output colors Y, M, C, and K (S112) and for all the pixels (S100), so that the input color data of the RGB color space is obtained. Is converted to data in the YMCK color space.
[0054]
FIGS. 3 to 5 are diagrams illustrating LUTs constituting grid point data, which are representative values of output values. Here, for each of the R, G, and B axes, 17 × 17 × 17 = 4913 grid points, the corresponding three-dimensional LUT storing converted data as representative values is used as the original grid point data. The case will be described. The data storage unit 2 of the present embodiment has the same grid point data in three memory spaces of the same capacity corresponding to the input color signals R, G, and B. For this reason, as shown in FIG. 1, memory circuits 2R, 2G, and 2B corresponding to the R, G, and B axes are provided.
[0055]
Each part (A) in FIGS. 3 to 10 illustrates a part of an RGB three-dimensional space. 3 to 10 show the relationship between addresses and basic data in the memory space of the memory circuits 2R, 2G, and 2B for each axis, that is, the LUT for each axis. Note that the method of using the “address in the case of a two-dimensional address” shown at the bottom of the table in each of FIGS. 3 to 10B is described in the third embodiment (see FIG. 18) and the specific circuit configuration. This will be described using two examples (see FIG. 20) and a third example (see FIG. 21).
[0056]
In the related art, a representative value of the output value of each grid point position indicated by a circle is stored as an LUT, and each grid point position is an address on a memory for storing grid point data. That is, as described above, 4913 addresses are defined. On the other hand, in the present embodiment, a plurality of basic data (in this example, grid point data itself) are associated with one address and stored (mapped) in groups.
[0057]
That is, when an arbitrary address is set, a plurality of basic data in a group registered in association with the address are collectively output as packing data. Here, “to collectively output a plurality of basic data as packing data” is not limited to outputting a plurality of basic data almost simultaneously and in parallel, but to sequentially output the plurality of basic data in time series. Including. How to output the plurality of basic data depends on the configuration of the memory circuits 2R, 2G, and 2B for each axis and the configuration of the readout circuit.
[0058]
For example, as shown in FIG. 3A, the basic data in the R-axis direction is divided into a plurality of groups along the axis parallel (in a lump) and stored in the R-axis memory circuit 2R, thereby obtaining the data for the R-axis. Is constructed. The bold line indicates that the basic data is divided into groups (lumps). In other words, basic data (grid point data itself in this example) is addressed by an arbitrary combination of GH and BH, and one address holds basic data for 17 grids. FIG. 3B shows an R-axis LUT which is a relationship between an address and basic data on the R-axis memory circuit 2R.
[0059]
Similarly, as shown in FIG. 4A, the G-axis memory circuit 2G stores the basic data in the G-axis direction in a plurality of groups along the axis parallel (in a lump) and stores the data. Construct an LUT for the axis. The bold line indicates that the basic data is divided into groups (lumps). Here, data is addressed by an arbitrary combination of RH and BH, and one address holds basic data for 17 grid points. FIG. 4B shows a B-axis LUT, which is a relationship between addresses on a memory and basic data.
[0060]
Similarly, as shown in FIG. 5A, the B-axis memory circuit 2B stores the basic data in the B-axis direction in a plurality of groups along the axis parallel (in a lump) and stores the data in the B-axis direction. A LUT for The bold line indicates that the basic data is divided into groups (lumps), where data is addressed by an arbitrary combination of RH and GH, and one address corresponds to 17 grid points. Holds basic data. FIG. 5B shows a B-axis LUT which is a relationship between an address on a memory and basic data.
[0061]
At the time of the interpolation processing in the arithmetic processing unit 4, two basic data that match the input data are read out from the above-described data strings that are collectively held in the memory circuits 2R, 2G, and 2B. When this method is used, when converting the input data R, G, and B into a single color, the capacity of the LUT can be realized with 49 kilobytes, and the capacity can be significantly reduced as compared with 16 megabytes in the method that does not use interpolation processing. It is possible to enjoy the advantage of the tetra-hydra method, which is possible, and to reduce the number of memories to be used (the number of memory spaces) and the number of memories to be simultaneously read-accessed as compared with the conventional configuration.
[0062]
FIG. 6 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. 6A shows a conceptual diagram of the LUT in a three-dimensional space, and FIG. 6B shows 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.
[0063]
As shown in FIG. 6A, the range of possible values for each of the R, G, and B axes is divided into a plurality of ranges. 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.
[0064]
The arithmetic processing unit 4 converts the inputted 8-bit R, G, B digital color separation signal into upper m bits (m consecutive from the most significant bit) and lower n bits (n consecutive from the least significant bit) ). For example, the arithmetic processing unit 4 sets m = n = 4 and divides the input R, G, B into upper four bits RH, GH, BH and lower four bits RL, GL, BL, respectively. Of course, m and n may be other values. Note that “m + n” is preferably equal to the number of bits 8 of the input data.
[0065]
As shown in FIG. 6B, the spatial position of the combination value of arbitrary input R, G, B 8-bit data (input pixel data) in a unit cube formed by the combination value of upper 4-bit data Since P22 is included, it is possible to specify a unit cube that includes input 8-bit data with a unit cube (unit lattice) starting from the spatial position P21 indicated by the upper 4-bit data RH, GH, and BH. Become.
[0066]
Each vertex constituting the unit cube can be generated based on the spatial position P21. That is, starting from (RH, GH, BH), (RH + 1, GH, BH), (RH + 1, GH + 1, BH), (RH, GH + 1, BH), (RH, GH, BH + 1), (RH + 1, GH, (BH + 1), (RH, GH + 1, BH + 1), (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.
[0067]
The arithmetic processing unit 4 outputs the output value corresponding to the combination value of the 8-bit data of the inputs R, G, and B to the neighboring grid point data, that is, the coordinates of the coordinates of the vertices of the unit cube shown in FIG. Using the data as basic data, it is determined by the tetra-hydra method (tetrahedral interpolation method).
[0068]
FIG. 7 is a diagram illustrating the tetrahedron determination processing (steps S104 to S106 in FIG. 2) in the arithmetic processing unit 4. As described above, the arithmetic processing unit 4 of the present 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. It is obtained by an interpolation calculation based on the basic data (grid point data) by the tetra-hydra method.
[0069]
FIG. 7 shows a relationship between a unit cube containing input data and a tetrahedron obtained by dividing the unit cube into six. The unit cube shown in FIG. 6B can be further divided into six unit tetrahedrons having the same volume, as shown in FIG.
[0070]
Which tetrahedron the spatial position P22 of the inputs R, G, B is included in can be specified as shown in Table 1 shown in the lower part of FIG. 7 from the magnitude relation of the lower bit data RL, GL, BL. Also, the LUT and the access address to be accessed by the data selection unit 16 can be specified as shown in Table 1.
[0071]
In Table 1, X, Y, and Z represent generalized three-dimensional input data. In the present embodiment, X = R, Y = G, and Z = B. “17” shown at the base points A and B is the number of grid points obtained by dividing each axis of the three-dimensional LUT. Table 1 shows an access address in the case where the input RGB is 8 bits each, the output is YMCK, and the LUT is composed of 17 × 17 × 17 = 4913 data corresponding to the upper 4 bits per color. This is a calculation formula.
[0072]
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.
[0073]
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.
[0074]
The arithmetic processing unit 4 performs such determination (tetrahedron determination) to specify four neighboring grid points on the three-dimensional LUT of the inputs R, G, and B. That is, first, the tetrahedron to which the input data belongs is specified based on the lower bit data RL, GL, and BL. In response to this result, two LUTs corresponding to the specified tetrahedron are specified, and upper bit data RH, GH, BH for specifying a unit cube including the input data and the address calculation shown in Table 1 of FIG. An access address to the two LUTs is calculated according to the equation. Then, the arithmetic processing unit 4 acquires basic data of four neighboring grid points by extracting two basic data from the obtained access addresses of the two LUTs.
[0075]
FIG. 8 is a diagram for explaining the access memory specifying process (S108a) and the four lattice point specifying process (S108b), which are the first stages of the output value calculating process (step S108 in FIG. 2) in the arithmetic processing unit 4. FIG. 4 is a diagram showing the relationship between the shape of each tetrahedron obtained by dividing a unit cube and the vertices constituting the tetrahedron. The tetrahedron 1 is composed of vertices of α, α ′, β, β ′. Here, α and α ′ are the same spatial position on the G and B coordinates, and can be collectively extracted from the R-axis LUT shown in FIG. On the other hand, the remaining β and β ′ are at the same spatial position on the R and G coordinates, and can be collectively extracted from the B-axis LUT shown in FIG.
[0076]
Similarly, in the case of the tetrahedron 2, desired basic data can be obtained from the R-axis LUT and the G-axis LUT. In the case of the tetrahedron 3, desired basic data can be obtained from the B-axis LUT and the G-axis LUT. In the case of the tetrahedron 4, desired basic data can be obtained from the B-axis LUT and the R-axis LUT. In the case of the tetrahedron 5, desired basic data can be obtained from the G-axis LUT and the R-axis LUT. In the case of the tetrahedron 6, desired basic data can be obtained from the G-axis LUT and the B-axis LUT.
[0077]
Accordingly, the arithmetic processing unit 4 receives the determination result of the tetrahedron determination processing and interpolates the three memory circuits 2R, 2G, and 2B from the three memory circuits 2R, 2G, and 2B according to the selection conditions shown in Table 1 of FIG. An access memory specifying process is performed to specify two memories from which basic data of four grid points required for the operation should be extracted (that is, two LUTs storing a data group including the four grid points).
[0078]
Specifically, the arithmetic processing unit 4 shows the coordinate values of the upper bit data RH, GH, and BH that specify the unit cube including the input data, that is, the coordinate values of the base point P21 in FIG. 6B and Table 1 in FIG. By calculating access addresses to the two LUTs according to the access address formula, a data group including four grid points required for an interpolation operation by the tetra-hydra method is specified. Thereafter, based on the coordinate values (RH, GH, BH) of the base point including the input point, the arithmetic processing unit 4 calculates four grid points required for the interpolation calculation by the tetra-hydra method in the data group of the same address. Is specified and extracted.
[0079]
9 to 15 are diagrams for explaining specific examples of LUT access. Here, FIG. 9 is a diagram showing a positional relationship between input data and data in a three-dimensional LUT space. FIGS. 10 to 15 are diagrams showing the correlation between the corresponding vertices of the tetrahedron and the data structure of the LUT.
[0080]
In FIG. 9, the number of grid points is simplified to three data for each of R, G, and B, for a total of 3 × 3 × 3 = 27 data. It is assumed that a position in the three-dimensional space indicated by an arbitrary 8-bit RGB value (input data) is a position P121 in FIG. In this case, one vertex of the cube including the input point is determined from the upper 4-bit value of the input value at the position P122 in FIG. The coordinate value is (RH, GH, BH) = (0, 1, 0), and this position P122 is defined as a base point coordinate.
[0081]
Hereinafter, LUT access will be described separately for a case where this input point belongs to each of the six tetrahedrons in the unit cube. In the illustrated example, the input position P121 is the data of “3, 4, 6, 7, 12, 13, 15, 16” of the data group of the three-dimensional LUT determined by the base point P122 (0, 1, 0). It is included in a unit cube surrounded by coordinate positions.
[0082]
The arithmetic processing unit 4 selects, from the basic data (grid point data) of each vertex of the corresponding unit cube based on the spatial position P21 of the combination value of the upper 4-bit data, four basic data corresponding to the pixel to be processed. Extract the data.
[0083]
For example, when it is determined that the input point belongs to the tetrahedron 1 composed of the vertices shown in FIG. 10, the arithmetic processing unit 4 sets the R-axis LUT (R-axis memory circuit 2R) and the B-axis LUT (B-axis memory The circuit 2B) is accessed to extract α and α ′ from the R-axis LUT (R-axis memory circuit 2R) and β and β ′ from the B-axis LUT (B-axis memory circuit 2B).
[0084]
Specifically, the arithmetic processing unit 4 calculates the access address ADR to the R-axis LUT by GH + 3BH based on the base point A in Table 1 of FIG. Here, the access address ADR is “1”, and the data group of the address 1 is extracted. Next, since the R-axis component of the base point coordinates P122 (0, 1, 0) in the extracted data group is “0”, the arithmetic processing unit 4 sets the 0th (3) and 1st (4 ) Is the desired basic data. Here, the 0th (3) basic data indicated by “address in the case of a two-dimensional address” shown at the bottom of the table in FIG. 10 is α, and the first (4) basic data is α ′.
[0085]
Similarly, the arithmetic processing unit 4 calculates the access address ADB to the B-axis LUT by (RH + 1) +3 (GH + 1) based on Table 1 in FIG. Here, the access address ADR is “7”, and the data group of the address 7 is extracted. Next, since the B-axis component of the base point coordinates P122 (0, 1, 0) is “0” in the extracted data group, the arithmetic processing unit 4 determines that the 0th (7) and the 1st (16 ) Is the desired basic data. Here, the 0th (7) basic data is β, and the 1st (16) basic data is β ′.
[0086]
In this way, the arithmetic processing unit 4 can extract desired four-point data required for tetrahedral interpolation calculation. The arithmetic processing unit 4 sets the data of the four points extracted in this manner to D1 = α, D2 = α ′, D3 = β, and D4 = β ′.
[0087]
Even when the data belongs to another tetrahedron, the arithmetic processing unit 4 calculates the access addresses ADR, ADG, and ADB based on Table 1 in FIG. Then, from the extracted data group, two desired basic data according to the base point coordinates are extracted for each of two LUTs.
[0088]
For example, as shown in FIG. 11, when the input point belongs to the tetrahedron 2, the arithmetic processing unit 4 calculates the base point coordinate P122 (from the access address ADR (GH + 3BH = 1) of the R-axis LUT (R-axis memory circuit 2R)). The 0th (3) basic data corresponding to (0, 1, 0) is extracted as α, and the 1st (4) basic data as α ′. Similarly, the arithmetic processing unit 4 determines the first address corresponding to the base point coordinate P122 (0, 1, 0) from the access address ADG ((RH + 1) +3 (BH + 1) = 4) of the G-axis LUT (G-axis memory circuit 2G). Let β be the basic data of (13) and β ′ be the second (16) basic data.
[0089]
As shown in FIG. 12, when the input point belongs to the tetrahedron 3, the arithmetic processing unit 4 obtains the base point coordinates P122 (0, 0) from the access address ADB (RH + 3GH = 3) of the B-axis LUT (B-axis memory circuit 2B). The 0th (3) basic data corresponding to (1, 0) is extracted as α, and the 1st (12) basic data is extracted as α ′. Similarly, the arithmetic processing unit 4 determines the first address corresponding to the base point coordinate P122 (0, 1, 0) from the access address ADG ((RH + 1) +3 (BH + 1) = 4) of the G-axis LUT (G-axis memory circuit 2G). Let β be the basic data of (13) and β ′ be the second (16) basic data.
[0090]
As illustrated in FIG. 13, when the input point belongs to the tetrahedron 4, the arithmetic processing unit 4 calculates the base point coordinates P122 (0, 0) from the access address ADB (RH + 3GH = 3) of the B-axis LUT (B-axis memory circuit 2B). The 0th (3) basic data corresponding to (1, 0) is extracted as α, and the 1st (12) basic data is extracted as α ′. Similarly, the arithmetic processing unit 4 sets the 0th address corresponding to the base point coordinate P122 (0, 1, 0) from the access address ADR ((GH + 1) +3 (BH + 1) = 5) of the R-axis LUT (R-axis memory circuit 2R). Let β be the basic data of (15) and β ′ be the first (16) basic data.
[0091]
As shown in FIG. 14, when the input point belongs to the tetrahedron 5, the arithmetic processing unit 4 calculates the base point coordinates P122 (0, 0, 0) from the access address ADG (RH + 3BH = 0) of the G-axis LUT (G-axis memory circuit 2G). The first (3) basic data corresponding to (1, 0) is extracted as α, and the second (6) basic data is extracted as α ′. Similarly, the arithmetic processing unit 4 sets the 0th address corresponding to the base point coordinate P122 (0, 1, 0) from the access address ADR ((GH + 1) +3 (BH + 1) = 5) of the R-axis LUT (R-axis memory circuit 2R). Let β be the basic data of (15) and β ′ be the first (16) basic data.
[0092]
As shown in FIG. 15, when the input point belongs to the tetrahedron 6, the arithmetic processing unit 4 calculates the base point coordinates P122 (0, 0) from the access address ADG (RH + 3BH = 0) of the G-axis LUT (G-axis memory circuit 2G). The first (3) basic data corresponding to (1, 0) is extracted as α, and the second (6) basic data is extracted as α ′. Similarly, the arithmetic processing unit 4 calculates the 0th address corresponding to the base point coordinate P122 (0, 1, 0) from the access address ADB ((RH + 1) +3 (GH + 1) = 7) of the B-axis LUT (B-axis memory circuit 2B). Let β be the basic data of (7) and β ′ be the first (16) basic data.
[0093]
Table 2 shown in FIG. 16 illustrates the interpolation coefficient calculation process (S102c) and the interpolation calculation process (S102d), which are the second stage of the output value calculation process (step S108 in FIG. 2) in the calculation processing unit 4. It is. Table 2 shows a formula for calculating an interpolation coefficient required for the interpolation operation by the tetra-hydra method. As can be seen from Table 2, the calculation formula is different for each of the six tetrahedrons.
[0094]
The arithmetic processing unit 4 receives the result of the tetrahedron determination process (steps S104 to S106 in FIG. 2) and uses it for calculating an interpolation coefficient according to the tetrahedron in which the input value is included, based on Table 2 in FIG. The formulas are switched, and interpolation coefficients W1, W2, based on the four grid points constituting the tetrahedron and the lower bit data RL, GL, BL, according to a calculation formula defined for each tetrahedron including the input value. W3 and W4 are calculated. This tetrahedral interpolation calculation processing is the same as the processing in the conventional data conversion device.
[0095]
Then, the arithmetic processing unit 4 uses the known four-point interpolation calculation to correspond to the interpolation coefficients W1, W2, W3, and W4 thus determined and the input points extracted by the first-stage four-grid-point identification processing. Interpolation processing by the tetra-hydra method of calculating the final output value Dout based on the basic data (originally lattice point data) D1, D2, D3, and D4 of the tetrahedron vertices is performed. For example, the final output value Dout is calculated according to the following equation (1). In equation (1), 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 equation may be used.
(Equation 1)
Figure 2004112523
[0096]
According to the configuration of the first embodiment, when the output data corresponding to the input data is obtained by the tetrahedral interpolation calculation, the number of the memories (spaces) for holding the grid point data is required for the tetrahedral interpolation calculation. Since the number of vertices is not four but three, the result is that it is not necessary to have four times the memory of the same data, and it is only three times, so the total amount of memory required to achieve the same function is It becomes 3/4 of the conventional.
[0097]
In other words, unlike the conventional case in which it is necessary to provide the same amount of independently operable memory (space) for the number of data for the interpolation operation site, the number of grid point data and the number of memory spaces required for the interpolation operation are set to be the same. It is free from the conventional restriction that it must be used. For example, in the case of four-point interpolation, it is not necessary to have four times the memory for holding grid point data, and the same function can be achieved. In this case, the total capacity of the memory required for the operation and the number of independently controllable memory spaces can be reduced. In addition, since the number of memory spaces for simultaneous access can be reduced, power consumption and radiation noise can also be reduced.
[0098]
For example, conventionally, 17 × 17 × 17, that is, 4,193 bytes are required to extract one interpolation calculation data. In the case of four-point interpolation, data of four grid points are simultaneously extracted. Four times, that is, 4913 bytes × 4 = 19,652 bytes were required. However, with the configuration of the present embodiment, it is possible to simultaneously extract data at four grid points with a memory having a capacity of three quarters.
[0099]
Since the interpolation arithmetic circuit can be substantially the same as that of the conventional configuration, the circuit change as a whole can be made only around the memory circuit, so that the above configuration can be easily applied to a real circuit.
[0100]
FIG. 17 is a block diagram showing a second embodiment of the data conversion device according to the present invention. The configuration of the second embodiment shows a first example of a specific circuit configuration in which the above-described interpolation calculation in the case of three-dimensional input of R, G, and B is performed at high speed in real time.
[0101]
As illustrated, the Y signal generation unit 4Y in the arithmetic processing unit 4 according to the second embodiment includes a unit cube determination process (steps S100 to S102 in FIG. 2) and an access memory identification process in the arithmetic processing unit 4 according to the first embodiment. An address generation unit 10 for executing (S108a), a tetrahedron determination unit 14 for executing tetrahedron determination processing (S104 to S106), a data selection unit 16 for executing four grid point identification processing (S108b), An interpolation coefficient generation unit 20 that performs an interpolation coefficient calculation process (S108c) and an interpolation processing unit 22 that performs an interpolation calculation process (S108d) are provided.
[0102]
The address generation unit 10 has both functions of a unit cell determination unit and an address setting unit of the present invention. Further, the tetrahedron determination unit 14 is an example of the unit lattice determination unit of the present invention. The data selector 16 is an example of the basic data extractor of the present invention. Further, the interpolation coefficient generation unit 20 and the interpolation processing unit 22 constitute an interpolation calculation processing unit of the present invention.
[0103]
Although not shown in the figure, the M signal generator 4M, the C signal generator 4C, and the K signal generator 4K have the same configuration as the Y signal generator 4Y.
[0104]
When the image data R, G, and B are input, the address generation unit 10 converts the input data R, G, and B into higher-order bit data RH, GH, and BH (upper four bits in this example; collectively referred to as DH). And lower bit data RL, GL, BL (lower 4 bits in this example; collectively referred to as DL), and based on the upper 4 bits of data DH among them, as shown in FIGS. As described above, the position P22 (corresponding to the base point P122 in FIG. 9) of the unit cube including the input point in the three-dimensional LUT is specified, and the coordinate information (RH, GH, BH) indicating the base point specifying the unit cube Is input to the data selection unit 16.
[0105]
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. The tetrahedron determination unit 14 specifies a tetrahedron including an input value among the six tetrahedrons that divide the unit cube based on the lower-order bit data DL input from the address generation unit 10, and Information indicating a plane is input to the address generation unit 10, the data selection unit 16, and the interpolation coefficient generation unit 20 as a determination result.
[0106]
The address generation unit 10 receives the tetrahedron determination processing result from the tetrahedron determination unit 14 and, based on the selection conditions shown in Table 1 of FIG. 7, selects the tetra hydra method from among the three memory circuits 2R, 2G, and 2B. The two memories from which the basic data of the four grid points required for the interpolation calculation by the two are to be extracted, and the R-axis read clock CKR, the G-axis read clock CKG, and the B-axis read clock CKB are controlled independently (specifically, Stops the read clock to the read access circuit). This is because simultaneous access to a large number of memories in a certain unit time leads to an increase in power consumption and an increase in radiation noise, and improvement is desired from the viewpoint of the environment.
[0107]
That is, in the configuration of the present embodiment, the memory circuit including the basic data of the four grid points required for the interpolation operation, which should be simultaneously read-accessed for the pixel data to be processed, is any two of the three memory circuits. Therefore, in addition to the effect of reducing power consumption and radiation noise by reducing the number of memories from the conventional four to three, the supply of read clocks to memory circuits that do not require simultaneous access is reduced, Further reduce power and radiation noise.
[0108]
Further, the address generation unit 10 determines the upper bit data RH, GH, and BH for specifying the unit cube including the input data, that is, the coordinate value of the base point P21 in FIG. 6B and the access address expression shown in Table 1 in FIG. Are set for each memory circuit to be accessed. By doing so, at the time of reading data from the memory circuit, only the memory circuit including the basic data of the four grid points required for the interpolation operation by the tetra-hydra method becomes active among the three memory circuits 2R, 2G, and 2R. Thus, a group of data (arbitrary two sets of packing data PR, PG, PR) is input to the data selection unit 16 from the address set in the active memory circuit.
[0109]
For example, when one address is set, the memory circuits 2R, 2G, and 2B that can output a plurality of data corresponding thereto in parallel are used. Then, for address input, access addresses ADR, ADG, and ADB are set. For example, in each (B) of FIGS. 3 to 10, by setting the value of the address column to the access addresses ADR, ADG, and ADB, the base point coordinates (RH, GH) can be obtained from each of the memory circuits 2R, 2G, and 2G. , BH), all of the group of data including the two basic data are output in parallel.
[0110]
Further, the address generation unit 10 independently controls the R-axis memory control signal CTR, the G-axis memory control signal CTG, and the B-axis memory control signal CTB which are inputs to the chip select terminal CS of each memory circuit (specifically, Is switched to low / high) to activate two memory circuits that require simultaneous reading and inactivate one unnecessary memory circuit (high impedance state). By doing so, power consumption can be reduced, and a circuit subsequent to the memory circuit can be made compact.
[0111]
Next, the data selector 16 extracts necessary data (grid point data) from each vertex of the corresponding unit cube based on the spatial position P21 of the combination value of the upper 4-bit data. For example, the data selection unit 16 may be a data group of a predetermined address input only from a memory including basic data of four grid points required for the interpolation operation by the tetra-hydra method, that is, an arbitrary one of the packing data PR, PG, and PR. Are received from the data storage unit 2, based on the tetrahedron determination processing result by the tetrahedron determination unit 14 and the coordinate values (RH, GH, BH) of the base point including the input point from the address generation unit 10. From the two sets of packing data, basic data D1, D2, D3, and D4 of four grid points required for the interpolation operation by the tetra-hydra method are extracted, and the extracted four data D1, D2, D3 D4 is input to the interpolation processing unit 22.
[0112]
As can be seen from FIGS. 10 to 15, data (α, α ′ and β, β ′) included in two of the packing data PR, PG, and PB output from the memory are D1, D2, Which one of D3 and D4 corresponds depends on the tetrahedron to which the input point belongs. The data selector 16 interpolates the data (α, α ′ and β, β ′) included in two of the packing data PR, PG, and PB input from the two memories corresponding to the input values. Which of D1, D2, D3 and D4 in the arithmetic processing should be determined based on the tetrahedron determination processing result by the tetrahedron determination unit 14 according to the selection conditions shown in Table 1 of FIG.
[0113]
In parallel with this, the interpolation coefficient generation unit 20 receives the result of the tetrahedron determination processing by the tetrahedron determination unit 14 and, based on Table 2 in FIG. The interpolation coefficients W1, W2, W3, and W4 are calculated based on the four lattice points constituting the tetrahedron and the lower-order bit data RL, GL, and BL according to a calculation formula corresponding to the tetrahedron, and the calculated interpolation coefficients W1 and W2 , W3, and W4 are input to the interpolation processing unit 22.
[0114]
The interpolation processing unit 22 uses a known four-point interpolation operation to calculate the interpolation coefficients W1, W2, W3, and W4 input from the interpolation coefficient generation unit 20 and the data D1, D2, D3, and input from the data selection unit 16. Based on D4 (basic data of four vertices), final output values Y, M, C, and K are respectively calculated.
[0115]
According to the configuration of the second embodiment, when the Tetra Hydra method is used to convert a digital color separation signal using a LUT and an interpolation operation into a digital color separation signal of another color component, a conventional method is used. Although four memories are required, tetrahedral interpolation calculation processing can be realized with three memories, as in the first embodiment. Further, since the scale of the additional circuit for extracting desired basic data from the packed basic data is not so large, the data conversion device 1 can be realized without increasing the scale and complexity of the interpolation circuit. .
[0116]
In addition, conventionally, it was necessary to access four memories to calculate the output value of one color when extracting data used for the interpolation operation. However, according to the configuration of the present embodiment, the chip select terminal of the memory is required. By controlling CS (or the read enable terminal RE), only the memory containing the basic data of the four grid points required for the interpolation operation by the tetra-hydra method among the three memory circuits 2R, 2G, and 3G is activated. Therefore, it is only necessary to access two memories, one half of the conventional one, and the power consumption and radiation noise of the system can be reduced.
[0117]
That is, when converting a digital color separation signal using an LUT and an interpolation operation into a digital color separation signal of another color component, there is an effect that color data conversion can be realized with a small amount of memory resources. Conventionally, when extracting data used for the interpolation operation, it was necessary to simultaneously access four memories for calculating the output value of one color. However, in the configuration of the present embodiment, only two halves are required. There is also an effect of reducing power consumption and radiation noise of the system.
[0118]
FIG. 18 is a block diagram showing a third embodiment of the data conversion device according to the present invention. The basic configuration of the third embodiment is the same as that of the second embodiment. The difference from the configuration of the second embodiment is that the data selection unit 16 of the second embodiment is not provided, and the function of the data selection unit 16 is shared by the address generation unit 10. That is, the address generation unit 10 of the third embodiment also has the function of the basic data extraction unit of the present invention.
[0119]
In response to this change, the tetrahedron determination unit 14 specifies the tetrahedron including the input value among the six tetrahedrons that divide the unit cube, based on the lower bit data DL input from the address generation unit 10. Then, information indicating the specified tetrahedron is input to the address generation unit 10, the interpolation coefficient generation unit 20, and the interpolation processing unit 22 as a determination result. That is, the position of the unit cube including the input point in the three-dimensional LUT is specified, and the information is transmitted to the data selection unit 16.
[0120]
The memory circuits 2R, 2G, and 2B of the third embodiment collectively output a group of all data for each of the addresses ADR, ADG, and ADB set by the address generation unit 10 and output the packed data PR, PG, and PR. Instead, any two addresses of a group can be set, and the two can be output collectively.
[0121]
That is, as in the first embodiment and the second embodiment, a plurality of grid point data are mapped for each address ADR, ADG, and ADB. However, at the time of reading, it is necessary for the interpolation operation by the tetra-hydra method. Only two basic data (α, α ′ or β, β ′) are collectively output to the memory of each axis including four grid points.
[0122]
Specifically, an address space that can be controlled two-dimensionally is used, and access addresses ADR, ADG, and ADB are set for one address axis in the same manner as in the first and second embodiments. I do. Then, for the other address axis, the access addresses ADXR, ADXG, and ADXB for setting the address in the X-axis direction correspond to the base point coordinates (RH, GH, BH) for specifying the unit cube including the input value. By setting a value to be performed, four grid point specifying processing is performed.
[0123]
For example, in each (B) of FIGS. 3 to 10, the value of the address column is set to the access address ADR, ADG, ADB, and the “address in the case of the two-dimensional address” shown in the lower part of the data column. The values (two consecutive addresses among 0, 1,...) Corresponding to the base point coordinates (RH, GH, BH) are set in the access addresses ADXR, ADXG, ADXB for setting the address in the X-axis direction. Thus, two basic data corresponding to the base point coordinates (RH, GH, BH) are output in parallel from two of the memory circuits 2R, 2G, 2G.
[0124]
The interpolation processing unit 22 calculates the values of D1, D2, D3, and D4 in the interpolation calculation process for each of the two basic data (α, α ′ and β, β ′) input from the two memories corresponding to the input values. Which is to be determined is determined in accordance with the selection conditions shown in Table 1 of FIG. As can be seen from FIGS. 10 to 15, which of the two basic data (α, α ′ and β, β ′) output from the memory corresponds to D1, D2, D3, or D4? This is because it differs depending on the tetrahedron to which the input point belongs.
[0125]
The interpolation processing unit 22 receives the interpolation coefficients W1, W2, W3, and W4 input from the interpolation coefficient generation unit 20 and the two input memories corresponding to the input values using a known four-point interpolation operation. Final output values Y, M, C, and K are calculated based on data D1, D2, D3, and D4 corresponding to each of the two basic data (α, α ′ and β, β ′).
[0126]
According to the configuration of the third embodiment, although the configuration is different from that of the second embodiment, the basic operation is the same as that of the second embodiment. Therefore, similarly to the first embodiment, the tetrahedron interpolation arithmetic processing can be realized with three memories, and in addition, by controlling the chip select terminal CS (or the read enable terminal RE) of the memory, the system can be controlled. Power consumption and radiation noise can also be reduced.
[0127]
FIG. 19 is a block diagram illustrating a first example of a specific configuration of the data storage unit 2 and the data selection unit 16. Here, similarly to the above-described first to third embodiments, the details of the R-axis memory circuit 2R corresponding to the 17 × 17 × 17 three-dimensional LUT will be described, and the G-axis memory circuit 2G and the B-axis memory circuit 2B will be described. Are not shown.
[0128]
The first example has a configuration applicable to the above-described first and second embodiments. “All the basic data at the address including the basic data corresponding to the pixel data to be processed are collected as packing data. Reading, and thereafter extracting the basic data for the number of data for the interpolation operation site corresponding to the pixel data to be processed ", all the basic data at the target address are output from the memory circuit almost simultaneously in parallel. .
[0129]
That is, as shown in the figure, in the R-axis memory circuit 2R, memory cells 30 each storing 8 bits of basic data are arranged in a matrix to form an XY address type memory core unit. An X address setting circuit 32 for setting an address in the X direction, a Y address setting circuit 34 for setting an address in the Y direction, and a memory for each X direction corresponding to a predetermined Y address are provided for the memory core unit. A plurality of output buffers 36 are provided for receiving basic data from the cell 30 and outputting the basic data to an external circuit (the data selection unit 16 in this example). The output of the memory cell 30 is connected to an output buffer 36 corresponding to each X address.
[0130]
The X address setting circuit 32 receives an address control signal ADXR that activates all X addresses. On the other hand, the Y address setting circuit 34 receives an access address ADR from the address generator 10. As described in the above embodiment, the access address ADR is set with an address value corresponding to the tetrahedron including the pixel data to be processed.
[0131]
Further, the R-axis memory control signal CTR from the address generator 10 is input to the chip select terminal CS of the R-axis memory circuit 2R. When the basic data held by the axis memory circuit 2R is required, it is set to active, and when it is unnecessary, it is set to inactive.
[0132]
A read clock CK for reading basic data is input to each memory cell 30. In this example, the configuration is such that bit data is read from each memory cell 30 in parallel by one read clock CK and input to the output buffer 36. Note that a configuration may be adopted in which bit data is serially read from each memory cell 30. In this case, in order to read eight bits, eight read clocks CK may be input to the memory cells 30.
[0133]
As each memory cell 30, a three-state memory cell whose output can be switched and set to a high impedance state (disabled) is used. An address setting signal from the Y address setting circuit 34 is commonly applied to the output enable (enable) terminal (not shown) of the three-state type memory cell 30 in the X direction (that is, the memory cell 30 on the same address line). . When the address setting signal is active, the memory cell 30 becomes active (enable) and outputs the basic data held in the memory cell 30 to the output buffer 36. When the memory cell 30 is active, the output terminal is at high impedance. State (disabled). By doing so, there is no need to provide a data selector between the output buffer 36 and the subsequent stage, and the circuit configuration becomes compact.
[0134]
As the output buffer 36, a three-state type buffer whose output can be switched to a high impedance state (disabled) is used. An output enable signal (substantially the same as the R-axis memory control signal CTR) from the chip select terminal CS is applied to an output enable terminal OE of the three-state output buffer 36. For example, when the enable signal is high (High), the output buffer 36 becomes active (enable) and outputs the basic data received from the memory cell 30 as it is, while when the enable signal is low (Low), regardless of the signal state received. It becomes a high impedance state (disable).
[0135]
That is, when the R-axis memory circuit 2R is set to be active by the R-axis memory control signal CTR, the output buffer 36 substantially converts the basic data of all the X addresses of the Y addresses set by the Y address setting circuit 34. At the same time, the data is output and input to the data selector 16 as packing data PR. On the other hand, when the R-axis memory circuit 2R is set to inactive by the R-axis memory control signal CTR, the output of each output buffer 36 is set to a high impedance state.
[0136]
According to the R-axis memory circuit 2R having such a configuration, all of a plurality of basic data on the same line (X direction) including the basic data necessary for the interpolation operation can be read almost at the same time. Unnecessary basic data is read out, but there is no problem of lowering the processing speed. However, since the number of memory cells that are simultaneously accessed for reading increases, there is a concern that power consumption and radiation noise may increase.
[0137]
A G-axis memory circuit 2G and a B-axis memory circuit 2B (not shown) also have the same configuration as the R-axis memory circuit 2R, and receive corresponding access addresses ADG, ADB and memory control signals CTG, CTB, respectively. Is done.
[0138]
The data selection unit 16 includes a plurality of (LT0 to LT16) latch circuits 40 each receiving and holding the basic data output from each output buffer 36 of the R-axis memory circuit 2R, and any one of the plurality of latch circuits 40. And a data selector 42 that receives the basic data from the two and switches the output destination of the received two basic data. The plurality of latch circuits 40 and the data selectors 42 are provided for the R-axis system, the G-axis system, and the B-axis system. Although the G-axis system and the B-axis system are omitted in the figure, the circuit configuration is the same as that of the R-axis system.
[0139]
The data selector 16 receives basic data (α or β) from one output terminal of each of the data selectors 42 of the R-axis system, the G-axis system, and the B-axis system, and switches a data selector 44 for switching the output destination. , An R-axis system, a G-axis system, and a B-axis system, receive the basic data (α ′ or β ′) from the other output terminal of the data selector 42 and switch the output destination thereof; And an output switching circuit 48 for controlling the data selectors 42, 44, 46.
[0140]
The latch clock LCK is commonly input to the individual latch circuits 40, and the basic data is simultaneously captured and held at a predetermined timing corresponding to the transmission of the basic data from the R-axis memory circuit 2R. When bit data is read out serially from each memory cell 30, the latch circuit 40 has a serial-parallel conversion function.
[0141]
The control signal CT1 from the output switching circuit 48 is input to the output enable terminal OE of each latch circuit 40, and only two adjacent outputs of the plurality of latch circuits 40 are selectively provided. Set to be active.
[0142]
The data selector 42 has two input terminals IN1 and IN2 and two output terminals OUT1 and OUT2, and is configured to receive the control signal CT2 from the output switching circuit 48. The outputs of the latch circuit 40 are connected such that the even-numbered (including 0) is input to the input terminal IN1 and the odd-numbered is input to the input terminal IN2.
[0143]
When the control signal CT2 is low L, the data selector 42 outputs the input data in series, that is, the data of the input terminal IN1 (even-numbered data of the latch circuit 40) is output to the output terminal OUT1, and the input terminal IN2 (The odd-numbered data of the latch circuit 40) is output to the output terminal OUT2, while when the control signal CT2 is high H, the input data is output crosswise, that is, the data at the input terminal IN1 is output to the output terminal OUT2. The data of the input terminal IN2 is output to the output terminal OUT1 to OUT2.
[0144]
Each of the data selectors 44 and 46 has three input terminals IN1, IN2 and IN3 and two output terminals OUT1 and OUT2, and control signals CT31, CT32 and CT33 from the output switching circuit 48 are sent to the data selector 44, CT 41, CT 42, and CT 43 are input to the data selector 46.
[0145]
The data selectors 44 and 46 switch the data output destinations of the three input terminals IN1, IN2 and IN3 in accordance with the state of combination of the control signals CT31, CT32 and CT33 or CT41, CT42 and CT43.
[0146]
For example, two of the three input terminals IN1, IN2, and IN3 are selected by the control signals CT31 (CT41) and CT32 (CT42), and the control signal CT data of the data selector 42 is stored by the control signal CT33 (CT43). Similarly to the section 2, the two selected output destinations are determined.
[0147]
For the control signals CT31 (CT41) and CT32 (CT42), for example, when CT31 (CT41) = low L and CT32 (CT42) = low L, the data of the input terminals IN1 and IN2 is selected, and CT31 (CT41) = When high H and CT32 (CT42) = low L, the data of the input terminals IN2 and IN3 is selected. When CT31 (CT41) = low L and CT32 (CT42) = high H, the data of the input terminals IN1 and IN3 are selected. select.
[0148]
In a manner similar to the data selector 42, when the control signal CT33 (CT43) is low L, the selected data is output in series, and when the control signal CT33 (CT43) is high H, the selected data is output crosswise. I do.
[0149]
The output switching circuit 48 receives the result of the tetrahedron determination process by the tetrahedron determination unit 14 and the coordinate values (RH, GH, BH) of the base point including the input point from the address generation unit 10. In response to this, the output switching circuit 48 outputs four grids necessary for the interpolation operation by the tetra-hydra method from the packing data PR, PG, and PB input from the memory circuits 2R, 2G, and 2B for each axis. Control signals CT1, CT2, CT31-33, and CT41-43 necessary for outputting the basic data D1, D2, D3, and D4 of the points from the data selectors 44 and 46 are generated.
[0150]
That is, as can be seen from FIGS. 10 to 15, data (α, α ′ and β, β) included in two of the packing data PR, PG, and PB output from the memories 2R, 2G, and 2B of each axis system. Which of β1, D2, D3 and D4 corresponds to the tetrahedron to which the input point belongs. The output switching circuit 48 interpolates data (α, α ′ and β, β ′) included in two of the packing data PR, PG, and PB input from the two memories corresponding to the input values. Which of D1, D2, D3, and D4 in the arithmetic processing should be specified based on the tetrahedron determination processing result by the tetrahedron determination unit 14 in accordance with the selection conditions shown in Table 1 of FIG. It generates control signals CT1, CT2, CT31-33, CT41-43 for inputting them to input terminals corresponding to the section 22.
[0151]
For example, if the tetrahedron determination unit 14 determines that the input point belongs to the tetrahedron 1 composed of the vertices shown in FIG. 10, the basic data of the R-axis LUT (R-axis memory circuit 2R) is R as the packing data PR. The basic data from the B-axis LUT (B-axis memory circuit 2B) is input to the B-axis latch circuit 40 as packing data PB, and is input to the G-axis LUT (G-axis memory circuit 2G). There is no data entry from).
[0152]
From the packing data PR, the data selection unit 16 determines the 0th (3) and 1st (4) corresponding to the R-axis component “0” of the base point coordinates P122 (0, 1, 0) as the basis of the α sequence. It is determined that the data is data, and among the packing data PB, the 0th (7) and 1st (16) corresponding to the B-axis component “0” of the base point coordinates P122 (0, 1, 0) are used as the basis of the β sequence. It is determined that the data is data, and the four data points must be output from the data selectors 44 and 46 as D1 = α, D2 = α ′, D3 = β, and D4 = β ′.
[0153]
In order to perform such switching control, the output switching circuit 48 first outputs only the Nth and N + 1th corresponding to each axis component of the base point coordinates P122 (RH, GH, BH) from the latch circuit 40. A control signal CT1 for the latch circuit 40 is generated.
[0154]
In addition, the output switching circuit 48 sets the control signal CT2 to the data selector 42 when the even-numbered (including 0) data of the latch circuit 40 is the α and β series and the odd-numbered data is the α ′ and β ′ series. Is set to low L, and conversely, it is set to high H when the even-numbered data of the latch circuit 40 is the α ′, β ′ series and the odd-numbered data is the α, β series.
[0155]
Further, the output switching circuit 48 is provided with a data selector for selecting two required memories corresponding to the input values, that is, for selecting basic data included in two of the packing data PR, PG and PB. The control signals CT31, CT32, CT41, and CT42 for 44 and 46 are generated. For example, when (R, G) is selectively output, CT31 (CT41) is low L and CT32 (CT42) is low L, and when (G, B) is selectively output, CT31 (CT41) is high H. When CT32 (CT42) = low L and (R, B) are selectively output, CT31 (CT41) = low L and CT32 (CT42) = high H are set.
[0156]
In addition, control signals CT33 and CT43 for the data selectors 44 and 46 are generated to switch between the selected α, α ′ sequence and β, β ′ sequence. More specifically, low L is set for α, α ′ series, and high H is set for β, β ′ series.
[0157]
As a result, the data selection unit 16 obtains the data group of the predetermined address, that is, the packing data PR, PG, and PR input from only two memories including the basic data of the four grid points necessary for the interpolation operation by the tetra-hydra method. When any two of the sets are received from the data storage unit 2, from the two sets of packing data, basic data D1, D2, D3, and D4 of four grid points required for the interpolation operation by the tetra-hydra method are extracted. The four data D1, D2, D3, and D4 thus extracted can be input to an appropriate input terminal of the interpolation processing unit 22.
[0158]
FIG. 20 is a block diagram illustrating a second example of a specific configuration of the data storage unit 2 and the data selection unit 16. As in the first example, details of the R-axis memory circuit 2R corresponding to the 17 × 17 × 17 three-dimensional LUT are shown, and illustration of the G-axis memory circuit 2G and the B-axis memory circuit 2B is omitted.
[0159]
The second example has a configuration applicable to the first and second embodiments. “All the basic data at the address including the basic data corresponding to the pixel data to be processed are collected as packing data. At the time of reading, and then extracting the basic data for the number of data for the interpolation operation site corresponding to the pixel data to be processed, "all the basic data at the target address are sequentially output in a time-series manner.
[0160]
Specifically, a memory capable of controlling the address space in a two-dimensional manner is used, and the access address ADR, ADR, Set ADG and ADB. For the other address axis, the X address setting circuit 32 assigns the values corresponding to the base point coordinates (RH, GH, BH) specifying the unit cube including the input value in the first and second embodiments. In the case of the third embodiment, each of the memory circuits 2R, 2G, and 2G is set to a plurality of times corresponding to the base coordinates (RH, GH, BH). Alternatively, two data are sequentially output.
[0161]
Note that the second example has a configuration applicable to the first and second embodiments. Hereinafter, only differences from the first example will be described.
[0162]
As shown, only one output buffer 36 of the R-axis memory circuit 2R is provided so as to be commonly used for the memory cells 30 of all X addresses of the Y address set by the Y address setting circuit 34. Have been. Accordingly, the latch circuit 40 of the data selection unit 16 is configured so that the output data from the one output buffer 36 is commonly input.
[0163]
Only one X address to be read is provided to the X address setting circuit 32 so that basic data is sequentially output from the memory cell 30 of each X address of the Y address set by the Y address setting circuit 34 to the output buffer 36. Are sequentially activated to input an address control signal ADXR.
[0164]
Each memory cell 30 is activated (enabled) only when the X address setting from the X address setting circuit 32 is active and the Y address setting from the Y address setting circuit 34 is active. It is assumed that the held basic data is output to the output buffer 36. Thus, the data of each X address of the Y address set by the Y address setting circuit 34 is sequentially input from the output buffer 36 to the data selection unit 16.
[0165]
According to the R-axis memory circuit 2R having such a configuration, all of a plurality of basic data on the same line (X direction) including the basic data necessary for the interpolation operation can be sequentially read out. Although the basic data without data is read, the number of memory cells to be read-accessed at the same time can be reduced as compared with the conventional case, so that radiation noise can be reduced. However, since the total number of read cycles increases, there is a concern that power consumption will increase and the processing speed will decrease. It is possible to substantially prevent the speed from decreasing by increasing the speed of the read clock (by 17 in the previous example). However, in this case, there is a concern that power consumption will further increase.
[0166]
A latch clock LCK is individually input to each latch circuit 40 of the data selection unit 16 according to the setting of the X address on the R-axis memory circuit 2R side. Each latch circuit 40 captures and holds the basic data at different timings in accordance with the setting timing of each X address in accordance with the transmission of the basic data from the R-axis memory circuit 2R. After fetching the data into the latch circuit 40, the data selector 16 may perform the same processing as in the first example.
[0167]
FIG. 21 is a block diagram illustrating an example (hereinafter, referred to as a third example) of a specific configuration of the data storage unit 2, the address generation unit 10, and the interpolation operation processing unit 22. As in the first example and the second example, details of the R-axis memory circuit 2R corresponding to the 17 × 17 × 17 three-dimensional LUT are shown, and illustration of the G-axis memory circuit 2G and the B-axis memory circuit 2B is omitted.
[0168]
This third example has a configuration applicable to the third embodiment described above, which is a configuration in which only basic data necessary for interpolation calculation is read out, and these basic data are output almost simultaneously in parallel. Configuration ". Hereinafter, only differences from the first and second examples will be described.
[0169]
As shown in the figure, the address generation unit 10 sends a control signal based on the tetrahedron determination processing result by the tetrahedron determination unit 14 and the coordinate value (RH, GH, BH) of the base point including the input point generated by itself. An output switching circuit 50 that generates CT1 and CT2 and has substantially the same configuration as the output switching circuit 48 in the first and second examples is provided. The difference is that a function for generating the control signals CT31 to CT33 and CT41 to CT43 is not provided.
[0170]
The output switching circuit 50 incorporates the address setting functions of the first and second examples, and the X address setting circuit 32 of the R-axis memory circuit 2R corresponds to the control signal CT1 from the output switching circuit 50. Address control signal ADXR is input. Further, an access address ADR for setting an address value corresponding to a tetrahedron including the pixel data to be processed is input to the Y address setting circuit 34 of the R-axis memory circuit 2R.
[0171]
Further, a read clock CK for reading the basic data is input from the output switching circuit 50 to each memory cell 30. The chip select terminal CS of the memory circuit 2R stores basic data of four grid points required for interpolation calculation by the tetra-hydra method for pixel data to be processed among the memory circuits 2R, 2G, and 2B for each axis. An R-axis memory control signal CTR for selecting what to output is applied from the output switching circuit 50.
[0172]
On the output side of the R-axis memory circuit 2R, a data selector 38 having the same configuration as the data selector 42 in the first and second examples is provided, and on the output side of the data selector 38, an output buffer 36 is provided. . The control signal CT <b> 2 from the output switching circuit 50 is input to the data selector 38.
[0173]
In the memory cells 30 arranged in a two-dimensional manner, the even number (including 0) of the X address is connected so as to be commonly input to the input terminal IN1, and the odd number is connected so as to be commonly input to the input terminal IN2. Have been.
[0174]
Like the data selectors 42 of the first and second examples, the data selector 38 outputs the input data serially when the control signal CT2 is low L, and receives the input data when the control signal CT2 is high H. Output the crossed data.
[0175]
The interpolation processing unit 22 is provided with an input switching circuit 60 having substantially the same configuration as the output switching circuit 48 in the first and second examples. This input switching circuit 60 is different in that only the tetrahedron determination processing result by the tetrahedron determination unit 14 is input.
[0176]
The input switching circuit 60 converts basic data (α, α ′ or β, β ′) of four grid points required for interpolation calculation input from any two of the memory circuits 2R, 2G, 2B for each axis. Control signals CT31-33 and CT41-43 necessary for associating D1, D2, D3, and D4 are generated.
[0177]
In the configuration of the third example, the location where the control signals CT1, CT2, CT31-33, and CT41-43 are generated and the location where the circuit element for switching receiving the control signals is installed are different from those of the first and second examples. However, the basic data selection mechanism remains the same. However, since the X address setting circuit 32 is used as the circuit element that operates based on the control signal CT1, the basic data output from the memory circuits 2R, 2G, and 2B for each axis is divided into two basic data necessary for the interpolation operation. Only data.
[0178]
Therefore, according to the configuration of the third example (that is, the configuration of the third embodiment), only the basic data necessary for the interpolation operation can be read, and unnecessary memory access processing can be prevented. In the configurations of the first and second examples, data that is not necessary for the interpolation calculation is also read. Therefore, depending on the read method, there is a concern that the processing speed may be lower than in the conventional configuration and that the total power consumption may be increased. However, according to the third example, the processing speed hardly decreases, and the power consumption can be surely reduced.
[0179]
As described earlier in the second example, the configuration in which the two basic data output from the memory circuits 2R, 2G, and 2B for each axis are sequentially output in time series is applied to the third example. You can also. Illustration of the deformation is omitted.
[0180]
A series of processing such as tetrahedron determination and interpolation calculation for memory access described above can be executed by a hardware circuit as described above, but can also be executed by software. When a series of processing is executed by software, a program constituting the software can execute various functions by installing a computer incorporated in dedicated hardware or installing various programs. It is installed from a recording medium into a possible general-purpose personal computer or the like.
[0181]
This recording medium is a computer-distributed magnetic disk (including a flexible disk) and an optical disk (CD-ROM (Compact Disc-Read Only Memory)) on which the program is recorded, which is distributed to provide the program to the user. , A DVD (including a Digital Versatile Disc), a magneto-optical disk (including an MD (Mini Disc)), or a package medium formed of a semiconductor memory, etc. It may be constituted by a provided ROM or hard disk in which a program is recorded. Alternatively, a program constituting software may be provided via a communication network.
[0182]
For example, a storage medium storing a program code of software for realizing the functions of the above-described embodiments is supplied to a system or apparatus, and a computer (or CPU or MPU) of the system or apparatus stores the program code stored in the storage medium. , The effect described in the above embodiment can be achieved. In this case, the program code itself read from the storage medium implements the functions of the above-described embodiment.
[0183]
When the computer executes the readout program code, not only the functions of the above-described embodiments are realized, but also an OS (Operating System) running on the computer based on the instruction of the program code. A case where some or all of the actual processing is performed, and the functions of the above-described embodiments are realized by the processing.
[0184]
Further, after the program code read from the storage medium is written into a memory provided in a function expansion card inserted into the computer or a function expansion unit connected to the computer, the function expansion is performed based on the instruction of the program code. The CPU or the like provided in the card or the function expansion unit may perform part or all of the actual processing, and the processing may realize the functions of the above-described embodiments.
[0185]
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.
[0186]
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.
[0187]
For example, in the above embodiment, as a memory for storing grid point data, basic data in a direction common to the axis of the input data is divided into a plurality of groups, and a plurality of data are mapped (packed) to one address. All the data (in the case of the first or second embodiment) or two basic data (in the case of the third embodiment) are read out in parallel. It is not limited to such a method.
[0188]
For example, basic data in directions of axes orthogonal to each other with the input three axes inclined at 45 degrees may be divided into a plurality of groups and a plurality of data may be mapped (packed) to one address. Even with such a packing method, it is possible to handle all grid point data of the original three-dimensional LUT.
[0189]
However, in this case, the data on the axis passing through the origin is packed most and only the outermost data of the original three-dimensional LUT is packed, so that the same amount of memory can be used for each axis. Since the number of data associated with each address differs depending on the address, a memory space not actually used occurs.
[0190]
Further, the tilt angle is not limited to 45 degrees, but may be 60 degrees or any other angle. The inclination angle may be different depending on the axis. Also in these cases, all the grid point data of the original three-dimensional LUT can be handled by associating all the grid point data of the original three-dimensional LUT with addresses so as to be included in any of the packed groups. Is preferable.
[0191]
Note that some grid point data of the original three-dimensional LUT may not be included in any of the packed groups.
[0192]
Further, among the grid point data of the original LUT, for the grid point data that does not pass through the axis, new data generated by, for example, linear interpolation may be allocated as basic data corresponding to the grid point data.
[0193]
As described in the first to third embodiments, if the basic data in the direction common to the axis of the input data is divided into a plurality of groups and a plurality of data are packed in one address, the number of the packed addresses becomes the same. Memory space that is not used by being associated with the grid point data of the first three-dimensional LUT can be prevented, and all grid point data of the original three-dimensional LUT can be handled without omission. Good balance, such as being usable.
[0194]
Further, in the above embodiment, the unit cube forming the set of grid point data used when converting the input color data into the output color data is divided into six tetrahedrons and the input values (input pixels A typical example of four-point interpolation is a method for determining which tetrahedron the data) belongs to, and determining an output value (pixel data for output) corresponding to the input value by an interpolation operation in the corresponding tetrahedron. However, the present invention is not limited to four-point interpolation, but can be applied to other interpolation methods such as cubic interpolation (eight-point interpolation) and five-point interpolation. It is.
[0195]
In other words, the memory of less than the number of data for the interpolation operation site (effectively less than the number of vertices defining the polyhedron) is used, and the lattice point data of the original LUT is set in a predetermined direction (the axis is set according to the number of memories to be used). And a plurality of grid point data are associated with one address for each group and stored in the memory. At the time of the interpolation calculation processing, an interpolation calculation is required from the grouped data group. What is necessary is just a structure which extracts the data of a grid point.
[0196]
For example, in the case of an apparatus configuration for performing an 8-point interpolation operation, the number of memories to be used is not 8 but 7 or less. Similarly, in the case of an apparatus configuration for performing a 5-point interpolation operation, the number of memories to be used is 5 For example, the number of memories for holding grid point data can be reduced to less than the number of data for the interpolation operation site, and the total capacity of the memories required to achieve the same function can be reduced.
[0197]
In the above-described embodiment, an example has been described in which data of three colors R, G, and B are handled as input color data of k colors, and converted into four colors of Y, M, C, and K as output color data of j colors. However, as long as the number of color components is three or more for each of the input system and the output system, it is possible to change to a mode that handles another color system. Of course, it is possible to correspond to any of RGB, Lab, YCbCr, YMCK, etc. without depending on the color space.
[0198]
In the above embodiment, each grid point of a k-dimensional hypercube formed by 2 k grid points of a k-dimensional hypercube space determined based on k (specifically, 3) component data is described. Is treated as the original LUT, and the shape of the unit lattice is cubic. However, the shape of the unit lattice defined by the individual lattice points is not necessarily limited to a cube. .
[0199]
Further, in the above embodiment, the unit lattice (unit cube) is internally divided by a polyhedron (specifically, tetrahedron) having the same capacity. However, the polyhedron dividing the unit lattice is not necessarily of the same capacity. It does not have to be.
[0200]
【The invention's effect】
As is clear from the above description, in the present invention, when performing an interpolation operation in a polyhedron, a smaller number of independently controllable memory spaces than the number of data for the interpolation operation site are used, and the memory space is used. , The basic data corresponding to the grid point data associated with each grid point of the k-dimensional grid space defined by the input color signal elements of k colors is converted into a plurality of basic addresses in one address according to a predetermined procedure. Is packed and stored so as to be allocated, and among a plurality of basic data allocated to the same address, the basic data corresponding to the number of data for the interpolation operation site corresponding to the pixel data to be processed is extracted, and is extracted in the polyhedron. Interpolation calculation is performed.
[0201]
As a result, color data conversion can be realized with a small memory resource of less than the number of data for the interpolation operation site (four in the case of four-point interpolation), and power consumption and radiation noise can be reduced. .
[Brief description of the drawings]
FIG. 1 is a block diagram showing a first embodiment of a data conversion device according to the present invention.
FIG. 2 is a flowchart illustrating an outline of a processing procedure regarding conversion of color data in the data conversion device according to the first embodiment.
FIG. 3 is a diagram illustrating a lookup table for an R-axis constituting grid point data which is a representative value of output values.
FIG. 4 is a diagram illustrating a G-axis lookup table forming grid point data which is a representative value of output values.
FIG. 5 is a diagram illustrating a lookup table for the B-axis constituting grid point data as a representative value of output values.
FIG. 6 is a diagram illustrating a unit cube determination process (S100 to S102 in FIG. 2) in an arithmetic processing unit.
FIG. 7 is a diagram illustrating a tetrahedron determination process (S104 to S106 in FIG. 2) in the arithmetic processing unit.
FIG. 8 is a diagram illustrating an access memory specifying process (S108a in FIG. 2) and a 4-grid point specifying process (S108b in FIG. 2) in the arithmetic processing unit.
FIG. 9 is a diagram showing a positional relationship between input data and data in a three-dimensional LUT space.
FIG. 10 is a diagram showing a positional relationship between input data belonging to a tetrahedron 1 and data in a three-dimensional LUT space.
FIG. 11 is a diagram showing a positional relationship between input data belonging to a tetrahedron 2 and data in a three-dimensional LUT space.
FIG. 12 is a diagram showing a positional relationship between input data belonging to a tetrahedron 3 and data in a three-dimensional LUT space.
FIG. 13 is a diagram showing a positional relationship between input data belonging to a tetrahedron 4 and data in a three-dimensional LUT space.
FIG. 14 is a diagram showing a positional relationship between input data belonging to a tetrahedron 5 and data in a three-dimensional LUT space.
FIG. 15 is a diagram showing a positional relationship between input data belonging to a tetrahedron 6 and data in a three-dimensional LUT space.
16 is a diagram illustrating an interpolation coefficient calculation process (S102c in FIG. 2) and an interpolation calculation process (S102d in FIG. 2) in the calculation processing unit.
FIG. 17 is a block diagram showing a second embodiment of the data conversion device according to the present invention.
FIG. 18 is a block diagram showing a third embodiment of the data conversion device according to the present invention.
FIG. 19 is a block diagram illustrating a first example of a specific configuration of a data storage unit and a data selection unit.
FIG. 20 is a block diagram illustrating a second example of a specific configuration of the data storage unit and the data selection unit.
FIG. 21 is a block diagram illustrating an example of a specific configuration of a data storage unit, an address generation unit, and an interpolation operation processing unit.
[Explanation of symbols]
DESCRIPTION OF SYMBOLS 1 ... Data conversion apparatus, 2 ... Data storage part, 2R ... R-axis memory circuit, 2G ... G-axis memory circuit, 2B ... B-axis memory circuit, 4 ... Operation processing part, 4Y ... Y signal generation part, 4M ... M signal Generation unit, 4C ... C signal generation unit, 4K ... K signal generation unit, 10 ... address generation unit, 14 ... tetrahedron determination unit, 16 ... data selection unit, 20 ... interpolation coefficient generation unit, 22 ... interpolation processing unit, 30 ... memory cells, 32 ... X address setting circuits, 34 ... Y address setting circuits, 36 ... output buffers, 38, 42, 44, 46 ... data selectors, 40 ... latch circuits, 48, 50 ... output switching circuits, 60 ... inputs Switching circuit

Claims (12)

入力色データを出力色データに変換する際に用いられる格子点データに基づいて、前記入力色データの画素データごとに、当該画素データが前記格子点データの集合を構成する単位格子体の何れに属するのかを判定し、該当する単位格子体の中をさらに複数個の多面体に分割して前記画素データが何れの前記多面体に属するのかを判定し、該当する前記多面体内での補間演算により、入力された前記画素データに対応する出力用の画素データを決定するデータ変換方法において、
前記多面体に応じて規定される補間演算所用データ数よりも少ない数のそれぞれ独立に制御可能なメモリ空間を使用し、
k色の入力色信号要素で規定されるk次元格子空間の各格子点に対応づけられた前記格子点データに対応する基礎データを所定の基準に従って複数のグループに分け、当該グループごとに、このグループ内の複数の前記基礎データを前記複数のメモリ空間の対応するものに格納し、
前記グループに対応付けられた前記複数の基礎データの中から、処理対象の画素データに対応する前記補間演算所用データ数分の基礎データを抽出し、この抽出した補間演算所用データ数分の基礎データを用いて、前記多面体内での補間演算を行なう
ことを特徴とするデータ変換方法。
Based on the grid point data used when converting the input color data into the output color data, for each pixel data of the input color data, the pixel data is assigned to any of the unit grids constituting the set of the grid point data. It is determined whether the pixel data belongs to, the corresponding unit cell is further divided into a plurality of polyhedrons, and it is determined which of the polyhedrons the pixel data belongs to. A data conversion method for determining output pixel data corresponding to the pixel data,
Using a number of independently controllable memory spaces less than the number of data for the interpolation operation site defined according to the polyhedron,
The basic data corresponding to the grid point data associated with each grid point of the k-dimensional grid space defined by the input color signal elements of k colors is divided into a plurality of groups according to a predetermined criterion. Storing a plurality of said basic data in a group in a corresponding one of said plurality of memory spaces;
From the plurality of basic data associated with the group, basic data for the number of data for the interpolation operation site corresponding to pixel data to be processed is extracted, and basic data for the number of data for the extracted interpolation operation site are extracted. And performing an interpolation operation in the polyhedron by using the data conversion method.
前記処理対象の画素データが前記複数個の多面体のうちの何れに属するのかの判定結果に基づいて、当該画素データに対応する前記補間演算所用データ数分の基礎データを抽出することを特徴とする請求項1に記載のデータ変換方法。Based on a determination result as to which of the plurality of polyhedrons the pixel data to be processed belongs to, the basic data for the number of the data for the interpolation operation site corresponding to the pixel data is extracted. The data conversion method according to claim 1. 前記k色が3色であって、前記多面体が出力色信号要素の各要素に対応する4面体であって、前記補間演算が4面体補間演算で各出力色信号要素ごとに構成され、出力色信号要素が3あるいは4であることを特徴とする請求項1に記載のデータ変換方法。The k colors are three colors, the polyhedron is a tetrahedron corresponding to each element of an output color signal element, and the interpolation operation is configured for each output color signal element by a tetrahedral interpolation operation, and 2. The data conversion method according to claim 1, wherein the number of signal elements is 3 or 4. 入力色データを出力色データに変換する際に用いられる格子点データに基づいて、前記入力色データの画素データごとに、当該画素データが前記格子点データの集合を構成する単位格子体の何れに属するのかを判定する単位格子体判定部と、当該単位格子体判定部により判定された該当する単位格子体の中をさらに複数個の多面体に分割して前記画素データが何れの前記多面体に属するのかを判定する多面体判定部と、当該多面体判定部により判定された該当する前記多面体内での補間演算により、入力された前記画素データに対応する出力用の画素データを決定する補間演算処理部とを備えたデータ変換装置において、
前記多面体に応じて規定される補間演算所用データ数よりも少ない数のそれぞれ独立に制御可能な複数のメモリ空間を具備し、k色の入力色信号要素で規定されるk次元格子空間の各格子点に対応づけられた前記格子点データに対応する基礎データを格納するデータ格納部であって、前記基礎データを所定の基準に従って複数のグループに分け、当該グループごとに、このグループ内の複数の前記基礎データを前記複数のメモリ空間の対応するものに格納するデータ格納部と、
前記データ格納部に格納されている前記グループに対応付けられた前記複数の基礎データの中から、処理対象の画素データに対応する前記補間演算所用データ数分の基礎データを抽出する基礎データ抽出部とを備え、
前記補間演算処理部は、前記基礎データ抽出部により抽出された前記補間演算所用データ数分の基礎データを用いて、前記多面体内での補間演算を行なうことを特徴とするデータ変換装置。
Based on the grid point data used when converting the input color data into the output color data, for each pixel data of the input color data, the pixel data is assigned to any of the unit grids constituting the set of the grid point data. A unit lattice body determining unit that determines whether the pixel data belongs to, and the corresponding unit lattice body determined by the unit lattice body determining unit is further divided into a plurality of polyhedrons, and to which of the polyhedrons the pixel data belongs A polyhedron determination unit, and an interpolation calculation processing unit that determines output pixel data corresponding to the input pixel data by interpolation calculation in the corresponding polyhedron determined by the polyhedron determination unit. In the provided data conversion device,
A plurality of independently controllable memory spaces smaller than the number of data for the interpolation calculation office defined according to the polyhedron, and each grid of a k-dimensional grid space defined by input color signal elements of k colors A data storage unit for storing basic data corresponding to the grid point data associated with points, wherein the basic data is divided into a plurality of groups according to a predetermined criterion, and for each of the groups, a plurality of A data storage unit that stores the basic data in a corresponding one of the plurality of memory spaces;
A basic data extraction unit for extracting, from the plurality of basic data associated with the group stored in the data storage unit, basic data corresponding to the number of data for the interpolation operation site corresponding to pixel data to be processed; With
The data conversion device, wherein the interpolation calculation processing unit performs an interpolation calculation in the polyhedron using the basic data for the number of the data for the interpolation calculation site extracted by the basic data extraction unit.
前記メモリ空間の数は、前記入力色データの構成要素の数であるkと同じであって、
前記データ格納部は、前記k次元を確定するそれぞれ独立なk個の軸の方向に沿って、前記基礎データをグループに分ける
ことを特徴とする請求項4に記載のデータ変換装置。
The number of the memory spaces is the same as k, which is the number of components of the input color data,
The data conversion device according to claim 4, wherein the data storage unit divides the basic data into groups along directions of k independent axes that determine the k dimension.
前記処理対象の画素データが前記複数個の多面体のうちの何れに属するのかについての前記多面体判定部による判定結果に基づいて、グループ分けされて格納されている前記基礎データのうちの前記処理対象の画素データに対応する前記補間演算所用データ数分の基礎データを含むグループの格納位置を示す読出アドレスを前記データ格納部に設定するアドレス設定部を備えたことを特徴とする請求項4または5に記載のデータ変換装置。Based on the determination result by the polyhedron determination unit as to which of the plurality of polyhedrons the pixel data of the processing target belongs to, the processing target of the basic data stored in a grouped manner. 6. The data storage unit according to claim 4, further comprising: an address setting unit that sets a read address indicating a storage position of a group including basic data for the number of data for the interpolation operation site corresponding to pixel data in the data storage unit. Data conversion device as described in the above. 前記基礎データ抽出部は、前記アドレス設定部により設定されているアドレスに対応する前記グループ内の複数の基礎データを全て読み出し、この読み出した複数の基礎データの中から、前記処理対象の画素データに対応する前記補間演算所用データ数分の基礎データを抽出することを特徴とする請求項6に記載のデータ変換装置。The basic data extraction unit reads all of the plurality of basic data in the group corresponding to the address set by the address setting unit, and from among the read plurality of basic data, the pixel data to be processed. 7. The data conversion apparatus according to claim 6, wherein basic data corresponding to the number of the corresponding data for the interpolation operation site is extracted. 前記基礎データ抽出部は、前記処理対象の画素データが前記複数個の多面体のうちの何れに属するのかについての前記多面体判定部による判定結果に基づいて、前記読み出した複数の基礎データの中から、前記処理対象の画素データに対応する前記補間演算所用データ数分の基礎データを特定することを特徴とする請求項7に記載のデータ変換装置。The basic data extraction unit, based on a determination result by the polyhedron determination unit as to which of the plurality of polyhedrons the pixel data to be processed belongs to, from among the read plurality of basic data, 8. The data conversion apparatus according to claim 7, wherein basic data for the number of data for the interpolation operation site corresponding to the pixel data to be processed is specified. 前記データ格納部は、前記処理対象の画素データに対応する前記基礎データを含むグループ内の複数の基礎データの中から、前記補間演算所用データ数分の基礎データのみを読出可能に構成されており、
前記アドレス設定部は、前記基礎データ抽出部の機能を備えるとともに、前記処理対象の画素データが前記複数個の多面体のうちの何れに属するのかについての前記多面体判定部による判定結果に基づいて、前記処理対象の画素データに対応する前記補間演算所用データ数分の基礎データの格納位置を示す読出アドレスを前記データ格納部に設定する
ことを特徴とする請求項6に記載のデータ変換装置。
The data storage unit is configured to be able to read only the basic data for the number of the data for the interpolation operation site from among a plurality of basic data in the group including the basic data corresponding to the pixel data to be processed. ,
The address setting unit, having the function of the basic data extraction unit, based on a determination result by the polyhedron determination unit as to which of the plurality of polyhedrons the pixel data to be processed belongs, 7. The data conversion device according to claim 6, wherein a read address indicating a storage position of basic data corresponding to the number of data for the interpolation operation site corresponding to pixel data to be processed is set in the data storage unit.
前記単位格子体判定部は、前記処理対象の画素データの上位mビットのデータに基づいて当該画素データが属する前記単位格子体を特定するものであり、
前記多面体判定部は、前記単位格子体判定部により前記処理対象の画素データが属すると判定された前記単位格子体について、当該画素データの下位nビットのデータに基づいて当該画素データが属する前記多面体を特定するものであり、
前記基礎データ抽出部は、前記処理対象の画素データの上位l(エル)ビットのデータに基づいて、前記処理対象の画素データに対応する前記補間演算所用データ数分の基礎データを抽出するものである
ことを特徴とする請求項4から9のうち何れか1項に記載のデータ変換装置。
The unit lattice body determination unit is for identifying the unit lattice body to which the pixel data belongs, based on upper m-bit data of the pixel data to be processed,
The polyhedron determination unit is configured to determine, for the unit grid body to which the pixel data to be processed belongs by the unit grid body determination unit, the polyhedron to which the pixel data belongs based on lower n bits of the pixel data. To identify the
The basic data extraction unit is configured to extract basic data for the number of the data for the interpolation operation site corresponding to the pixel data to be processed, based on data of upper l bits of the pixel data to be processed. The data converter according to any one of claims 4 to 9, wherein:
前記補間演算処理部は、前記処理対象の画素データが前記複数個の多面体のうちの何れに属するのかについての前記多面体判定部による判定結果に基づいて、当該画素データが属する前記多面体に応じた補間係数を前記処理対象の画素データの下位nビットのデータを使用して求める補間係数生成部と、当該補間係数生成部により求められた補間係数と前記基礎データ抽出部により抽出された前記複数個の基礎データとを用いて前記多面体内での補間演算を行なう補間処理部とを含むことを特徴とする請求項4から10のうちの何れか1項に記載のデータ変換装置。The interpolation operation processing unit is configured to perform interpolation according to the polyhedron to which the pixel data belongs based on a determination result by the polyhedron determination unit as to which of the plurality of polyhedrons the pixel data to be processed belongs. An interpolation coefficient generation unit that obtains a coefficient by using lower-order n-bit data of the pixel data to be processed; and the interpolation coefficient obtained by the interpolation coefficient generation unit and the plurality of interpolation coefficients extracted by the basic data extraction unit. The data conversion device according to any one of claims 4 to 10, further comprising an interpolation processing unit that performs an interpolation operation within the polyhedron using basic data. 前記データ格納部は、出力色信号要素である4色に対応する前記多面体としての4面体に応じて規定される前記補間演算所用データ数である4つよりも少ない3つの前記メモリ空間のそれぞれに、前記k色としての3色の各軸方向のうちの何れかについて、前記所定の順に従ってグループに分けるものであり、
前記多面体判定部は、前記単位格子体判定部が特定した単位立方体を分割した6つの前記4面体のうちの、前記処理対象の入力された3色の画素データが属する前記4面体を、前記処理対象の画素データの下位nビットのデータに基づいて特定するものであり、
前記基礎データ抽出部は、前記データ格納部における前記各々のアドレスに対応付けられた前記複数の基礎データの中から、処理対象の画素データに対応する前記補間演算所用データ数としての4つの基礎データを抽出し、
前記補間演算処理部は、前記基礎データ抽出部により抽出された前記4つの基礎データを用いて、4面体補間演算を行なうものである
ことを特徴とする請求項4から11のうち何れか1項に記載のデータ変換装置。
The data storage unit stores, in each of the three memory spaces, which is less than four, which is the number of data for the interpolation operation office, defined in accordance with the tetrahedron as the polyhedron corresponding to the four colors as the output color signal elements. , One of the three axial directions of the k colors is divided into groups according to the predetermined order,
The polyhedron determination unit is configured to, among the six tetrahedrons obtained by dividing the unit cube specified by the unit lattice determination unit, process the tetrahedron to which the input three-color pixel data to be processed belongs. It is specified based on data of lower n bits of the target pixel data,
The basic data extraction unit is configured to output, from among the plurality of basic data associated with each of the addresses in the data storage unit, four basic data as the number of data for the interpolation operation station corresponding to pixel data to be processed. Extract
12. The apparatus according to claim 4, wherein the interpolation operation processing unit performs a tetrahedral interpolation operation using the four basic data extracted by the basic data extraction unit. A data conversion device according to claim 1.
JP2002273976A 2002-09-19 2002-09-19 Data conversion method and data conversion apparatus Expired - Fee Related JP4096672B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2002273976A JP4096672B2 (en) 2002-09-19 2002-09-19 Data conversion method and data conversion apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2002273976A JP4096672B2 (en) 2002-09-19 2002-09-19 Data conversion method and data conversion apparatus

Publications (2)

Publication Number Publication Date
JP2004112523A true JP2004112523A (en) 2004-04-08
JP4096672B2 JP4096672B2 (en) 2008-06-04

Family

ID=32270593

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002273976A Expired - Fee Related JP4096672B2 (en) 2002-09-19 2002-09-19 Data conversion method and data conversion apparatus

Country Status (1)

Country Link
JP (1) JP4096672B2 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014099753A (en) * 2012-11-14 2014-05-29 Konica Minolta Inc Color conversion device
CN109615666A (en) * 2018-11-12 2019-04-12 北京中科慧眼科技有限公司 A kind of three-dimensional color space data transfer device and device

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014099753A (en) * 2012-11-14 2014-05-29 Konica Minolta Inc Color conversion device
CN109615666A (en) * 2018-11-12 2019-04-12 北京中科慧眼科技有限公司 A kind of three-dimensional color space data transfer device and device

Also Published As

Publication number Publication date
JP4096672B2 (en) 2008-06-04

Similar Documents

Publication Publication Date Title
JP2007221720A (en) Conversion table compression method and program
US8503025B2 (en) Image processing apparatus, image processing method, and computer program product
JP2007166561A (en) Apparatus, method, and program for image processing and storage medium
EP2109304A1 (en) Color management method, module, and program product, and printer ussing said method
JP3976849B2 (en) Device for generating interpolator input data
US20070031047A1 (en) Image processing apparatus and image processing method
JP4046857B2 (en) Image processing apparatus and method, and recording medium
JPH06320802A (en) Image processor
JP2008259177A (en) Color conversion device, color conversion method, color conversion program
JP2005110089A (en) Color conversion matrix generating method, color conversion table creating method and program
JP4096672B2 (en) Data conversion method and data conversion apparatus
US8259347B2 (en) Image processing apparatus and computer readable medium
JP5267147B2 (en) Image processing apparatus, image processing method, and computer program
JP2007067956A (en) Multi-dimensional interpolation apparatus and multi-dimensional interpolation method
JP3346051B2 (en) Image processing device
JP4431953B2 (en) Data conversion apparatus, data conversion method, and data conversion program
JP2004208128A (en) Data conversion method and data converter
JP3455078B2 (en) Image processing apparatus and image processing method
JPH0946542A (en) Interpolation arithmetic method and data converter
JP3927715B2 (en) Color conversion method and color conversion apparatus
US8175381B2 (en) Image processing method and apparatus
JP3871027B2 (en) Color data converter
JP2007174392A (en) Data converting apparatus, control method and program for the data converting apparatus
JP2012124667A (en) Image processor
JPH07230539A (en) Data converter, image forming device and table data storing method

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20050823

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20070330

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070605

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070806

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20080219

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20080303

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20110321

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20120321

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20130321

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20130321

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20140321

Year of fee payment: 6

LAPS Cancellation because of no payment of annual fees