JP4096672B2 - Data conversion method and data conversion apparatus - Google Patents

Data conversion method and data conversion apparatus Download PDF

Info

Publication number
JP4096672B2
JP4096672B2 JP2002273976A JP2002273976A JP4096672B2 JP 4096672 B2 JP4096672 B2 JP 4096672B2 JP 2002273976 A JP2002273976 A JP 2002273976A JP 2002273976 A JP2002273976 A JP 2002273976A JP 4096672 B2 JP4096672 B2 JP 4096672B2
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.)
Expired - Fee Related
Application number
JP2002273976A
Other languages
Japanese (ja)
Other versions
JP2004112523A (en
Inventor
泰直 海野
悟朗 野田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujifilm Business Innovation Corp
Original Assignee
Fuji Xerox Co Ltd
Fujifilm Business Innovation Corp
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, Fujifilm Business Innovation Corp 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)

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の容量は4.9キロバイトで実現可能となり、補間処理を用いない方式における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,2Bのうち、テトラ・ハイドラ法による補間演算処理に必要となる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〜図の各(A)は、RGB3次元空間の一部を記したものである。また、図3〜図の各(B)は、各軸用のメモリ回路2R,2G,2Bのメモリ空間上におけるアドレスと基礎データの関係、すなわち各軸のLUTを示す。なお、図3〜図の各(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の容量は4.9キロバイトで実現可能となり、補間処理を用いない方式における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ビットデータの組合せ値の空間位置P122を基点にして該当する単位立方体の各頂点の基礎データ(格子点データ)の中から、処理対象画素に対応する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段階の処理である補間係数算出処理(S10c)と補間演算処理(S10d)を説明する図である。この表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 0004096672
【0096】
この第1実施形態の構成によれば、入力データに対応する出力データを4面体補間演算により求めるに際して、格子点データ保持用のメモリ(空間)の数を、4面体補間演算に必要となる4頂点に相当する4個ではなく3個で構成したので、結果的に、同じデータのメモリを4倍持つ必要がなく3倍ですむため、同じ機能を達成するために必要なメモリの総容量が従来の3/4になる。
【0097】
つまり、従来は、同容量の独立駆動可能なメモリ(空間)を補間演算所用データ数だけ備える必要があったのと異なり、補間演算に必要となる格子点データ数とメモリ空間の数を同じにしなければならないという従来の制約から開放され、たとえば、4点補間の場合は、格子点データ保持用のメモリを4倍持つ必要がなく4倍未満(たとえば3倍)で済むなど、同じ機能を達成するために必要なメモリの総容量や独立制御可能なメモリ空間数を低減することができる。加えて、同時アクセスのメモリ空間数を低減することができるので、消費電力や放射ノイズを低減することもできる。
【0098】
たとえば、従来は1つの補間演算用データを抽出するために17×17×17個、つまり4,913バイト必要であり、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〜図1の各(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〜図の各(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]
BACKGROUND OF THE INVENTION
The present invention relates to a data conversion method and a data conversion apparatus that perform data conversion using an interpolation operation. More specifically, for example, R (red), G (green), B (blue) multi-dimensional input image data in an image processing apparatus such as a printer, a facsimile machine, or a multi-function machine having these functions. Multi-dimensional input image signals into different color data, such as converting Y (yellow), M (magenta), C (cyan), and K (black) multi-dimensional output image data into one color data. It relates to technology to convert.
[0002]
[Prior art]
[Patent Document 1]
JP-A-8-181874
[Patent Document 2]
Japanese Examined Patent Publication No. 58-16180
[Patent Document 3]
JP-A-56-14237
[0003]
An image forming apparatus having a printing function such as a printer or a copying apparatus is used in various fields. Also, today, image forming apparatuses are colorized and are used as various expression means for users. For example, a color page printer apparatus using an electrophotographic process (xerography) has attracted attention in terms of high quality image quality or high speed printing.
[0004]
Also, today, with the spread of DTP (DeskTop Publishing / Prepress), opportunities for handling color images are increasing. In this case, devices for inputting color images are mainly scanners and video cameras. The output device is an ink-jet method, a dye thermal sublimation method, or various color printers such as electrophotography. In particular, a printing function using an electrophotographic process capable of high-speed output has attracted attention.
[0005]
Each of these color input / output devices has a unique color space. When color image data obtained from a certain scanner is transferred to another color printer as it is and an image is output, the color of the image is changed. It is almost impossible to match the color of the original image. To match both colors, color space conversion processing such as converting the color space of a so-called input device (such as a scanner or video camera) to the color space of an output device (the above-mentioned various color printers) Is required.
[0006]
Such color space conversion processing refers to image signals of colors (generally, three colors of R (red), B (blue), and G (green)) obtained by an input device on the output device side. Alternatively, it is non-linearly converted into image signals of four colors.
[0007]
In non-linear conversion (for example, gamma conversion and log conversion) for digital signals such as images, generally conversion using LUT (Look Up Table) is often performed. The method using the LUT is a method in which an output value corresponding to an input signal is calculated in advance, the value is stored 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 becomes large. For example, when a process for performing an arbitrary non-linear conversion on one video data of 8 bits is performed using an LUT. The processing can be realized if there is a memory having a capacity of 256 bytes, and a complicated arithmetic circuit can be deleted. By the way, since the conversion as described above is to convert one image signal into another image signal of another nature, the LUT used there is called a one-dimensional LUT.
[0009]
For example, a hard copy output device such as a printer handles color image signals. 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, scanners, digital still cameras, and the like are assumed as input devices for color images, and each has a unique color space. These have various color spaces, but typically have a color space composed of R, G, and B. Therefore, when outputting as a hard copy by an output device such as a printer, it is necessary to convert these color spaces.
[0010]
However, if the process of converting the above-described three-color image data of the input device into one of a plurality of colors of the output device is performed using only a three-dimensional LUT, a large-capacity memory is required. For example, if the R, G, B signals are 8-bit signals, and the output Y, M, C, K signals are also 8-bit signals, there are 16,777,216 combinations of input values (2 ^ 8x2 ^ 8x2 ^ 8 ways; "^" indicates a power), and is used to convert the input of R, G, B to one color of Y, M, C, K A 16 megabyte (Mbyte) memory is required. Therefore, in order to convert to four colors of Y, M, C, and K, a memory of 64 megabytes, which is four times 16 megabytes, is required.
[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-described memory is required for the number of colors of the output device. Therefore, the actual memory capacity is as large as 48 to 64 Mbytes. Therefore, this memory capacity has a large impact on the system from the viewpoint of cost, and is not realistic.
[0012]
In order to solve such a problem, when an LUT is used in color conversion processing, it is common to reduce the memory capacity of the LUT to be used by using interpolation processing together. A data conversion mechanism based on a combination of the above has been proposed. This is to reduce the LUT capacity in the above system by configuring the output value corresponding to only the upper bits of the input signal as the LUT. When an output value corresponding to the input signal does not exist, interpolation processing is performed using data in the vicinity of 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 what kind of relation of the lattice point data is used. In general, a method using a large amount of grid point data improves the interpolation accuracy, but increases the scale of the interpolation circuit. 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 Document 1 also states that there is a five-point interpolation method. Patent Document 2 describes as a conventional example that there is also a cubic interpolation method (8-point interpolation method) as an interpolation method with high interpolation accuracy although the circuit scale is large.
[0014]
The four-point interpolation method and the eight-point interpolation method described above are the interpolation methods having the smallest circuit scale, that is, the smallest number of lattice points, respectively, when performing an interpolation operation using lattice point data existing corresponding to each lattice point of the cubic lattice This corresponds to the method of interpolating with data and the method of interpolating with the largest circuit scale, that is, the method of interpolating with the most lattice point data. That is, the number of grid point data (the number of interpolation calculation data) when performing interpolation calculation using each grid point data of the three-dimensional cubic grid is a polyhedron that internally divides the unit cube determined by the grid points of the original LUT. When the target is a cubic lattice, the minimum is 4 and the maximum is 8.
[0015]
For example, a grid consisting of data of three input elements is constructed, which grid is determined from the upper bits of the three input elements, and the data is further divided into six tetrahedrons. The method of determining which tetrahedron the corresponding data is included from the lower bits of the three elements and calculating based on the basic data obtained from the tetrahedron vertex and the multiplier determined for each tetrahedron is tetra. Hydra interpolation calculation (tetrahedral interpolation calculation). In this case, if the input data is determined, the required tetrahedron is uniquely determined, and in order to determine the tetrahedron, it is only necessary to have a total of four vertices obtained from two line segments that do not intersect each other.
[0016]
On the other hand, in the interpolation process, the interpolation accuracy of the output value differs depending on the number of nearby data to be calculated. Interpolation accuracy improves if more data is targeted for interpolation. However, when a large amount of data is used, the scale of the interpolation circuit is increased, and the effect of circuit reduction is reduced.
[0017]
As a technique for solving this problem, Patent Document 1 proposes a method for efficiently defining the amount of data held in the LUT and the number of data used for interpolation. The method described in Patent Document 1 first forms a lattice (unit cube) composed of three input element data, and corresponds to any lattice based on the upper bit data RH, GH, BH of the three input elements. Determine whether data is included, further divide the data into six tetrahedrons, and determine which tetrahedron contains the corresponding data based on the lower bit data RL, GL, BL of the three input elements Based on the basic data obtained from the tetrahedron vertices and the multiplier (interpolation coefficient) determined for each tetrahedron, an output value corresponding to the input value is obtained by calculation using the tetra-hydra method. .
[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 is only necessary 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 each successive vertex of one of the three input elements.
[0019]
  When the method described in Patent Document 1 is used, the number of data stored in the LUT is defined as 17 data × 17 data × 17 data when converting the input R, G, B to any one color (output color). The LUT capacity is4.9This can be realized in kilobytes, and a large capacity reduction is possible compared to 16 megabytes in a method that does not use interpolation processing.
[0020]
[Problems to be solved by the invention]
However, in the method described in Patent Document 1, when the time allocated as the color space conversion processing time for one pixel is very short, a plurality of data is read out from the memory used as the LUT a plurality of times. Therefore, it is necessary to use the same amount of memory as the number of interpolation calculation data.
[0021]
In the case of tetra-hydra interpolation, assuming conversion from RGB to YMCK, four for extracting four grid points for conversion to Y, four for conversion to M, and four for conversion to C A total of 16 memories with the same capacity are required for conversion to K and 4 for conversion to 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. Emphasizing 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, in addition to an increase in memory capacity, 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. In the conventional method, if the interpolation method is determined, the number of grid point data necessary for the interpolation calculation is also uniquely determined, and the number of simultaneously accessed memories is also uniquely determined accordingly. There was no effective means to reduce radiation noise.
[0023]
The present invention has been made in view of the above circumstances, and when performing data conversion using interpolation calculation, the memory capacity for data storage, power consumption or radiation noise is reduced without degrading the interpolation accuracy. It is an object of the present invention to provide a data conversion method and apparatus that can be reduced.
[0024]
[Means for Solving the Problems]
That is, in the data conversion method according to the present invention, 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 to the output color data. Are determined to belong to the unit cell, and the corresponding unit cell is further divided into a plurality of polyhedrons to determine which polyhedron the pixel data belongs to. Is a data conversion method for determining pixel data for output corresponding to input pixel data by interpolation, and first, the number of data for interpolation calculation defined according to the polyhedron (that is, the basic necessary for interpolation calculation) A smaller number of memory spaces that can be controlled independently than the number of data) were used.
[0025]
  The basic data corresponding to the lattice point data associated with each lattice point of the k-dimensional lattice space defined by the k-color input color signal elements is divided into a plurality of groups according to a predetermined criterion. A plurality of basic data in the group is stored in corresponding ones in a plurality of memory spaces. That is, for each memory space, basic data is grouped according to a predetermined standard, a common address is assigned to each basic data in each group, and stored in each memory cell.Specifically, for the basic data, axes are set according to the number of memory spaces, and each axis is divided into a plurality of groups along the corresponding axis. A plurality of the basic data are collectively stored as packing data in the memory space for the corresponding axis.
[0026]
In actual interpolation calculation, basic data corresponding to the number of interpolation calculation data corresponding to the pixel data to be processed is extracted from the plurality of basic data associated with the group, and the extracted interpolation calculation data is used. Interpolation is performed within the polyhedron using the basic data for the number of data.
[0027]
When extracting the basic data for the number of interpolation calculation data corresponding to the pixel data to be processed, it is preferable to refer to the determination result to which of the plurality of polyhedrons the pixel data to be processed belongs. .
[0028]
In the data conversion method according to the present invention, in particular, the k color is three colors, that is, the input color space is three dimensional, and the polyhedron is the output color signal element, that is, four colors, that is, the output color space is four dimensional. If the corresponding polyhedron is a tetrahedron, and is applied to one that performs tetrahedron interpolation calculation, the effect is high.
[0029]
A data conversion apparatus according to the present invention is an apparatus for performing the data conversion method according to the present invention. That is, the data conversion device according to the present invention is a set of grid point data for each pixel data of the input color data based on the grid point data used when converting the input color data to the output color data. A unit grid determining unit that determines which unit grid belongs to the unit grid, and the unit grid determined by the unit grid determining unit is further divided into a plurality of polyhedrons to determine which pixel data A polyhedron determination unit that determines whether the polyhedron belongs to, and an interpolation calculation processing unit that determines output pixel data corresponding to input pixel data by interpolation calculation in the corresponding polyhedron determined by the polyhedron determination unit; First, a plurality of independently controllable memory spaces smaller than the number of interpolation calculation data 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 the k-dimensional grid space defined by the k input color signal elements, According to the standard, the data is divided into a plurality of groups, and each group includes a data storage unit that stores a plurality of basic data in the group in a corresponding one of a plurality of memory spaces.
[0030]
In addition, the data conversion device according to the present invention includes basic data corresponding to the number of interpolation operation data corresponding to pixel data to be processed among a plurality of basic data associated with groups stored in the data storage unit. In addition, the basic data extraction unit is extracted, and the interpolation calculation processing unit performs the interpolation calculation in the polyhedron using the basic data corresponding to the number of interpolation calculation data extracted by the basic data extraction unit.
[0031]
The invention described in the dependent claims defines a further advantageous specific example of the data conversion device according to the present invention.
[0032]
The control function part and the interpolation calculation function part of the data storage unit can be realized by software without using hardware, and the data conversion apparatus according to the present invention is realized by software using an electronic computer. A suitable program and a computer-readable storage medium storing the program can also be extracted as the invention of the present application. The program may be provided by being stored in a computer-readable storage medium, or may be distributed via wired or wireless communication means.
[0033]
In the above, “independently controllable memory space” means that at least a read address can be set independently for each memory space when reading basic data necessary for interpolation calculation from the data storage unit. Means that. More preferably, the read clock can also be set independently. Further, it is more preferable that the output of each memory space can be set to a high impedance state independently.
[0034]
The “basic data” is data necessary for the interpolation operation, and may be the original LUT lattice point data itself, and is not limited to this, and corresponds to the original LUT lattice point data. 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 calculation is made smaller than the number of basic data required for the interpolation calculation. Then, with respect to the small memory space, each address is obtained by dividing a predetermined number of data into groups based on a predetermined rule from the lattice point data of the original LUT or a large number of data corresponding to the lattice point data. A plurality of basic data are associated with each other and stored in the memory space.
[0036]
In the actual interpolation calculation, basic data corresponding to the number of interpolation calculation data corresponding to the pixel data to be processed is read out from a plurality of basic data associated with each address, and interpolation is performed within the polyhedron. Perform the operation.
[0037]
DETAILED DESCRIPTION OF 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 a data conversion apparatus according to the present invention. As an example, an R, G, B, 8-bit input digital color separation signal is input to the data conversion device 1 from an external device, and the input digital color separation signal is output to each of the color components Y, M, C, K of the output system. Color conversion to 8-bit data. 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 apparatus 1 of the first embodiment stores a basic data used for obtaining output data after color conversion corresponding to input data by interpolation calculation for each output color. And an arithmetic processing unit 4 that obtains output pixel data corresponding to the 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, since interpolation calculation is performed by the tetra-hydra method, the basic data is the lattice point data itself of the original three-dimensional LUT.
[0040]
The arithmetic processing unit 4 has a Y signal generation unit 4Y, an M signal generation unit 4M, and a C signal generation unit 4C, K so as to correspond to each of the output color components Y, M, C, K as a signal processing system. A signal generation unit 4K is included. The arithmetic processing unit 4 may be constituted by, for example, a central processing unit (CPU) 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 memory spaces that can be controlled independently, has a lattice point in a three-dimensional lattice space (three-dimensional LUT) defined by three input color signal elements. As will be described later (see FIGS. 3 to 5), basic data corresponding to the associated grid point data is grouped according to a predetermined standard for each axis of the input color, and a plurality of basic data in the group. Are stored in association with one address, and constitute a lookup table LUT for each axis.
[0042]
These memory circuits 2R, 2G, and 2B can be independently addressed and read out so as to be able to cope with the case where the time allocated as the color space conversion processing time for one pixel is very short. In other words, the read access is possible independently. It is preferable to use an independent read enable terminal RE or chip select terminal CS that can set the output of a memory circuit that is not necessary for reading to a high impedance state.
[0043]
Between the data storage unit 2 and the arithmetic processing unit 4, the arithmetic processing unit 4 reads out a control signal such as an address signal in order to read out basic data from the data storage unit 2, and reads out from the data storage unit 2. The basic data is connected by a data bus 8 that sends the basic data to the arithmetic processing unit 4.
[0044]
In the address bus 6, transmission of an address signal, a clock, a chip select signal, or the like for setting a reading position of basic data in each memory space (memory circuits 2R, 2G, 2B) in the data storage unit 2 is performed.
[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 relating to color data conversion in the data conversion apparatus 1 having the above configuration.
[0047]
The arithmetic processing unit 4 according to the first embodiment uses the grid point data of the color conversion LUT (look-up table) stored in the data storage unit 2 to output R, G, and B of R, G, and B input from an external device. When each signal is color-converted into Y, M, C, and K color data, interpolation processing using the tetra-hydra method (tetrahedral interpolation method) is used.
[0048]
Therefore, when the image data R, G, B is input, the arithmetic processing unit 4 first converts the input 8-bit R, G, B digital color separation signal into the upper m bits (the most significant bit) for each pixel. It is divided into m consecutive from the bit side) and lower n bits (n consecutive from the least significant bit side) (S100). The arithmetic processing unit 4 configures a three-dimensional lattice (three-dimensional LUT) composed of R, G, B data of the three input elements based on the upper m bits of data RH, GH, BH of the three input elements. At this time, it is determined which unit cube of a large number of unit lattices (in this example, unit cubes) defined by each lattice point contains the corresponding data (S102). The processing of steps S100 to S102 is referred to as unit cube determination processing.
[0049]
Next, the arithmetic processing unit 4 further divides the corresponding unit cube into six tetrahedrons (S104), and selects any tetrahedron based on the lower 3 bits of the input n-element data RL, GL, BL. It is determined whether the corresponding data is included (S106). The process of steps S104 to S106 is referred to as a tetrahedron determination process.
[0050]
Next, the arithmetic processing unit 4 performs an output value (pixel to be output) corresponding to an input value (input pixel data) by a tetra-hydra method (tetrahedral interpolation method) that is an interpolation calculation within the corresponding tetrahedron. Data) is obtained (S108).
[0051]
  Specifically, as shown on the right side in the figure, the arithmetic processing unit 4 first has three memory circuits 2R, 2G,2BAmong them, an access memory specifying process for specifying two memories from which basic data of four grid points necessary for the interpolation calculation process by the tetra-hydra method is to be extracted is performed (S108a). Next, the arithmetic processing unit 4 specifies and extracts four grid points necessary for the interpolation calculation in the data group of the same address specified in the access memory specifying process based on the coordinate value of the base point including the input point. Four grid point specifying processing is performed (S108b). The access memory specifying process (S108a) and the 4-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 four grid point specifying process (S108b), the arithmetic processing unit 4 performs four basic data obtained from the tetrahedron vertices (in this example, the original grid). An interpolation coefficient calculation process is performed to calculate an interpolation coefficient that is a weighting coefficient (multiplication coefficient) for the point data itself (S108c). Then, the arithmetic processing unit 4 is based on the basic data (grid point data) obtained by the 4-grid point specifying process (S108b) and the interpolation coefficient obtained by the interpolation coefficient calculation process (S108c) for the corresponding tetrahedron. Then, an interpolation calculation process for obtaining an output value Dout corresponding to the input value is performed (S108d).
[0053]
The arithmetic processing unit 4 performs the above-described series of processing for each of output colors Y, M, C, and K (S112) and all pixels (S100), thereby inputting the input color data of the RGB color space. Is converted to YMCK color space data.
[0054]
3 to 5 are diagrams for explaining LUTs constituting lattice point data that are representative values of output values. Here, for each of the R, G, and B axes, a three-dimensional LUT storing the converted data corresponding to 17 × 17 × 17 = 4913 lattice points as representative values is used as the original lattice point data. The case will be explained. 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]
  Fig. 3 to Fig.5Each of (A) describes a part of the RGB three-dimensional space. Also, Fig. 3 to Fig.5(B) shows the relationship between the address and basic data in the memory space of the memory circuits 2R, 2G, 2B for each axis, that is, the LUT for each axis. 3 to Figure5For the method of using the “address in the case of a two-dimensional address” shown at the bottom of the table in each (B) of the third embodiment (see FIG. 18) and the second example of the specific circuit configuration (see FIG. 20) And a third example (see FIG. 21).
[0056]
In the prior art, representative values of output values are stored as LUTs for each grid point position indicated by a circle, and each grid point position is an address on a memory for storing grid point data. That is, as described above, 4913 addresses were defined. On the other hand, in the present embodiment, a plurality of basic data (in this example, lattice point data itself) is associated with one address and stored (mapped) in units of 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, “output a plurality of basic data collectively as packing data” is not limited to outputting a plurality of basic data in parallel at the same time, but sequentially outputs the basic data in time series. Including. The form in which a plurality of basic data is output 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 (collectively) and stored in the R-axis memory circuit 2R to store the R-axis data. The LUT is configured. The thick line indicates that the basic data is divided into groups (in a lump). That is, basic data (lattice point data itself in this example) is addressed by an arbitrary combination of GH and BH, and basic data for 17 grids is held in one address. FIG. 3B shows an R-axis LUT that is a relationship between an address and basic data on the R-axis memory circuit 2R.
[0059]
Similarly, as shown in FIG. 4 (A), the basic data in the G-axis direction is stored in the G-axis memory circuit 2G by dividing it into a plurality of groups (in a lump) along the axis. Configure the axis LUT. The thick line indicates that the basic data is divided into groups (in a lump). Here, data is addressed by any combination of RH and BH, and basic data for 17 grid points is held in one address. FIG. 4B shows a B-axis LUT that is the relationship between the address on the memory and the basic data.
[0060]
Similarly, as shown in FIG. 5A, the B-axis memory circuit 2B stores the basic data in the B-axis direction by dividing it into a plurality of groups (in a lump) along the axis. LUT is configured. The thick line indicates that the basic data is divided into groups (in a lump). Here, the data is addressed by any combination of RH and GH, and one address corresponds to 17 grid points. Holds basic data. FIG. 5B shows a B-axis LUT that is the relationship between the address on the memory and the basic data.
[0061]
  At the time of interpolation processing in the arithmetic processing unit 4, two basic data matching the input data are read out from the above-described data strings held together in the memory circuits 2R, 2G, 2B. When this method is used, when converting input data R, G, B to one color, the LUT capacity is4.9The advantages of the Tetra Hydra method, which can be realized in kilobytes and can be significantly reduced compared to 16 megabytes in a method that does not use interpolation processing, and the number of memories used (number of memory spaces) and readout at the same time The number of memories to be accessed can be reduced as compared with the conventional configuration.
[0062]
FIG. 6 is a diagram for explaining the unit cube determination process (steps S100 to S102 in FIG. 2) in the arithmetic processing unit 4, and the original three-dimensional LUT and the input constituting the lattice point data that is the representative value of the output value. It is a figure explaining the relationship with data. 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 higher-order 4-bit signal of each signal. The positional relationship is shown above.
[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. Here, an example in which each axis is divided into 16 is shown. The LUT is configured by using the grid point obtained by such division as an address and associating the converted value (representative value) at the grid point. Therefore, in this example, it is possible to create a three-dimensional LUT that stores the corresponding converted data as representative values for 17 × 17 × 17 = 4913 lattice points.
[0064]
Arithmetic processing unit 4 receives input 8-bit R, G, B digital color separation signals as 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 inputted R, G, B into upper 4 bits RH, GH, BH and lower 4 bits RL, GL, BL, respectively. Of course, m and n may be other than this. Note that “m + n” is preferably equal to 8 bits of input data.
[0065]
As shown in FIG. 6B, the spatial position of the combination value of 8-bit data (input pixel data) of any input R, G, B in the unit cube formed by the combination value of the upper 4-bit data Since P22 is included, it is possible to specify a unit cube that includes input 8-bit data by a unit cube (unit grid) based on the spatial position P21 indicated by the upper 4-bit data RH, GH, BH. Become.
[0066]
Each vertex constituting the unit cube can be generated with reference to the spatial position P21. That is, with (RH, GH, BH) as a base point, (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 vertex of this unit cube. In the present embodiment, the coordinates of these vertices coincide with 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, the neighboring lattice point data, that is, the coordinates of the vertexes of the unit cube shown in FIG. Using the data as basic data, it is obtained by the tetra-hydra method (tetrahedral interpolation method).
[0068]
FIG. 7 is a diagram illustrating 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 this embodiment stores the output signals YMCK corresponding to the combination values of the input digital color separation signals R, G, and B in the data storage unit 2. Based on the basic data (grid point data), it is obtained by interpolation calculation using the tetra-hydra method.
[0069]
FIG. 7 shows the 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 of the same volume as shown in FIG.
[0070]
Which tetrahedron the spatial position P22 of the inputs R, G, B is included can be specified as shown in Table 1 shown in the lower part of FIG. 7 based on the magnitude relationship of the lower bit data RL, GL, BL. Further, the LUT and the access address to be accessed by the data selection unit 16 can also be specified as shown in Table 1.
[0071]
In Table 1, X, Y, and Z are generalized three-dimensional input data. In this 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 when 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, BL has a relationship of RL ≧ GL ≧ BL, the inputs R, G, B are (RH, GH, BH), (RH + 1, GH, BH), (RH + 1, GH + 1, BH), (RH + 1, GH + 1, BH + 1) belong to tetrahedron 1 having apexes. When RL> BL> GL, the inputs R, G, B are (RH, GH, BH), (RH + 1, GH, BH), (RH + 1, GH, BH + 1), (RH + 1, GH + 1, BH + 1). It belongs to tetrahedron 2 as a vertex. When BL ≧ RL> GL, the inputs R, G, B are (RH, GH, BH), (RH + 1, GH, BH + 1), (RH, GH, BH + 1), (RH + 1, GH + 1, BH + 1). Belongs to the tetrahedron 3 with apex as the apex.
[0073]
Similarly, when BL> GL ≧ RL, the inputs R, G, B are (RH, GH, BH), (RH, GH, BH + 1), (RH, GH + 1, BH + 1), (RH + 1, GH + 1). , BH + 1) belongs to the tetrahedron 4 having the vertex. When GL ≧ BL> RL, the inputs R, G, B are (RH, GH, BH), (RH, GH + 1, BH), (RH, GH + 1, BH + 1), (RH + 1, GH + 1, BH + 1). Belongs to the tetrahedron 5 with apex as the vertex. When GL> RL ≧ BL, the inputs R, G, B are (RH, GH, BH), (RH, GH + 1, BH), (RH + 1, GH + 1, BH), (RH + 1, GH + 1, BH + 1). Belongs to the tetrahedron 6 with apex as the apex.
[0074]
The arithmetic processing unit 4 performs such determination (tetrahedron determination) to identify the 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, BL. Based on this result, two LUTs corresponding to the specified tetrahedron are specified, and the upper bit data RH, GH, BH for specifying the 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 lattice 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 stage processes of the output value calculation process (step S108 in FIG. 2) in the arithmetic processing unit 4. FIG. 6 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. Here, α and α ′ are the same spatial position on the G and B coordinates, and can be 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 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]
Therefore, the arithmetic processing unit 4 receives the determination result of the tetrahedron determination process, and performs interpolation by the tetra-hydra method 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 for specifying two memories (that is, two LUTs storing data groups including four grid points) from which basic data of four grid points necessary for calculation is to be extracted is performed.
[0078]
Specifically, the arithmetic processing unit 4 shows the upper bit data RH, GH, BH for specifying the unit cube containing the input data, that is, the coordinate value of the base point P21 in FIG. 6B and the table 1 in FIG. By calculating an access address to the two LUTs according to the access address formula, a data group including four lattice points necessary for the interpolation calculation by the tetra-hydra method is specified. After that, the arithmetic processing unit 4 is based on the coordinate values (RH, GH, BH) of the base point including the input point, and the four grid points necessary for the interpolation calculation by the tetra-hydra method in the data group having the same address. 4 grid point specifying process is performed for specifying and extracting.
[0079]
9 to 15 are diagrams for explaining examples of specific LUT access. Here, FIG. 9 is a diagram showing the positional relationship between the input data and the data in the three-dimensional LUT space. 10 to 15 are diagrams showing the correlation between the vertexes of the corresponding tetrahedron and the data structure of the LUT.
[0080]
In FIG. 9, the number of lattice points is simplified to 3 × 3 × 3 = 27 data in total, 3 for each of R, G, and B. Assume that the position in the three-dimensional space indicated by each arbitrary 8-bit RGB value (input data) is a position P121 in FIG. In this case, one vertex of the cube in which the input point is included is determined at a position P122 in FIG. 9 from the upper 4 bits of the input value. The coordinate value is (RH, GH, BH) = (0, 1, 0), and this position P122 is defined as the base point coordinate.
[0081]
In the following, the LUT access will be described separately when the 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” determined by the base point P122 (0, 1, 0) in the data group of the three-dimensional LUT. It is contained in a unit cube surrounded by coordinate positions.
[0082]
  Arithmetic processing unit 4 performs spatial position P of the combination value of the upper 4 bit data.1224 basic data corresponding to the pixel to be processed are extracted from the basic data (grid point data) of each vertex of the corresponding unit cube.
[0083]
For example, when it is determined that the input point belongs to the tetrahedron 1 constituted by the vertices shown in FIG. 10, the arithmetic processing unit 4 uses 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 coordinate P122 (0, 1, 0) is “0” in the extracted data group, the arithmetic processing unit 4 has 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 coordinate P122 (0, 1, 0) is “0” in the extracted data group, the arithmetic processing unit 4 has the 0th (7) and 1st (16 ) Is the desired basic data. Here, the 0th (7) basic data is β, and the first (16) basic data is β ′.
[0086]
By doing so, the arithmetic processing unit 4 can extract the desired four points of data necessary for the tetrahedral interpolation calculation. The arithmetic processing unit 4 sets the four points of data thus extracted as D1 = α, D2 = α ′, D3 = β, and D4 = β ′, respectively.
[0087]
Even in the case of belonging to another tetrahedron, the arithmetic processing unit 4 calculates access addresses ADR, ADG, and ADB based on Table 1 in FIG. Extraction is performed, and two desired basic data according to the base point coordinates are extracted for each of the two LUTs from the extracted data group.
[0088]
For example, as shown in FIG. 11, when the input point belongs to the tetrahedron 2, the arithmetic processing unit 4 uses 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 first (4) basic data is extracted as α ′. Similarly, the arithmetic processing unit 4 starts from the access address ADG ((RH + 1) +3 (BH + 1) = 4) of the G-axis LUT (G-axis memory circuit 2G) and corresponds to the first coordinate P122 (0, 1, 0). The basic data (13) is β, and the second (16) basic data is β ′.
[0089]
As shown in FIG. 12, when the input point belongs to the tetrahedron 3, the arithmetic processing unit 4 determines the base point coordinate 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 starts from the access address ADG ((RH + 1) +3 (BH + 1) = 4) of the G-axis LUT (G-axis memory circuit 2G) and corresponds to the first coordinate P122 (0, 1, 0). The basic data (13) is β, and the second (16) basic data is β ′.
[0090]
As shown in FIG. 13, when the input point belongs to the tetrahedron 4, the arithmetic processing unit 4 determines the base point coordinate 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 starts from the access address ADR ((GH + 1) +3 (BH + 1) = 5) of the R-axis LUT (R-axis memory circuit 2R) and corresponds to the base point coordinate P122 (0, 1, 0). The basic data of (15) is β, and the first (16) basic data is β ′.
[0091]
As shown in FIG. 14, when the input point belongs to the tetrahedron 5, the arithmetic processing unit 4 determines the base point coordinate 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 starts from the access address ADR ((GH + 1) +3 (BH + 1) = 5) of the R-axis LUT (R-axis memory circuit 2R) and corresponds to the base point coordinate P122 (0, 1, 0). The basic data of (15) is β, and the first (16) basic data is β ′.
[0092]
As shown in FIG. 15, when the input point belongs to the tetrahedron 6, the arithmetic processing unit 4 determines the base point coordinate 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 performs the 0th operation 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). The basic data of (7) is β, and the basic data of (16) is β ′.
[0093]
  Table 2 shown in FIG. 16 shows an interpolation coefficient calculation process (S10) which is a second stage process of the output value calculation process (step S108 in FIG. 2) in the arithmetic processing unit 4.8c) and interpolation calculation processing (S10)8It is a figure explaining d). Table 2 shows calculation formulas of interpolation coefficients required for the interpolation calculation 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 to calculate an interpolation coefficient according to the tetrahedron in which the input value is included based on Table 2 in FIG. The equations 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 in which the input value is included. W3 and W4 are calculated. This tetrahedral interpolation calculation process is the same as the process in the conventional data converter.
[0095]
Then, the arithmetic processing unit 4 uses a known four-point interpolation calculation to correspond to the interpolation coefficients W1, W2, W3, W4 thus obtained and the input points extracted by the first-stage four-grid point specifying process. Interpolation calculation processing is performed by the tetra-hydra method in which the final output value Dout is calculated based on the basic data (originally grid point data) D1, D2, D3, and D4 of the tetrahedral vertices. For example, the final output value Dout is calculated according to the following equation (1). In Expression (1), the output value is obtained by linear interpolation. However, the present invention is not limited to this, and a quadratic expression or other higher-order interpolation calculation expression may be used.
[Expression 1]
Figure 0004096672
[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 lattice point data holding memories (spaces) is required for the tetrahedral interpolation calculation. Since it is composed of 3 instead of 4 corresponding to the apex, as a result, it is not necessary to have 4 times the memory of the same data, and it is 3 times, so the total capacity of the memory required to achieve the same function is It becomes the conventional 3/4.
[0097]
In other words, in contrast to the conventional case where it is necessary to provide memories (spaces) of the same capacity that can be independently driven as many as the number of data for interpolation calculation, the number of grid point data required for the interpolation calculation and the number of memory spaces are the same. The same function is achieved, 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 less than four times (for example, three times). Therefore, it is possible to reduce the total capacity of the memory required for this and the number of memory spaces that can be independently controlled. In addition, since the number of memory spaces for simultaneous access can be reduced, power consumption and radiation noise can be reduced.
[0098]
  For example, conventionally, in order to extract one interpolation calculation data, 17 × 17 × 17, that is, 4,913 bytes are required, and in the case of 4-point interpolation, in order to simultaneously extract data of 4 grid points, 4 times that is required, that is, 4913 bytes × 4 = 19,652 bytes. However, in the configuration of the present embodiment, it is possible to simultaneously extract data of four lattice points with the memory having the capacity of three quarters.
[0099]
Since the interpolation operation circuit can be used in the almost same configuration as the conventional configuration, the entire circuit is changed only around the memory circuit, so that the above configuration can be easily applied to the actual circuit.
[0100]
FIG. 17 is a block diagram showing a second embodiment of the data conversion apparatus 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 R, G, B three-dimensional input is performed at high speed in real time.
[0101]
As shown in the figure, the Y signal generation unit 4Y in the arithmetic processing unit 4 of the second embodiment performs unit cube determination processing (steps S100 to S102 in FIG. 2) and access memory specifying processing in the arithmetic processing unit 4 of the first embodiment. An address generation unit 10 that executes (S108a), a tetrahedron determination unit 14 that executes tetrahedron determination processing (S104 to S106), a data selection unit 16 that executes 4-lattice point specification processing (S108b), An interpolation coefficient generation unit 20 that executes interpolation coefficient calculation processing (S108c) and an interpolation processing unit 22 that executes interpolation calculation processing (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. The tetrahedron determining unit 14 is an example of a unit lattice determining unit of the present invention. The data selection unit 16 is an example of a basic data extraction unit 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 generation unit 4M, the C signal generation unit 4C, and the K signal generation unit 4K have the same configuration as the Y signal generation unit 4Y.
[0104]
When the image data R, G, and B are input, the address generator 10 converts the input data R, G, and B into upper bit data RH, GH, and BH (upper 4 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, shown in FIG. 6B and FIG. As described above, the position P22 (corresponding to the base point P122 in FIG. 9) where the input point in the three-dimensional LUT is included is specified, and coordinate information (RH, GH, BH) indicating the base point specifying this unit cube is specified. Is input to the data selection unit 16.
[0105]
The address generation unit 10 also 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 bit data DL input from the address generation unit 10, and specifies the specified 4 Information indicating a face 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 by the tetrahedron determination unit 14 and, from the three memory circuits 2R, 2G, and 2B, according to the selection conditions shown in Table 1 of FIG. The two memories to extract the basic data of the four lattice points necessary for the interpolation calculation by the above are specified, and the R-axis read clock CKR, the G-axis read clock CKG, and the B-axis read clock CKB are controlled independently (specifically Read accessUnnecessaryStop the read clock to the correct 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 an improvement from the viewpoint of the environment is desired.
[0107]
In other words, in the configuration of the present embodiment, any two of the three memory circuits are the memory circuits including the basic data of the four lattice points necessary for the interpolation operation that should be simultaneously read and accessed for the pixel data to be processed. Therefore, in addition to the effect of reducing power consumption and radiation noise by reducing the number of memories from 4 to 3, the consumption of read clocks to memory circuits that do not require simultaneous access is stopped. Further reduce power and radiation noise.
[0108]
Further, the address generator 10 determines the upper bit data RH, GH, BH for specifying the unit cube containing the input data, that is, the coordinate value of the base point P21 in FIG. 6B and the access address formula shown in Table 1 in FIG. The access addresses ADR, ADG, and ADB calculated according to are set for each memory circuit to be accessed. Thus, when data is read from the memory circuit, only the memory circuit including the basic data of the four lattice points necessary for the interpolation operation by the tetra-hydra method is active among the three memory circuits 2R, 2G, and 2R. Thus, a group of data (any two of the 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 as the memory circuits 2R, 2G, and 2B, one that can output a plurality of corresponding data in parallel is used. For address input, access addresses ADR, ADG, and ADB are set. For example, FIGS.5In each of (B), by setting the value in the address field to the access address ADR, ADG, ADB, each memory circuit 2R, 2G, 2G has 2 corresponding to the base point coordinates (RH, GH, BH). All of the group of data including one basic data is output in parallel.
[0110]
The address generator 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 that are inputs to the chip select terminal CS of each memory circuit (specifically, Is switched to low / high), two memory circuits that require simultaneous reading are made active, and one unnecessary memory circuit is made inactive (high impedance state). In this way, power consumption can be reduced, and the subsequent circuit of the memory circuit can be made compact.
[0111]
Next, the data selection unit 16 extracts necessary data from the data (lattice point data) of each vertex of the corresponding unit cube with the spatial position P21 of the combination value of the upper 4-bit data as a base point. For example, the data selection unit 16 may select an arbitrary data group of packing data PR, PG, and PR, which is input from only a memory including basic data of four lattice points necessary for the interpolation operation by the tetra-hydra method. 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, D4 of four grid points necessary 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, PB output from the memory are D1, D2, Which of D3 and D4 corresponds to depends on the tetrahedron to which the input point belongs. The data selection unit 16 interpolates data (α, α ′ and β, β ′) included in two of the packing data PR, PG, PB input from the two required memories corresponding to the input values. Which of D1, D2, D3, and D4 in the arithmetic processing is to be performed is determined according to the selection conditions shown in Table 1 of FIG. 7 based on the tetrahedron determination processing result by the tetrahedron determination unit 14.
[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 includes the input values among the four tetrahedrons based on Table 2 in FIG. Interpolation coefficients W1, W2, W3, W4 are calculated on the basis of the four lattice points constituting the tetrahedron and the lower bit data RL, GL, BL in accordance with the calculation formula corresponding to the face, and the calculated interpolation coefficients W1, W2 , W3, W4 are input to the interpolation processing unit 22.
[0114]
The interpolation processing unit 22 uses the well-known four-point interpolation calculation, the interpolation coefficients W1, W2, W3, W4 input from the interpolation coefficient generation unit 20 and the data D1, D2, D3 input from the data selection unit 16. Final output values Y, M, C, and K are calculated based on D4 (basic data of four vertices).
[0115]
According to the configuration of the second embodiment, when the tetra-hydra method is used when converting the digital color separation signal using the LUT and the interpolation operation into the digital color separation signal of other color components, conventionally, What required four memories can implement tetrahedral interpolation calculation processing 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 apparatus 1 can be realized without increasing the scale and complexity of the interpolation circuit. .
[0116]
In addition, conventionally, when extracting data used for the interpolation calculation, it is necessary to access four memories for calculating the output value of one color. According to the configuration of this embodiment, the chip select terminal of the memory is used. By controlling the CS (or the read enable terminal RE), only the memory including the basic data of the four lattice points necessary for the interpolation calculation by the tetra-hydra method is activated among the three memory circuits 2R, 2G, and 3G. Therefore, it is only necessary to access two half of the conventional memories, and the power consumption and radiation noise of the system can be reduced.
[0117]
That is, there is an effect that color data conversion can be realized with a small amount of memory resources when converting a digital color separation signal using an LUT and an interpolation operation into a digital color separation signal of another color component. Conventionally, when extracting data used for the interpolation calculation, it is necessary to simultaneously access four memories for the calculation of the output value of one color. However, in the configuration of the present embodiment, only two of the two are necessary. It also has the effect of reducing system power consumption and radiation noise.
[0118]
FIG. 18 is a block diagram showing a third embodiment of the data conversion apparatus 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 configured to be 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 a tetrahedron including input values from 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 that includes the input point in the three-dimensional LUT is specified, and the information is transmitted to the data selection unit 16.
[0120]
Further, 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 them as packing data PR, PG, and PR. It is possible to set any two addresses in a group instead of those, and use those which can be output together.
[0121]
That is, as in the first and second embodiments, a plurality of grid point data is mapped for each address ADR, ADG, and ADB. However, when reading, it is necessary for the interpolation calculation by the tetra-hydra method. Only two basic data (α, α ′ or β, β ′) are collectively output to the memory of each axis including four lattice 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. To do. For the other address axis, it corresponds to the base point coordinates (RH, GH, BH) for specifying the unit cube containing the input value by the access addresses ADXR, ADXG, ADXB for address setting in the X-axis direction. By setting the value to be performed, the 4-grid point specifying process is performed.
[0123]
  For example, FIG.5In (B), the address column value is set to the access address ADR, ADG, ADB, and the base point coordinates (RH, GH, BH) is set to access addresses ADXR, ADXG, and ADXB for setting addresses in the X-axis direction (values of two consecutive addresses of 0, 1,...). By doing so, 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 uses D1, D2, D3, and D4 in the interpolation calculation process for each of the two basic data (α, α ′ and β, β ′) input from the required two memories corresponding to the input values. Which one should be determined is determined according to the selection conditions shown in Table 1 of FIG. 7 based on the tetrahedron determination processing result by the tetrahedron determination unit 14. As can be seen from FIGS. 10 to 15, which of D1, D2, D3, and D4 corresponds to each of the two basic data (α, α ′ and β, β ′) output from the memory. This is because it varies depending on the tetrahedron to which the input point belongs.
[0125]
The interpolation processing unit 22 is input from the interpolation coefficients W1, W2, W3, and W4 input from the interpolation coefficient generation unit 20 and two necessary memories corresponding to the input values using a known four-point interpolation calculation. Final output values Y, M, C, and K are calculated based on the data D1, D2, D3, and D4 corresponding to the two basic data (α, α ′ and β, β ′), respectively.
[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, as in the first embodiment, in addition to realizing tetrahedral interpolation calculation processing with three memories, by controlling the chip select terminal CS (or read enable terminal RE) of the memory, 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, as in the first to third embodiments, the R-axis memory circuit 2R corresponding to the 17 × 17 × 17 three-dimensional LUT is shown in detail, and the G-axis memory circuit 2G and the B-axis memory circuit 2B are shown. The illustration is omitted.
[0128]
This first example has a configuration applicable to the first and second embodiments described above, and “packing data includes all basic data of addresses including basic data corresponding to pixel data to be processed. When reading out and then extracting basic data for the number of interpolation operation data corresponding to the pixel data to be processed, all the basic data of the target address is output from the memory circuit almost simultaneously in parallel. .
[0129]
In other words, as shown in the figure, the R-axis memory circuit 2R has memory cells 30 each storing 8-bit basic data 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 in each X direction corresponding to a predetermined Y address. A plurality of output buffers 36 that receive basic data from the cell 30 and output the basic data to an external circuit (in this example, the data selection unit 16) are provided. The output of the memory cell 30 is connected to the output buffer 36 corresponding to each X address in common.
[0130]
The X address setting circuit 32 receives an address control signal ADXR that activates all X addresses. On the other hand, the access address ADR from the address generation unit 10 is input to the Y address setting circuit 34. As described in the above embodiment, the access address ADR is set to an address value corresponding to a tetrahedron including pixel data to be processed.
[0131]
The R-axis memory control signal CTR from the address generation unit 10 is input to the chip select terminal CS of the R-axis memory circuit 2R, and the R-axis memory circuit 2R performs this R for interpolation calculation by the tetra-hydra method. When the basic data held by the axis memory circuit 2R is required, it is set to active, and when it is not required, it is set to inactive.
[0132]
A read clock CK for reading basic data is input to each memory cell 30. In this example, it is assumed that bit data is input from each memory cell 30 to the read output buffer 36 in parallel by one read clock CK. The bit data may be read from each memory cell 30 serially. In this case, 8 read clocks CK may be input to the memory cell 30 in order to read 8 bits.
[0133]
Each memory cell 30 is a three-state type that can switch the output to a high impedance state (disable). An address setting signal from the Y address setting circuit 34 is applied in common to the X direction (that is, the memory cells 30 on the same address line) to an output enable terminal (not shown) of the three-state memory cell 30. . The memory cell 30 is in an active state (enabled) when the address setting signal is active, and outputs the basic data held in the memory cell 30 to the output buffer 36, while the output terminal has a high impedance when active. State (disabled). By doing so, it is not necessary to provide a data selector with the output buffer 36 at the subsequent stage, and the circuit configuration becomes compact.
[0134]
As the output buffer 36, a three-state buffer capable of switching the output to a high impedance state (disable) 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 the output enable terminal OE of the three-state output buffer 36. For example, the output buffer 36 is in an active state (enable) when the enable signal is high, and outputs the basic data received from the memory cell 30 as it is, while the output buffer 36 is low (low) regardless of the received signal state. High impedance state (disabled).
[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 stores the basic data of all X addresses of the Y address set by the Y address setting circuit 34. Simultaneously output and input to the data selection unit 16 as packing data PR. On the other hand, when the R-axis memory circuit 2R is set 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 calculation can be read out almost simultaneously. Although unnecessary basic data is read, there is no problem of a reduction in processing speed. However, since the number of memory cells that are read-accessed at the same time increases, there is a concern about increased power consumption and radiation noise.
[0137]
The G-axis memory circuit 2G and the B-axis memory circuit 2B (not shown) have the same configuration as the R-axis memory circuit 2R, and the corresponding access addresses ADG and ADB and memory control signals CTG and CTB are input to each. Is done.
[0138]
The data selection unit 16 receives and holds 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 (LT0 to LT16) and the plurality of latch circuits 40. And a data selector 42 for switching the output destinations of the received two basic data. The plurality of latch circuits 40 and data selectors 42 are provided for the R-axis system, the G-axis system, and the B-axis system. In the figure, the G-axis system and the B-axis system are omitted, but the circuit configuration is the same as that of the R-axis system.
[0139]
The data selection unit 16 receives basic data (α or β) from one output terminal of each data selector 42 of the R-axis system, the G-axis system, and the B-axis system, and a data selector 44 that switches the output destination thereof. A data selector 46 that receives basic data (α ′ or β ′) from the other 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 the output destination; And an output switching circuit 48 for controlling the data selectors 42, 44, 46.
[0140]
A latch clock LCK is commonly input to each latch circuit 40, and the basic data is simultaneously fetched and held at a predetermined timing according to the transmission of the basic data from the R-axis memory circuit 2R. When the bit data is read serially from each memory cell 30, the latch circuit 40 is assumed to have 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 among the plurality of latch circuits 40 are selectively selected. Set to be active.
[0142]
The data selector 42 includes two input terminals IN1 and IN2 and two output terminals OUT1 and OUT2, and is configured to receive a control signal CT2 from the output switching circuit 48. Of the outputs of the latch circuit 40, even numbers (including 0) are input to the input terminal IN1, and odd numbers are connected 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 at the input terminal IN1 (even-numbered data of the latch circuit 40) is output to the output terminal OUT1 and the input terminal IN2. Data (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 of the input terminal IN1 is output to the output terminal 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 includes three input terminals IN1, IN2 and IN3 and two output terminals OUT1 and OUT2. Control signals CT31, CT32 and CT33 from the output switching circuit 48 are sent to the data selector 44. CT41, CT42, and CT43 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 according to the combination state of the control signals CT31, CT32, CT33 or CT41, CT42, 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). Similar to the part 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 are selected, and CT31 (CT41) = When high H and CT32 (CT42) = low L, the data of the input terminals IN2 and IN3 are selected. When CT31 (CT41) = low L and CT32 (CT42) = high H, the data of the input terminals IN1 and IN3 are selected. select.
[0148]
As in the case of the data selector 42, when the control signal CT33 (CT43) is low L, the selected data is output serially, and when the control signal CT33 (CT43) is high H, the selected data is output crosswise. To do.
[0149]
The output switching circuit 48 receives the tetrahedron determination processing result by the tetrahedron determination unit 14 and the base point coordinate values (RH, GH, BH) including the input point from the address generation unit 10. In response to this, the output switching circuit 48 uses the four grids required for the interpolation operation by the tetra-hydra method from the packing data PR, PG, PB input from the memory circuits 2R, 2G, 2B for each axis. Control signals CT1, CT2, CT31 to 33, and CT41 to 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 FIG. 10 to FIG. 15, data (α, α ′ and β, which are included in two of the packing data PR, PG, PB output from the memories 2R, 2G, 2B of each axis system. Whether β ′) corresponds to D1, D2, D3, or D4 depends on the tetrahedron to which the input point belongs. The output switching circuit 48 interpolates the data (α, α ′ and β, β ′) included in two of the packing data PR, PG, PB input from the required two memories corresponding to the input value. Which of D1, D2, D3, and D4 in the arithmetic processing is to be performed is specified according to the selection condition shown in Table 1 of FIG. 7 based on the tetrahedron determination processing result by the tetrahedron determination unit 14, and the subsequent interpolation calculation processing Control signals CT1, CT2, CT31 to 33, and CT41 to 43 for inputting them to the input terminals corresponding to the unit 22 are generated.
[0151]
For example, if the tetrahedron determination unit 14 determines that the input point belongs to the tetrahedron 1 constituted by the vertices shown in FIG. 10, the basic data of the R-axis LUT (R-axis memory circuit 2R) is R as 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 the G-axis LUT (G-axis memory circuit 2G) is input to the latch circuit 40 of the axis system. ) No data input.
[0152]
The data selection unit 16 sets the 0th (3) and 1st (4) corresponding to the R-axis component “0” of the base coordinate P122 (0, 1, 0) from the packing data PR as the basis of the α series. The 0th (7) and 1st (16) corresponding to the B-axis component “0” of the base coordinate P122 (0, 1, 0) from the packing data PB are determined as the basis of the β series. It is determined that the data is data, and the data of these four points must be output from the data selectors 44 and 46 as D1 = α, D2 = α ′, D3 = β, and D4 = β ′, respectively.
[0153]
In order to perform such switching control, the output switching circuit 48 first outputs from the latch circuit 40 only the Nth and N + 1th components corresponding to the respective axis components of the base coordinate P122 (RH, GH, BH). A control signal CT1 for the latch circuit 40 is generated.
[0154]
Further, the output switching circuit 48 sets the control signal CT2 for the data selector 42 to the even number (including 0) data of the latch circuit 40 as the α, β series and the odd number data as the α ′, β ′ series. Is set to low L, and conversely, the even-numbered data of the latch circuit 40 is set to α ′ and β ′ series, and the odd-numbered data is set to high H when set to α and β series.
[0155]
Further, the output switching circuit 48 is a data selector for selecting two desired memories corresponding to the input value, that is, for selecting basic data included in two of the packing data PR, PG, and PB. Control signals CT31, CT32, CT41, and CT42 for 44 and 46 are generated. For example, when (R, G) is selectively output, CT31 (CT41) = low L and CT32 (CT42) = low L, and when (G, B) is selectively output, CT31 (CT41) = 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 in order to switch between the selected α and α ′ series and β and β ′ series. Specifically, low L is set for the α, α ′ series, and high H is set for the β, β ′ series.
[0157]
As a result, the data selection unit 16 stores a data group of predetermined addresses input from only two memories including the basic data of the four grid points necessary for the interpolation calculation by the tetra-hydra method, that is, packing data PR, PG, PR. When two arbitrary sets of them are received from the data storage unit 2, basic data D1, D2, D3, D4 of four lattice points necessary for the interpolation calculation by the tetra-hydra method are obtained from the two sets of packing data. The extracted four data D1, D2, D3, and D4 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, the R-axis memory circuit 2R corresponding to the 17 × 17 × 17 three-dimensional LUT is shown in detail, and the G-axis memory circuit 2G and the B-axis memory circuit 2B are not shown.
[0159]
This second example has a configuration applicable to the first and second embodiments, and “packing data includes all basic data of addresses including basic data corresponding to pixel data to be processed. At the time of “reading and then extracting basic data corresponding to the number of interpolation operation data corresponding to the pixel data to be processed”, all the basic data of the target address are sequentially output in time series.
[0160]
Specifically, a memory that can control the address space in a two-dimensional manner is used, and for one address axis, the Y address setting circuit 34 uses the access address ADR, as in the first to third embodiments. Set ADG and ADB. For the other address axis, the X address setting circuit 32 sets values corresponding to the base point coordinates (RH, GH, BH) for specifying the unit cube including the input value to the first and second embodiments. In correspondence with the third embodiment, and in correspondence with the third embodiment, it is divided into two times, so that a plurality of memory circuits 2R, 2G, 2G corresponding to the base point coordinates (RH, GH, BH) are set. Alternatively, two pieces of data are output sequentially.
[0161]
The second example has a configuration applicable to the first and second embodiments. Only differences from the first example will be described below.
[0162]
As shown in the figure, only one output buffer 36 of the R-axis memory circuit 2R is provided so as to be used in common for the memory cells 30 of all X addresses of the Y address set by the Y address setting circuit 34. It has been. In response to this, the output data from the one output buffer 36 is commonly input to the latch circuit 40 of the data selection unit 16.
[0163]
The X address setting circuit 32 includes only one X address to be read 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 input to the address control signal ADXR.
[0164]
Each memory cell 30 is in an active state (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. Assume that the held basic data is output to the output buffer 36. As a result, 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 the plurality of basic data on the same line (X direction) including the basic data necessary for the interpolation calculation can be read in order, which is necessary for the actual interpolation calculation. However, since the number of memory cells to be read and accessed at the same time can be reduced as compared with the prior art, radiation noise can be reduced. However, since the total number of read cycles increases, there are concerns about an increase in power consumption and a decrease in processing speed. Note that it is possible to substantially prevent the speed reduction by increasing the read clock speed (in the previous example, 17 times). However, in this case, there is a concern about further increase in power consumption.
[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 fetches and holds the basic data at different timings according to the set timing of each X address in accordance with the transmission of the basic data from the R-axis memory circuit 2R. The data selection unit 16 may perform the same process as in the first example after fetching data into the latch circuit 40.
[0167]
FIG. 21 is a block diagram showing an example of a specific configuration (hereinafter referred to as a third example) of the data storage unit 2, the address generation unit 10, and the interpolation calculation processing unit 22. As in the first example and the second example, the R-axis memory circuit 2R corresponding to the 17 × 17 × 17 three-dimensional LUT is shown in detail, and the G-axis memory circuit 2G and the B-axis memory circuit 2B are not shown.
[0168]
The third example has a configuration applicable to the third embodiment, and “a configuration in which only basic data necessary for interpolation calculation is read out, and the basic data is output in parallel almost at the same time. The “configuration”. Only differences from the first example and the second example will be described below.
[0169]
As shown in the figure, the address generation unit 10 receives a control signal 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 generated by itself. An output switching circuit 50 that generates CT1 and CT2 and that 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 function in 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. The Y address setting circuit 34 of the R-axis memory circuit 2R receives an access address ADR for setting an address value corresponding to the tetrahedron including the pixel data to be processed.
[0171]
Further, a read clock CK for reading 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 receives basic data of four lattice points necessary for interpolation calculation by the tetra-hydra method for the 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]
A data selector 38 having the same configuration as the data selector 42 in the first and second examples is provided on the output side of the R-axis memory circuit 2R, and an output buffer 36 is provided on the output side of the data selector 38. . The data selector 38 receives the control signal CT2 from the output switching circuit 50.
[0173]
Further, among the memory cells 30 arranged two-dimensionally, the even number (including 0) of the X address is commonly input to the input terminal IN1, and the odd number is commonly input to the input terminal IN2. Has been.
[0174]
Similarly to the data selector 42 in the first and second examples, the data selector 38 outputs the input data in series when the control signal CT2 is low L, and is input when the control signal CT2 is high H. Output data crosswise.
[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 result of the tetrahedron determination processing by the tetrahedron determination unit 14 is input.
[0176]
The input switching circuit 60 receives basic data (α, α ′ or β, β ′) of four lattice points necessary for the interpolation calculation input from any two of the memory circuits 2R, 2G, 2B for each axis. Control signals CT31 to 33 and CT41 to 43 required to be associated with D1, D2, D3, and D4 are generated.
[0177]
In the configuration of the third example, the generation locations of the control signals CT1, CT2, CT31 to 33, and CT41 to 43 and the installation locations of the circuit elements for switching in response thereto are different from those of the first and second examples. The basic data selection mechanism remains the same. However, since the circuit element that operates based on the control signal CT1 is the X address setting circuit 32, the basic data output from the memory circuits 2R, 2G, and 2B for each axis is two basics necessary for the interpolation calculation. Only data.
[0178]
Therefore, according to the configuration of the third example (that is, the configuration of the third embodiment), only basic data necessary for the interpolation calculation can be read, and useless memory access processing can be prevented. In the configurations of the first example and the second example, data that is not necessary for the interpolation calculation is also read. Therefore, depending on the reading method, there is a concern that the processing speed is lower than the conventional configuration and the total power consumption is increased. However, according to this third example, there is almost no decrease in processing speed, and power consumption can be reliably reduced.
[0179]
As described in the previous stage of 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. The 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 may execute various functions by installing a computer incorporated in dedicated hardware or various programs. For example, it is installed from a recording medium in a general-purpose personal computer or the like.
[0181]
The recording medium is distributed to provide a program to the user separately from the computer, and includes a magnetic disk (including a flexible disk) on which the program is recorded, an optical disk (CD-ROM (Compact Disc-Read Only Memory)). , DVD (Digital Versatile Disc)), magneto-optical disc (MD (Mini Disc)), or a package medium consisting of a semiconductor memory, etc. The program may be configured by a ROM, a hard disk, or the like in which a program is recorded. Or the program which comprises software may be provided via a communication network.
[0182]
For example, a storage medium in which a program code of software that realizes the functions of the above-described embodiments is supplied to a system or apparatus, and the computer (or CPU or MPU) of the system or apparatus stores the program code in the storage medium. The effect described in the above embodiment can also be achieved by reading and executing. In this case, the program code itself read from the storage medium realizes the functions of the above-described embodiment.
[0183]
Further, by executing the program code read by the computer, not only the functions of the above-described embodiments are realized, but also an OS (operating system) operating on the computer based on the instruction of the program code. There may be a case where part 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 in the computer or a function expansion unit connected to the computer, the function expansion is performed based on the instruction of the program code. There may be a case where the CPU or the like provided in the card or the function expansion unit performs part or all of the actual processing, and the functions of the above-described embodiments are realized by the processing.
[0185]
As mentioned above, although this invention was demonstrated using embodiment, the technical scope of this invention is not limited to the range as described in the said embodiment. Various changes or improvements can be added to the above-described embodiment without departing from the gist of the invention, and embodiments to which such changes or improvements are added 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 features described in the embodiments are not necessarily essential to the solution means of 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 elements. Even if some constituent requirements are deleted from all the constituent requirements shown in the embodiment, as long as an effect is obtained, a configuration from which these some constituent requirements are deleted can be extracted as an invention.
[0187]
For example, in the above embodiment, as a memory for storing lattice point data, basic data in the direction common to the axis of input data is divided into a plurality of groups, and a plurality of data is mapped (packed) to one address, and the lump All 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 restricted to such a method.
[0188]
For example, basic data in directions of mutually orthogonal axes in which three input axes are inclined by 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 the lattice point data of the original three-dimensional LUT.
[0189]
However, in this case, the most data on the axis passing through the origin is packed, and only one outermost data of the original three-dimensional LUT is packed, so that the same capacity memory can be used for each axis. Since the number of data associated with each address differs, a memory space that is not actually used is generated.
[0190]
Further, the tilt is not limited to 45 degrees, and may be tilted to 60 degrees or any other angle. The tilt angle may be different depending on the axis. Even in these cases, all the lattice point data of the original three-dimensional LUT are handled by associating with the addresses so that all the lattice point data of the original three-dimensional LUT are included in any of the packed groups. It is preferable to make it.
[0191]
It should be noted that some lattice point data of the original three-dimensional LUT may not be included in any of the packed groups.
[0192]
Also, for the grid point data that does not pass through the axis among the grid point data of the original LUT, new data generated by, for example, linear interpolation may be assigned as basic data corresponding to the grid point data.
[0193]
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 is packed into one address as in the first to third above, the same number is stored in each packed address. As a result, it is possible to prevent the generation of a memory space that is associated with the grid point data of the original, and to handle all the grid point data of the original three-dimensional LUT without omission, so that the memory of the same capacity can be used without waste. The overall balance is good.
[0194]
In the above embodiment, the unit cube constituting the set of grid point data used when converting the input color data to the output color data is divided into six tetrahedrons to obtain 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 interpolation calculation in the corresponding tetrahedron. However, the application of the present invention is not limited to 4-point interpolation, but can be applied to other interpolation methods such as cubic interpolation (8-point interpolation) and 5-point interpolation. It is.
[0195]
In other words, the memory of less than the number of interpolation calculation data (effectively less than the number of vertices that define the polyhedron) is used, and the lattice data of the original LUT is set in a predetermined direction (the axis is set according to the number of memories used) Are divided into groups, a plurality of grid point data are associated with one address for each group and stored in the memory, and interpolation processing is necessary for interpolation calculation from the grouped data group. Any configuration that extracts data of lattice points may be used.
[0196]
For example, in the case of an apparatus configuration for performing 8-point interpolation calculation, the number of memories used is not 8 but 7 or less. Similarly, in the case of an apparatus configuration for performing 5-point interpolation calculation, the number of memories used is 5 For example, the memory for holding the grid point data can be less than the number of data for the interpolating operation such as 4 or less, and the total memory capacity required to achieve the same function can be reduced.
[0197]
In the above embodiment, an example has been described in which data of three colors of R, G, and B is handled as input color data of k color and converted into four colors of Y, M, C, and K as output color data of j color. However, as long as there are three or more color components for each of the input system and the output system, it can be changed to a form that handles other color systems. Of course, any of RGB, Lab, YCbCr, YMCK, etc. can be handled without depending on the color space.
[0198]
Further, in the above embodiment, each lattice point of the k-dimensional hypercube formed by 2 k lattice points in the k-dimensional hypercubic lattice space determined based on k (specifically, three) component data. Although the lattice point data associated with is treated as the original LUT and the shape of the unit lattice is a cube, the shape of the unit lattice defined by the individual lattice points is not necessarily limited to a cube. .
[0199]
In the above embodiment, the unit lattice (unit cube) is internally divided by a polyhedron of the same capacity (specifically, tetrahedron), but the polyhedron for dividing the unit lattice is not necessarily of the same capacity. It does not have to be.
[0200]
【The invention's effect】
As is apparent from the above description, in the present invention, when performing the interpolation calculation in the polyhedron, a memory space whose number can be independently controlled is smaller than the number of interpolation calculation data, and the memory space For each of the basic data corresponding to the grid point data associated with each grid point of the k-dimensional grid space defined by the k input color signal elements, a plurality of basic addresses are assigned to one address according to a predetermined procedure. Packed and stored so as to be assigned, and from among the multiple basic data assigned to the same address, extract the basic data for the number of interpolation operation data corresponding to the pixel data to be processed, Interpolation calculation was performed.
[0201]
As a result, color data conversion can be realized with less memory resources than the number of interpolation calculation data (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 apparatus according to the present invention.
FIG. 2 is a flowchart showing an outline of a processing procedure regarding color data conversion in the data conversion apparatus of the first embodiment.
FIG. 3 is a diagram for explaining a look-up table for R axis that constitutes grid point data that is a representative value of output values;
FIG. 4 is a diagram for explaining a lookup table for the G axis that constitutes grid point data that is a representative value of output values.
FIG. 5 is a diagram for explaining a lookup table for B axis that constitutes grid point data that is a representative value of output values;
FIG. 6 is a diagram for explaining unit cube determination processing (S100 to S102 in FIG. 2) in the arithmetic processing unit.
FIG. 7 is a diagram for explaining tetrahedron determination processing (S104 to S106 in FIG. 2) in the arithmetic processing unit.
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 on a three-dimensional LUT space.
FIG. 10 is a diagram showing a positional relationship between input data belonging to the tetrahedron 1 and data in the three-dimensional LUT space.
FIG. 11 is a diagram showing a positional relationship between input data belonging to the tetrahedron 2 and data in the three-dimensional LUT space.
FIG. 12 is a diagram showing a positional relationship between input data belonging to the tetrahedron 3 and data in the three-dimensional LUT space.
FIG. 13 is a diagram showing a positional relationship between input data belonging to the tetrahedron 4 and data in the 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 for explaining 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 apparatus according to the present invention.
FIG. 18 is a block diagram showing a third embodiment of a data conversion apparatus 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 a data storage unit and a 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 calculation processing unit.
[Explanation of symbols]
DESCRIPTION OF SYMBOLS 1 ... Data converter, 2 ... Data storage part, 2R ... R axis memory circuit, 2G ... G axis memory circuit, 2B ... B axis memory circuit, 4 ... Arithmetic processing part, 4Y ... Y signal generation part, 4M ... M signal Generating unit, 4C... C signal generating unit, 4K... K signal generating unit, 10... Address generating unit, 14... Tetrahedron determining unit, 16. ... Memory cell, 32 ... X address setting circuit, 34 ... Y address setting circuit, 36 ... Output buffer, 38, 42, 44, 46 ... Data selector, 40 ... Latch circuit, 48, 50 ... Output switching circuit, 60 ... Input Switching circuit

Claims (12)

入力色データを出力色データに変換する際に用いられる格子点データに基づいて、前記入力色データの画素データごとに、当該画素データが前記格子点データの集合を構成する単位格子体の何れに属するのかを判定し、該当する単位格子体の中をさらに複数個の多面体に分割して前記画素データが何れの前記多面体に属するのかを判定し、該当する前記多面体内での補間演算により、入力された前記画素データに対応する出力用の画素データを決定するデータ変換方法において、
前記多面体に応じて規定される補間演算所用データ数よりも少ない数のそれぞれ独立に制御可能なメモリ空間を使用し、
k色の入力色信号要素で規定されるk次元格子空間の各格子点に対応づけられた前記格子点データに対応する基礎データについて、前記複数のメモリ空間の数に応じて軸を設定し、各軸のそれぞれについて、該当の軸に平行に沿って複数のグループに分け、当該グループごとに、このグループ内の複数の前記基礎データを纏めてパッキングデータとして前記該当の軸用のメモリ空間に格納し、
前記グループに対応付けられた前記複数の基礎データの中から、処理対象の画素データに対応する前記補間演算所用データ数分の基礎データを抽出し、この抽出した補間演算所用データ数分の基礎データを用いて、前記多面体内での補間演算を行なう
ことを特徴とするデータ変換方法。
Based on the grid point data used when converting the input color data to the output color data, for each pixel data of the input color data, the pixel data is any of the unit grids that constitute the set of grid point data. To determine whether the pixel data belongs to a plurality of polyhedrons by dividing the corresponding unit lattice into a plurality of polyhedrons, and input by interpolation operation in the corresponding polyhedron In a data conversion method for determining output pixel data corresponding to the pixel data,
Using a memory space that can be controlled independently of a number smaller than the number of data for interpolation calculation prescribed according to the polyhedron,
For basic data corresponding to the lattice point data associated with each lattice point of the k-dimensional lattice space defined by the k color input color signal elements, an axis is set according to the number of the plurality of memory spaces, For each axis, it is divided into a plurality of groups along the corresponding axis, and for each group, a plurality of the basic data in this group is collected and stored as packing data in the memory space for the corresponding axis. And
From the plurality of basic data associated with the group, basic data for the number of interpolation arithmetic data corresponding to the pixel data to be processed is extracted, and the basic data for the number of interpolation arithmetic data extracted. A data conversion method characterized by performing an interpolation operation in the polyhedron.
前記処理対象の画素データが前記複数個の多面体のうちの何れに属するのかの判定結果に基づいて、当該画素データに対応する前記補間演算所用データ数分の基礎データを抽出することを特徴とする請求項1に記載のデータ変換方法。  On the basis of a determination result as to which of the plurality of polyhedrons the pixel data to be processed belongs, basic data corresponding to the number of interpolation operation data 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 the output color signal element, and the interpolation calculation is configured for each output color signal element by the tetrahedron interpolation calculation, and the output color The data conversion method according to claim 1, wherein the signal element is 3 or 4. 入力色データを出力色データに変換する際に用いられる格子点データに基づいて、前記入力色データの画素データごとに、当該画素データが前記格子点データの集合を構成する単位格子体の何れに属するのかを判定する単位格子体判定部と、当該単位格子体判定部により判定された該当する単位格子体の中をさらに複数個の多面体に分割して前記画素データが何れの前記多面体に属するのかを判定する多面体判定部と、当該多面体判定部により判定された該当する前記多面体内での補間演算により、入力された前記画素データに対応する出力用の画素データを決定する補間演算処理部とを備えたデータ変換装置において、
前記多面体に応じて規定される補間演算所用データ数よりも少ない数のそれぞれ独立に制御可能な複数のメモリ空間を具備し、k色の入力色信号要素で規定されるk次元格子空間の各格子点に対応づけられた前記格子点データに対応する基礎データを格納するデータ格納部であって、前記複数のメモリ空間の数に応じて軸を設定し、各軸のそれぞれについて、該当の軸に平行に沿って複数のグループに分け、当該グループごとに、このグループ内の複数の前記基礎データを纏めてパッキングデータとして前記該当の軸用のメモリ空間に格納するデータ格納部と、
前記データ格納部に格納されている前記グループに対応付けられた前記複数の基礎データの中から、処理対象の画素データに対応する前記補間演算所用データ数分の基礎データを抽出する基礎データ抽出部とを備え、
前記補間演算処理部は、前記基礎データ抽出部により抽出された前記補間演算所用データ数分の基礎データを用いて、前記多面体内での補間演算を行なうことを特徴とするデータ変換装置。
Based on the grid point data used when converting the input color data to the output color data, for each pixel data of the input color data, the pixel data is any of the unit grids that constitute the set of grid point data. A unit grid determining unit for determining whether the pixel data belongs, and the corresponding unit grid determined by the unit grid determining unit are further divided into a plurality of polyhedrons, and to which polyhedron the pixel data belongs A polyhedron determination unit for determining the output, and an interpolation calculation processing unit for determining pixel data for output corresponding to the input pixel data by interpolation calculation in the corresponding polyhedron determined by the polyhedron determination unit. In the data converter provided,
Each grid in a k-dimensional grid space defined by k input color signal elements is provided with a plurality of independently controllable memory spaces smaller than the number of interpolation operation data defined according to the polyhedron. A data storage unit for storing basic data corresponding to the grid point data associated with the points, wherein axes are set according to the number of the plurality of memory spaces, and each axis is assigned to a corresponding axis. Dividing into a plurality of groups along the parallel, for each group, a data storage unit that stores a plurality of the basic data in this group as packing data in the memory space for the corresponding axis ;
A basic data extraction unit that extracts basic data corresponding to the number of interpolation operation data corresponding to pixel data to be processed from the plurality of basic data associated with the group stored in the data storage unit And
The data conversion device, wherein the interpolation calculation processing unit performs interpolation calculation in the polyhedron using basic data for the number of interpolation calculation data 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,
5. The data conversion apparatus 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 to be processed belongs to, the processing target of the basic data stored in a grouped manner 6. The apparatus according to claim 4, further comprising an address setting unit configured to set, in the data storage unit, a read address indicating a storage position of a group including basic data corresponding to the number of interpolation operation data corresponding to pixel data. The data converter described. 前記基礎データ抽出部は、前記アドレス設定部により設定されているアドレスに対応する前記グループ内の複数の基礎データを全て読み出し、この読み出した複数の基礎データの中から、前記処理対象の画素データに対応する前記補間演算所用データ数分の基礎データを抽出することを特徴とする請求項6に記載のデータ変換装置。  The basic data extraction unit reads all the plurality of basic data in the group corresponding to the address set by the address setting unit, and the pixel data to be processed is selected from the plurality of read basic data. The data conversion apparatus according to claim 6, wherein basic data corresponding to the number of corresponding data for the interpolation operation place 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, from among the plurality of read basic data, The data conversion apparatus according to claim 7, wherein basic data corresponding to the number of interpolation calculation data corresponding to the pixel data to be processed is specified. 前記データ格納部は、前記処理対象の画素データに対応する前記基礎データを含むグループ内の複数の基礎データの中から、前記補間演算所用データ数分の基礎データのみを読出可能に構成されており、
前記アドレス設定部は、前記基礎データ抽出部の機能を備えるとともに、前記処理対象の画素データが前記複数個の多面体のうちの何れに属するのかについての前記多面体判定部による判定結果に基づいて、前記処理対象の画素データに対応する前記補間演算所用データ数分の基礎データの格納位置を示す読出アドレスを前記データ格納部に設定する
ことを特徴とする請求項6に記載のデータ変換装置。
The data storage unit is configured to be able to read only basic data corresponding to the number of data for the interpolation operation place from a plurality of basic data in a group including the basic data corresponding to the pixel data to be processed. ,
The address setting unit has a function of the basic data extraction unit, and 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 apparatus according to claim 6, wherein a read address indicating a storage position of basic data corresponding to the number of data for interpolation calculation corresponding to pixel data to be processed is set in the data storage unit.
前記単位格子体判定部は、前記処理対象の画素データの上位mビットのデータに基づいて当該画素データが属する前記単位格子体を特定するものであり、
前記多面体判定部は、前記単位格子体判定部により前記処理対象の画素データが属すると判定された前記単位格子体について、当該画素データの下位nビットのデータに基づいて当該画素データが属する前記多面体を特定するものであり、
前記基礎データ抽出部は、前記処理対象の画素データの上位l(エル)ビットのデータに基づいて、前記処理対象の画素データに対応する前記補間演算所用データ数分の基礎データを抽出するものである
ことを特徴とする請求項4から9のうち何れか1項に記載のデータ変換装置。
The unit grid determination unit identifies the unit grid to which the pixel data belongs based on upper m-bit data of the pixel data to be processed,
The polyhedron determination unit includes the polyhedron to which the pixel data belongs, based on lower n bits of the pixel data, for the unit grid determined by the unit grid determination unit to which the pixel data to be processed belongs. Which identifies
The basic data extraction unit extracts basic data for the number of interpolation operation data corresponding to the pixel data to be processed, based on upper l bits of the pixel data to be processed. The data conversion device according to claim 4, wherein the data conversion device is provided.
前記補間演算処理部は、前記処理対象の画素データが前記複数個の多面体のうちの何れに属するのかについての前記多面体判定部による判定結果に基づいて、当該画素データが属する前記多面体に応じた補間係数を前記処理対象の画素データの下位nビットのデータを使用して求める補間係数生成部と、当該補間係数生成部により求められた補間係数と前記基礎データ抽出部により抽出された前記複数個の基礎データとを用いて前記多面体内での補間演算を行なう補間処理部とを含むことを特徴とする請求項4から10のうちの何れか1項に記載のデータ変換装置。  The interpolation calculation 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 using lower n-bit data of the pixel data to be processed, the interpolation coefficient obtained by the interpolation coefficient generation unit, and the plurality of pieces extracted by the basic data extraction unit 11. The data conversion device according to claim 4, further comprising an interpolation processing unit that performs interpolation calculation in 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 is provided in each of the three memory spaces smaller than four, which is the number of data for interpolation calculation, defined according to the tetrahedron as the polyhedron corresponding to the four colors as output color signal elements. , Any one of the three colors as the k colors is divided into groups according to the predetermined order,
The polyhedron determining unit is configured to process the tetrahedron to which pixel data of the input three colors to be processed belongs, out of the six tetrahedrons obtained by dividing the unit cube specified by the unit grid determining unit. It is specified based on the lower n bits of the target pixel data,
The basic data extraction unit includes four basic data as the number of data for the interpolation operation corresponding to the pixel data to be processed among the plurality of basic data associated with the respective addresses in the data storage unit. Extract
The said interpolation calculation process part performs tetrahedral interpolation calculation using the said 4 basic data extracted by the said basic data extraction part, The any one of Claims 4-11 characterized by the above-mentioned. The data converter described in 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 JP2004112523A (en) 2004-04-08
JP4096672B2 true 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)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5987650B2 (en) * 2012-11-14 2016-09-07 コニカミノルタ株式会社 Color conversion device
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
JP2004112523A (en) 2004-04-08

Similar Documents

Publication Publication Date Title
KR100816709B1 (en) Image processing apparatus, image processing method, image processing program and storage medium
JP2007166561A (en) Apparatus, method, and program for image processing and storage medium
US8503025B2 (en) Image processing apparatus, image processing method, and computer program product
JP3976849B2 (en) Device for generating interpolator input data
JP4724413B2 (en) Data classification method
AU722868B2 (en) Method and system for image format conversion
JP2830690B2 (en) Image processing device
JP2008259177A (en) Color conversion device, color conversion method, color conversion program
JP2008242733A (en) Image processing apparatus
JP4096672B2 (en) Data conversion method and data conversion apparatus
JP2007067956A (en) Multi-dimensional interpolation apparatus and multi-dimensional interpolation method
JP5267147B2 (en) Image processing apparatus, image processing method, and computer program
JP4810615B2 (en) Multidimensional interpolation apparatus, multidimensional interpolation method, and computer program
JP4431953B2 (en) Data conversion apparatus, data conversion method, and data conversion program
JP3346051B2 (en) Image processing device
JP6501561B2 (en) DATA PROCESSING APPARATUS, CONTROL METHOD THEREOF, AND PROGRAM
JP3455078B2 (en) Image processing apparatus and image processing method
JP2004208128A (en) Data conversion method and data converter
JPH0946542A (en) Interpolation arithmetic method and data converter
JP2005045342A (en) Image processing apparatus and image processing program for allowing computer to perform image processing
JP2007174392A (en) Data converting apparatus, control method and program for the data converting apparatus
US8175381B2 (en) Image processing method and apparatus
JPH10198793A (en) Image processor
JPH07230539A (en) Data converter, image forming device and table data storing method
JP3871027B2 (en) Color data converter

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