JP4810615B2 - 多次元補間装置、多次元補間方法、及びコンピュータプログラム - Google Patents

多次元補間装置、多次元補間方法、及びコンピュータプログラム Download PDF

Info

Publication number
JP4810615B2
JP4810615B2 JP2010062833A JP2010062833A JP4810615B2 JP 4810615 B2 JP4810615 B2 JP 4810615B2 JP 2010062833 A JP2010062833 A JP 2010062833A JP 2010062833 A JP2010062833 A JP 2010062833A JP 4810615 B2 JP4810615 B2 JP 4810615B2
Authority
JP
Japan
Prior art keywords
signal
bit
bits
memory
order
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
JP2010062833A
Other languages
English (en)
Other versions
JP2010193474A (ja
Inventor
忠幸 伊藤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Canon Inc filed Critical Canon Inc
Priority to JP2010062833A priority Critical patent/JP4810615B2/ja
Publication of JP2010193474A publication Critical patent/JP2010193474A/ja
Application granted granted Critical
Publication of JP4810615B2 publication Critical patent/JP4810615B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

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

Description

本発明は、多次元補間装置、多次元補間方法、及びコンピュータプログラムに関し、特に、N次元ベクトル信号を補間するために用いて好適なものである。
近年、入力機器としては、スキャナ、ビデオカメラなどが普及している。一方、出力機器としては、インクジェット、染料熱昇華型あるいは電子写真などの方式を用いた、各種カラープリンタが普及している。これらのカラー入力機器及び出力機器は、それぞれ固有の色空間を有しており、例えばあるスキャナで得たカラー画像をそのまま別のカラープリンタに転送して印刷した場合、印刷されたカラー画像の色がスキャナによって読み取られたオリジナルのカラー画像の色と一致することはほとんどない。
このようなカラー画像等に対するデバイス間での色再現性の問題を解決するためには、入力機器の色空間を出力機器の色空間に変換する処理("色空間変換"と呼ぶ)が必要となり、入力機器及び出力機器の色彩再現性能を高めるために、色空間変換機能が入力機器及び出力機器に搭載されている。
ここで色空間変換とは、具体的には入力γ補正,輝度濃度変換,マスキング,黒生成,UCR,出力γ補正等の一連の画像処理全体、もしくはその中の一定の処理を指す。一般的には、入力機器の3色(例えば、レッド,ブルー,グリーンの3色、以下、"RGB"と略称する)のデジタル画像信号を同時に参照して、出力機器の3色(例えば、シアン,マゼンタ,イエローの3色、以下、"CMY"と略称する)あるいは4色(例えば、シアン,マゼンタ,イエロー,ブラックの4色、以下、"CMYK"と略称する)のデジタル画像信号に変換することが多い。また電子写真方式の複写機の場合、稼働時間とともにプリンタのエンジン特性が変化するため、定期的なキャリブレーションが必要となる。このような場合は、入力機器の4色(例えば、"CMYK")から出力機器の4色(例えば、"CMYK")への変換も必要となる。
以上のような色空間変換方法を実現するための第1の従来技術として、色変換の結果が記憶された3D-LUT(3次元ルックアップ・テーブル)を8個のメモリに分けて記憶し、この3D-LUTから参照値を並列に読み出すことで、三次元立方体[トライリニア]補間法や三次元四面体補間法を高速に実行する技術が開示されている(特許文献1を参照)。
かかる技術では、補間に使用する単位超立体の各頂点に対応する参照値がすべて異なるメモリに記憶されるようにすることで、メモリから参照値を読み出すときにアクセスが競合することはなくなるようにしている。また、3D−LUTを重複することなく均等に8個のメモリに分割して記憶している(以後、多次元LUTから参照値を並列に読み出すために多次元LUTを複数のメモリに分割して記憶した場合、それら複数のメモリをそれぞれ"サブメモリ"と呼ぶことにする)。なお、第1の従来技術では、三次元補間法に限定した記載しかなされていないが、第1の従来技術を用いて多次元補間演算を行なう場合には、多次元LUTを2N個のサブメモリに分割して記憶すればよいことになる。
また、3D-LUTを重複することなく4つのサブメモリに分割して記憶し、参照値を並列に読み出すことで三次元四面体補間法を高速に実行する第2の従来技術が開示されている(特許文献2を参照)。
かかる技術では、三次元四面体補間法の場合、選択された四面体の頂点に対応する4つの参照値を並列に読み出して、補間演算を高速化できるようにしている。また、第2の従来技術においても、前述した第1の従来技術と同様に、3D-LUTを重複することなく均等に4個のサブメモリに分割して記憶しており、各サブメモリから参照値を読み出すときにアクセスが競合することはない。
さらに、第2の従来技術におけるLUTを多次元化して分割している。したがって、N次元入力の超四面体(N+1面体)補間法を行なう場合、多次元(N次元)LUTを(N+1)個のサブメモリに分割して記憶できる。
このように、第2の従来技術は、使用するサブメモリの個数が少ないという点で、前述した第1の従来技術よりは優位である。
米国特許4837722号明細書 特開平10-307911号公報
前述した第1の従来技術では、単位超立体の頂点に対応するN個の参照値をそれぞれ独立したN個のサブメモリに記憶し、多次元LUTを2N個に分割している。そのため、多次元四面体補間法以外の補間法(例えば、多次元立体[トライリニア]補間法、多次元三角柱[プリズム]補間法など)を用いても実現することが可能であるという利点を持っている。
しかしながら、多次元四面体補間法を採用することが前提になっている場合、補間演算に必要な(N+1)個の参照値をサブメモリから並列に読み出すために、メモリインターフェースなどのメモリ周辺回路を2N個持つ必要があり、余剰回路が多くなるという問題がある。
また、前述した第2の従来技術では、多次元四面体補間法のみに限定することで、多次元(N次元)LUTを最小限の個数((N+1)個)のサブメモリに分割して記憶している。そのため、メモリ周辺回路も最適な規模であるという利点を持っている。
しかしながら、Nが(2の冪乗−1)でないときには、サブメモリの個数も2の冪乗にならない。例えば、Nが4の場合には、サブメモリの個数は5個となる。そして、第2の従来技術をハードウェア化する場合には、2進法で取り扱うことができない。そのため、Nが(2の冪乗−1)でないときには、サブメモリをアクセスするためのアドレスを生成するときに割り算器が必要となり、シフト演算やビットマスクだけでアドレス生成できないという問題が生じる。また、一般的にメモリは、2の冪乗のワード数で製品化されているため、市場に流通しているメモリを利用してサブメモリを構成する場合、第2の従来技術ではワード数が余剰なメモリを採用しなければならないという問題が生じる。
本発明は、以上のような問題に鑑みてなされたものであり、色空間の変換などの補間演算を高速に行なえるようにすることが、可及的に小さな回路規模で容易に実現できるようにすることを目的とする。
本発明の多次元補間装置は、入力したN次元信号(Nは4以上の整数)から信号を出力する多次元補間装置であって、前記入力したN次元信号値の各成分を各々上位ビットと下位ビットとに分割する分割手段と、前記分割手段により分割された前記上位ビットのデータの組み合わせに対応する参照値を記憶したメモリ手段と、前記参照値を読み出す読み出し手段と、前記読み出し手段により読み出された参照値と、前記分割手段により分割された下位ビットのデータとに基づいて、前記入力したN次元信号に対する補間演算を行なう補間演算手段とを具備し、前記メモリ手段は、前記参照値を2N-1個のサブメモリに分割して記憶することを特徴とする。
本発明の多次元補間方法は、入力したN次元信号(Nは4以上の整数)から信号を出力する多次元補間方法であって、記入力したN次元信号値の各成分を各々上位ビットと下位ビットとに分割する分割工程と記分割工程により分割された前記上位ビットのデータの組み合わせに対応する参照値を読み出す読み出し工程と記読み出し工程により読み出された参照値と、前記分割工程により分割された下位ビットのデータとに基づいて、前記入力したN次元信号に対する補間演算を行なう補間演算工程とを有し、前記参照値は、2N-1個のサブメモリに分割して記憶されていることを特徴とする。
本発明のコンピュータプログラムは、入力したN次元信号(Nは4以上の整数)から信号を出力することをコンピュータに実行させるためのコンピュータプログラムであって、前記入力したN次元信号値の各成分を各々上位ビットと下位ビットとに分割する分割工程と、前記分割工程により分割された前記上位ビットのデータの組み合わせに対応する参照値を読み出す読み出し工程と、前記読み出し工程により読み出された参照値と、前記分割工程により分割された下位ビットのデータとに基づいて、前記入力したN次元信号に対する補間演算を行なう補間演算工程とをコンピュータに実行させ、前記参照値は、2N-1個のサブメモリに分割して記憶されていることを特徴とする。
本発明によれば、N次元超四面体(N+1面体)の補間演算を行なうに際し、補間演算に必要な(N+1)個の参照値を並列に読み出すことが可能になるとともに、前記参照値を記憶するメモリを2N個より少なくすることが可能になるので、補間演算を高速に行なえるようにすることが、小さな回路規模で実現できる。
本発明の第1の実施形態を示し、カラー複写機の全体構成の一例を示すブロック図である。 本発明の第1の実施形態を示し、多次元補間装置の回路構成の一例を示すブロック図である。 本発明の第1の実施形態を示し、基準点から対角点までの単位立体の各頂点を、四次元マンハッタン距離を用いて分類した結果を示す図である。 本発明の第1の実施形態を示し、参照値読み出し部と多次元LUTの回路構成の一例を示すブロック図である。 本発明の第1の実施形態を示し、アドレス生成回路の構成の一例を示すブロック図である。 本発明の第1の実施形態を示し、ビット操作部がN次元参照座標信号のビットを操作する方法の一例を説明する図である。 本発明の第1の実施形態を示し、サブメモリ・バンク生成回路の構成の一例を示す図である。 本発明の第1の実施形態を示し、サブメモリ・アドレス生成回路の構成の一例を示す図である。 本発明の第1の実施形態を示し、サブメモリ・バンクIDに対応する参照値の位置を、アドレスが小さい順にマークして示した図である。 本発明の第2の実施形態を示し、一般化したサブメモリ・バンク生成回路の構成の一例を示す図である。 本発明の第2の実施形態を示し、一般化したサブメモリ・アドレス生成回路の構成の一例を示す図である。 本発明の第3の実施形態を示し、キャッシュ機構をもった多次元LUTの構成の一例を示す図である。 本発明の実施形態を示し、3D-LUTを用いて三次元補間演算を行なう場合の機能ブロック図である。 本発明の実施形態を示し、三次元入力の色空間(RGB空間)を単位立体に分割した状態を示す図である。 本発明の実施形態を示し、四次元超四面体補間法のおける稜線の選択方法を説明する図である。
以下に説明する本発明の実施形態では、色空間の変換を実現する方法として、色空間を変換した結果をルックアップ・テーブル(LUT)としてメモリに予め記憶しておき、入力されたデジタル画像信号に対して、そのLUTを用いて色空間を変換し、その変換結果を出力する。
そして、このLUTを用いた色空間の変換方法において、LUTのメモリを削減するため補間演算を併用する。3色入力のデジタル画像信号に対する色空間変換は、三次元補間演算を用いて実現される。また、4色入力のデジタル画像信号に対する色空間変換は、四次元補間演算を用いて実現される。
そこで、まず、3色入力のデジタル画像信号に対して、三次元ルックアップ・テーブル(3D−LUT)と、三次元補間演算とを併用した色空間変換方法について説明する。
入力デジタル画像信号(R、G、B)は、上位ビットと下位ビットとに分離される。上位ビットは、3D−LUTを用いて行なう補間演算に必要な複数の参照値を取り出すときに使用される。また、下位ビットは、重み係数gとして補間演算に使用される。そして、重み係数gと3D−LUTから取り出された参照値との積和演算により補間値を計算する。
図13は、三次元入力の色空間(RGB空間)を、各軸方向に限定数で分割することで、単位立体に分割した状態を示している。この単位立体の頂点における色空間変換後の色データが、参照値として3D−LUTに記憶されている。3つのデジタル画像信号の上位ビットを色空間の座標と考え、補間演算に使用する単位立体を選択し(例えば、図13に示す単位立体1301)、単位立体の頂点に対応する参照値を補間演算に使用する。
このときに使用される三次元補間演算の方法として四面体補間法がある。
この補間法は、図14(b)〜(g)に示すように、単位立体(例えば、図13に示す単位立体1301)を6つの四面体に分割して(以下、分割した6つの四面体をそれぞれType0〜Type5と称する)、入力座標がどの四面体に属するかによって、以下の(1式)〜(6式)を用いて補間演算する。なお、以下の(1式)〜(6式)では、図14(a)に示す単位立体の頂点に対応する参照値を、それぞれP0〜P7とし、重み係数gをΔR、ΔG、ΔBとしている。また、Type0からType5の四面体のうち、どの四面体を選択するかは、これら重み係数ΔR、ΔG、ΔBの大小関係により決定される。
Type0のとき(ΔR>ΔG>ΔB)
X=P0+(P1−P0)×ΔR+(P3−P0)×ΔG+(P7−P0)×ΔB ・・・(1式)
Type1のとき(ΔR>ΔB>ΔG)
X=P0+(P1−P0)×ΔR+(P7−P0)×ΔG+(P5−P0)×ΔB ・・・(2式)
Type2のとき(ΔG>ΔR>ΔB)
X=P0+(P3−P0)×ΔR+(P2−P0)×ΔG+(P7−P0)×ΔB ・・・(3式)
Type3のとき(ΔG>ΔB>ΔR)
X=P0+(P7−P0)×ΔR+(P2−P0)×ΔG+(P6−P0)×ΔB ・・・(4式)
Type4のとき(ΔB>ΔR>ΔG)
X=P0+(P5−P0)×ΔR+(P7−P0)×ΔG+(P4−P0)×ΔB ・・・(5式)
Type5のとき(ΔB>ΔG>ΔR)
X=P0+(P7−P0)×ΔR+(P6−P0)×ΔG+(P4−P0)×ΔB ・・・(6式)
また、これまで説明した三次元四面体補間法を多次元化することも可能である。以下に、多次元超四面体補間法について説明する。
図13に示す三次元直交座標に固定された空間を多次元化して、N次元直交座標に固定された空間にした場合、図13に示す単位立体は、多次元の単位超立体(N次元超立体、もしくは超六面体と呼ぶ)に多次元化される。そして、三次元四面体補間法で使用された四面体は、この多次元化により超四面体と呼ばれる(N+1)面体に多次元化される。
この超四面体は、単位超立体の基準点と対角点とを結ぶ線と、超立体の互いに直交し、且つ連結しているN本の稜線とによって形成される。そして、1つの単位超立体を分割してN!個の超四面体を作ることができる。単位超立体から超四面体を切り出す過程で選択したN本の稜線は、互いに垂直であり、且つN次元直交座標の各軸方向にそれぞれ平行である。このため、各軸方向の出力変移量の線形和を基準点出力値に加算した値が多次元補間演算の出力となる。したがって、選択された稜線の両端点における参照値の差分値に、各稜線上での基準点からの距離を乗算して、それら乗算値を基準点の参照値に累積加算することで補間演算を行なえる。
次に、四次元空間(X0,X1,X2,X3)を例に挙げて、四次元超四面体補間法のおける稜線の選択方法を説明する。図15は、入力座標を(X0<i>+ΔX0,X1<j>+ΔX1,X2<k>+ΔX2,X3<l>+ΔX3)とし、この入力座標と基準点座標(X0<i>,X1<j>,X2<k>,X3<l>)との差(ΔX0,ΔX1,ΔX2,ΔX3)の大小関係が、{ΔX0>ΔX1>ΔX2>ΔX3}の場合において、稜線を選択する方法を示している。
まず、図15(b)に示すように、入力座標と基準点座標との変移量が最も大きいΔX0に対応するX0軸と平行で、且つ基準点を端点にもつ稜線、つまり点(X0<i>,X1<j>,X2<k>,X3<l>)と点(X0<i+1>,X1<j>,X2<k>,X3<l>)とを両端点に持つ稜線が選択される。
次に、図15(c)に示すように、入力座標と基準点座標との変移量が2番目に大きいΔX1に対応するX1軸と平行で、且つ点(X0<i+1>,X1<j>,X2<k>,X3<l>)を端点にもつ稜線、つまり、点(X0<i+1>,X1<j>,X2<k>,X3<l>)と点(X0<i+1>,X1<j+1>,X2<k>,X3<l>)とを両端点に持つ稜線が選択される。
次に、図15(d)に示すように、入力座標と基準点座標との変移量が3番目に大きいΔX2に対応するX2軸と平行で、且つ点(X0<i+1>,X1<j+1>,X2<k>,X3<l>)を端点にもつ稜線、つまり、点(X0<i+1>,X1<j+1>,X2<k>,X3<l>)と点(X0<i+1>,X1<j+1>,X2<k+1>,X3<l>)とを両端点に持つ稜線が選択される。
最後に、図15(e)に示すように、入力座標と基準点座標との変移量が最も小さいΔX3に対応するX3軸と平行で、且つ点(X0<i+1>,X1<j+1>,X2<k+1>,X3<l>)を端点にもつ稜線、つまり、点(X0<i+1>,X1<j+1>,X2<k+1>,X3<l>)と点(X0<i+1>,X1<j+1>,X2<k+1>,X3<l+1>)とを両端点に持つ稜線が選択される。
最終的に、点(X0<i>,X1<j>,X2<k>,X3<l>)、(X0<i+1>,X1<j>,X2<k>,X3<l>)、(X0<i+1>,X1<j+1>,X2<k>, X3<l>)、(X0<i+1>,X1<j+1>,X2<k+1>,X3<l>)、(X0<i+1>,X1<j+1>,X2<k+1>,X3<l+1>)の5つの頂点で構成される超四面体(5面体)が決定される。このとき、基準点(X0<i>,X1<j>,X2<k>,X3<l>)から最も遠い点(X0<i+1>,X1<j+1>,X2<k+1>,X3<l+1>)を対角点と呼び、基準点と対角点とを結ぶ線を対角線と呼ぶことにする。
多次元超四面体補間法は、基準点と対角点とが、入力座標と基準点座標との差(ΔX0,ΔX1,ΔX2,ΔX3)の大小関係にかかわらず、必ず超四面体の頂点として選択されるという特徴を持つ。そこで、単位超立体から入力座標に対応する超四面体を選択する工程は、基準点をスタート、対角点をゴール、各稜線をスタートからゴールまでの経路と見立てれば、基準点から対角点までの経路を選択する経路選択問題と考えることができる。
この場合、経路の採り得る"場合の数"は、24(=4!=4×3×2×1)通りになり、四次元補間演算では単位超立体を24個の超四面体に分割できることが分かる。同様に、N次元補間演算の場合、単位超立体をN!個の超四面体に分割できることが分かる。
次に、N次元補間演算について説明する。N次元直交座標に固定された空間(X0,X1,・・・,XN-1)上の座標(X0<i>,X1<j>,X2<k>,…XN-2<a>,XN-1<b>)の参照値を、P<i,j,k,…,a,b>とする。また、ある入力座標によって選択された超立体の基準点の座標を(X0<i>,X1<j>,X2<k>,…XN-2<a>,XN-1<b>)とし、入力座標と基準点座標との差を(ΔX0,ΔX1,ΔX2,…,ΔXN-2,ΔXN-1)とする。そして、{ΔX0>ΔX1>ΔX2>…>ΔXN-2>ΔXN-1}の関係が成り立つ場合、以下の(7式)を用いて補間値Xを求めることができる。
Figure 0004810615
(第1の実施形態)
次に、本発明の第1の実施形態について説明する。
図1に、カラー複写機の全体構成の一例を示す。
図1において、画像読み取り部120は、レンズ122、CCDセンサ124、及びアナログ信号処理部126等を備えて構成される。レンズ122を介しCCDセンサ124に結像された原稿100の画像が、CCDセンサ124によりR(Red),G(Green),B (Blue)のアナログ電気信号に変換される。
アナログ信号に変換された画像情報は、アナログ信号処理部126に入力され、R,G,Bの各色毎に補正等が行われた後にアナログ・デジタル変換(A/D変換)される。デジタル化されたフルカラー信号(以下、デジタル画像信号という)は、画像処理部130に入力される。画像処理部130は、デジタル画像信号に対し、入力γ補正、色空間変換、濃度補正、及びスクリーン処理を施し、これらの処理が施された後のデジタル画像信号をプリンタ部140へ出力する。
プリンタ部140は、例えば、レーザ等からなる露光制御部(図示せず)、画像形成部(図示せず)、及び転写紙の搬送制御部(図示せず)等により構成され、入力されたデジタル画像信号により転写紙上に画像を記録する。
また、CPU回路部110は、演算制御用のCPU112、固定データやプログラムを格納するROM114、データの一時保存やプログラムのロードに使用されるRAM116、及び外部記憶装置118等を備えて構成され、画像読み取り部120、画像処理部130、及びプリンタ部140等を制御し、カラー複写機のシーケンスを統括的に制御する。外部記憶装置118は、カラー複写機が使用するパラメータやプログラムを記憶するディスク等の媒体であり、RAM116のデータやプログラム等は、外部記憶装置118からロードされる構成としても構わない。
本実施形態の多次元補間装置は、例えば画像処理部130で行なわれる色空間変換を実現している。なお、本発明は、図1に示したようなカラー複写機に限定されるものではなく、プリンタやPC(パーソナルコンピュータ)に実施することもできる。以下、図2を用いて、本実施形態の多次元補間装置の回路構成と処理の流れについて詳しく説明する。
本実施形態の多次元補間装置は、N次元の入力信号に対し補間演算を行い、新たな信号を出力する。まず、デジタル画像信号205が多次元補間装置に入力される。このデジタル画像信号205は、N入力の信号である。デジタル画像信号205は、データ分割部210で上位ビット信号212と下位ビット信号214とに分割される。
デジタル画像信号205がN入力の信号であるため、デジタル画像信号205を分割して得られた上位ビット信号212と下位ビット信号214は、ともにN本の信号となる。一般的に、上位ビット信号212は、補間演算のときに使用される単位超立体の個数に応じてそのビット深度が決定される。例えば、N次元空間のある軸について単位超立体が(2x-1)個ある場合、その軸に対応する上位ビット信号212のビット深度はxビットとなる。また、一般的に、下位ビット信号214は、デジタル画像信号205のビット深度から上位ビット信号212のビット深度を差し引いた、残りのビット深度で表現される。
次に、順序判定部230は、N本の下位ビット信号214を受け取り、下位ビット信号214の大小関係を判定し、判定した結果を順序信号232として出力する。この順序信号232は、前述した単位超立体から補間演算に使用する超四面体(N+1面体)の稜線を選択する工程に従って予め定められたN!通りの稜線選択パターンを指し示す信号である。
参照座標選択部220は、順序判定部230の判定結果である順序信号232に従い、補間演算に必要となる(N+1)個の参照値252を多次元LUT260から読み出すための座標を決定し、決定した座標を、(N+1)本の参照座標信号222として出力する。
また同様に、重み係数算出部240は、下位ビット信号214をもとに、補間演算の重み係数信号242を算出し、補間演算部270に出力する。なお、下位ビット信号214をもとに、補間演算の重み係数信号242を算出する方法としては、例えば、対応表となるテーブルを予めROMに格納しておき、該当する補間演算の重み係数信号242をROMから読み出すことで、下位ビット信号214を補間演算の重み係数信号242に変換する方法や、予め定められた計算式により算出する方法などが挙げられる。
また、参照値読み出し部250は、(N+1)本の参照座標信号222を用いて多次元LUT260から(N+1)個の参照値を読み出し、読み出した参照値を参照値信号252として出力する。多次元LUT260は、複数個のサブメモリで実現されている。参照値読み出し部250は、サブメモリの個数と等しい数のアドレス信号254を各サブメモリに出力して各サブメモリにアクセスし、各サブメモリからデータ信号262を受け取る。
補間演算部270は、(N+1)本の参照値信号252と、N本の補間演算の重み係数信号242とを受け、前述した補間演算式に従い補間演算を行い、1本の出力信号275を出力する。
次に、N次元超四面体補間法において、多次元LUT260の参照値を重複することなく、2N-1個のサブメモリに分割して記憶する方法の一例について説明する。
図3に、四次元超四面体補間法に従って、基準点から対角点までの単位立体の各頂点を、四次元マンハッタン距離を用いて分類した結果を示す。
ここで、N次元マンハッタン距離Dmは、N次元直交座標に固定された空間上の2点A(X0<i1>,X1<j1>,X2<k1>,…,XN-2<a1>,XN-1<b1>)と、B(X0<i2>,X1<j2>,X2<k2>,…,XN-2<a2>,XN-1<b2>)との距離であり、以下の(8式)で定義されるものである。
Dm=|X0<i1>−X0<i2>|+|X1<j1>−X1<j2>|+|X2<k1>−X2<k2>|+・・・+|XN-2<a1>−XN-2<a2>|+|XN-1<b1>−XN-1<b2>| ・・・(8式)
そして、三次元四面体補間法では、多次元LUTを22個のサブメモリに分割して記憶することを利用し、四次元の単位超立体の基準点(X0<i>,X1<j>,X2<k>,X3<l>)から点(X0<i+1>,X1<j+1>,X2<k+1>,X3<l>)までの23個の頂点に対し、三次元四面体補間法における多次元LUTの分割記憶方法を適用する(図3の領域810)。
単位超立体から補間演算に使用する超四面体を選択する工程は、基準点からどの頂点を通って対角点に到達するかという経路選択問題と考えられるため、マンハッタン距離Dmが同一の頂点群からは常に1つの頂点のみが選択される。つまり、マンハッタン距離Dmが同一の頂点群を同じサブメモリに記憶した場合は、そのサブメモリから異なる2つの頂点は同時には読み出されることはない。そのため、サブメモリへのアクセスが競合することはない。
図3においては、Mem0、Mem1、Mem2、Mem3と記載された太線で囲まれた頂点が同一のサブメモリに記憶され、三次元四面体補間法では、各頂点が4個のサブメモリに分割して記憶されることが理解できる。
また、残った単位超立体の23個の頂点(X0<i>,X1<j>,X2<k>,X3<l+1>)〜(X0<i+1>,X1<j+1>,X2<k+1>,X3<l+1>)に対し、さらに三次元四面体補間法における多次元LUTの分割記憶方法を適用する(図3の領域820)。
最終的には、図3に示すMem0,・・・,Mem7と記載された太線で囲まれた頂点が同一のサブメモリに記憶され、多次元LUT260は、(2×22)個のサブメモリに分割される。同様に、N次元超四面体補間法においても、23個の頂点(X0<i>,X1<j>,X2<k>,…)〜(X0<i+1>,X1<j+1>,X2<k+1>,…)ごとに、三次元四面体補間法における多次元LUTの分割記憶方法を適用すればよい。
前記23個の頂点は、2N-3組あり、1つの組が22個のサブメモリに記憶されるので、多次元LUT260は、全部で2N-1個のサブメモリに分割されることとなる。このように常に22個のサブメモリを単位としてサブメモリの数が増加していく。以後、増加の単位をクラスタリング単位と呼び、この単位の数だけサブメモリが集まったものをクラスタ・サブメモリと呼び、前記2N-3組をクラスタ数と呼ぶことにする。また、1つのクラスタ・サブメモリを当てはめる入力次元数をベースm(第1の実施の形態の場合、"m=3")と呼ぶことにする。
次に、図4を用いて、参照値読み出し部250と多次元LUT260について詳細に説明する。
図4において、(N+1)個のアドレス生成回路310が、(N+1)個の参照座標信号222をそれぞれ受けて、アドレス信号312と、サブメモリ・バンク選択信号314とを算出する。参照値読み出し部250には、各サブメモリに対応するアドレス選択回路320があり、各アドレス選択回路320は、(N+1)組のアドレス信号312と、サブメモリ・バンク選択信号314とを受ける。
各アドレス選択回路320は、自身に対応付けられているサブメモリ・バンクID"SmB_ID"と、入力されたサブメモリ・バンク選択信号314とが等しいアドレス信号254を、(N+1)本のアドレス信号312の中から1つ選択し、選択したアドレス信号254を用いて、サブメモリ330にアクセスする。
次に、(N+1)個のデータ選択回路340は、サブメモリ330から出力されたサブメモリの個数と等しい数のデータ信号262と、対応するアドレス生成回路310から出力されたサブメモリ・バンク選択信号314とを受け取り、サブメモリ・バンク選択信号314と等しいサブメモリ・バンクID"SmB_ID"を有するサブメモリ330から出力されたデータ信号262のみを選択し、選択したデータ信号262を参照値252として出力する。
次に、アドレスを生成する方法の一例を説明する。図5に、アドレス生成回路310の構成の一例を示す。
図5において、アドレス生成回路310は、ビット操作部410、サブメモリ・バンク生成回路420、及びサブメモリ・アドレス生成回路430を備えて構成され、N次元参照座標信号222({S0,S1,…,St,…,SN-1})が参照座標選択部220から入力される。
図6に、ビット操作部410がN次元参照座標信号222のビットを操作する方法の一例を示す。
図6において、それぞれがwビットのビット深度を有するN個のN次元参照座標信号222を、ビット操作部410が、下位ビットから所定の形式に並べ替え、(N×w)ビットの信号515を作る。図6に示す例では、まず、ビット操作部410は、N個の参照座標信号222の下位1ビット目だけを取り出し、Nビットの信号[SN-1[0],・・・,St[0],・・・,S1[0],S0[0]]を作る。
次に、ビット操作部410は、N個のN次元参照座標信号222の下位2ビット目だけを取り出し、Nビットの信号[SN-1[1],・・・,St[1],・・・,S1[1],S0[1]]を作る。さらに、ビット操作部410は、N個の参照座標信号222の下位uビット目だけを取り出し、Nビットの信号[SN-1[u],・・・,St[u],・・・,S1[u],S0[u]]を作る。こうして、N個の参照座標信号222の最上位のNビットの信号[SN-1[w-1],・・・,St[w-1],・・・,S1[w-1],S0[w-1]]まで同様の操作を行い、図6に示すように各Nビットの信号を連結して(N×w)ビットの信号515を作る。
このように、N個のN次元参照座標信号222のビットを操作(ビット操作)することで、多次元LUT260の単位超立体の個数を容易に増やすことができる。例えば、サブメモリ330の容量が大きくてもよい多次元補間装置で多次元LUT260を拡張する場合には、N次元参照座標信号222のビット深度をwビットから(w+1)ビットに変更し、ビット操作部410の出力の上位にNビットの信号[SN-1[w],・・・,St[w],・・・,S1[w],S0[w]]を連結すればよい。しかも、拡張されたビットは、拡張前のアドレスの上位に連結されるので(アドレスの生成方法については後述する)、拡張前の多次元補間装置と拡張後の多次元補間装置とで、アドレスとデータとの関係に互換性を持たせることができる。
次に、図7を用いて、サブメモリ・バンク生成回路420の詳細について説明する。
図7において、ビット操作部410から出力された(N×w)ビットの信号515の下位(3+N)ビットの信号605が、サブメモリ・バンク生成回路420に入力される。この信号605の下位3ビットの信号608は、加算器630にて加算処理される。加算処理された値(S2[0]+S1[0]+S0[0])は、信号632として出力される。
同様に、上位3ビットの信号606は、加算器610にて加算処理される。加算処理された値(S2[1]+S1[1]+S0[1])612は、左シフタ640により1ビットだけ左シフトされ(加算処理された値612<<1)、シフトされた値が信号642として出力される。
また、クラスタ数生成回路620は、1を入力値607だけ左シフトし(1<<入力値607)、シフトした値を信号622として出力する。
さらに、前記信号622、632、642は、加算器650にて加算された後、サブメモリ・バンク選択信号生成回路660にて下位(N−1)ビットのみが取り出され、取り出された信号は、サブメモリ・バンク選択信号314として出力される。
次に、図8を用いて、サブメモリ・アドレス生成回路430の詳細について説明する。
サブメモリ・アドレス生成回路430は、ビット操作部410から出力された(N×w)ビットの信号515をもとに、サブメモリ330にアクセスするためのアドレス信号312を生成する。
ビット操作部410から出力された(N×w)ビットの信号515の下位(3+N)ビットのうち、6ビットの信号709が、下位アドレス生成回路710に入力され、4ビットのアドレス下位信号712が作成される。なお、残りのビットは、サブメモリ・バンク信号314を生成するために使用され、サブメモリ・アドレス生成回路430では使用されない。
最後に、ビット連結器720を用いて、アドレス上位信号708と、4ビットのアドレス下位信号712とをビット連結し、連結した信号をアドレス信号312として出力する。
ここで、下位アドレス生成回路710についてさらに詳細に説明する。
下位アドレス生成回路710に入力される6ビットの信号709は、3次元入力信号{S0,S1,S2}の下位2ビットの信号により形成されており、3D−LUTの座標に対応している。これまで説明してきたように、この4×4×4の3D−LUTが、4つのサブメモリ330に分割されるため、この6ビットの信号709は4つのサブメモリ330における参照値のすべてに対応している。
しかしながら、必要とするアドレス下位信号712は、サブメモリ330ごとの下位4ビットのアドレス信号であるため、この6ビットをそのまま使用することはできない。表1に、サブメモリ330ごとに分類した6ビットの入力信号709と、出力となる4ビットのアドレス下位信号712との対応関係を示す。
Figure 0004810615
図9は、4×4×4の3D−LUT内で、サブメモリ・バンクID("SmB_ID=0")に対応する参照値の位置を、アドレスが小さい順にマークして示した図である(図9の丸付き数字0〜15)。図9(a)において、マークされていない箇所の参照値は、他のサブメモリ330に記憶されていることを意味する。
表1のようなテーブルを作成し、4×4×4の3D−LUTを回路内にテーブルROMとして実装することで、6ビットの入力信号709を4ビットのアドレス下位信号712に容易に変換できる。
また、4×4×4の3D−LUT内の点在する参照点を予め整理し、図9(b)及び図9(c)に示すように、4×4の参照点にまとめれば、テーブルROMは不要となる。図9(b)に示すようにして参照点を整理した場合には、アドレス下位信号712は、[S2[1],S2[0],S1[1],S1[0]]の順でビット連結した信号となる。また、図9(c)に示すようにして参照点を整理した場合には、アドレス下位信号712は、[S2[1],S1[1],S2[0],S1[0]]の順でビット連結した信号となる。
ここで、表2に、前述した第1の従来技術及び第2の従来技術と、本実施形態とを比較した結果を示す。
Figure 0004810615
表2から分かるように、本実施形態では、サブメモリの数を、第1の従来技術の半分にすることができる。また、第2の従来技術と違い、本実施形態では、分割後のサブメモリ1つ当たりに記憶される参照値の数を常に2の冪乗個にすることができる。さらに、N次元入力(Nは4以上の整数)の超四面体補間法において、基本となる3次元入力からアドレスの下位4ビットが常に決定されることになる。そのため、アドレスの下位4ビットを生成する回路は、Nの値が変っても同一の回路となる。
また、第2の従来技術では、アドレス生成のために割り算器が必要になるため、アドレス生成回路を小規模化するためにはNの値ごとにテーブルROMの内容を変えるなどの工夫が必要となり、Nの値ごとにアドレス生成回路を再設計する必要がある。これに対して、前述したように、本実施形態では、Nの値が変ってもアドレス生成回路を再利用でき、容易に多次元化に対応できる。さらに、多次元LUTの単位超立体の個数の増加に伴い、N次元入力信号のビット深度が増加した場合でも、アドレス生成時のビット操作を行なうことで容易に対応できる。すなわち、本実施形態では、N次元入力信号の入力数とビット深度との両方に対し拡張性のある多次元補間装置を実現することができる。
以上のように、本実施形態によれば、N次元入力(Nは4以上の整数)の超四面体補間法において、基本となる3次元入力からアドレスの下位4ビットが常に決定され、アドレスの下位4ビットを生成する回路はNの値が変っても同一の回路となる。そのため、アドレス生成回路を再利用でき、容易に多次元化に対応できる。また、多次元LUTの単位超立体の個数が増加することに伴って、N次元入力信号のビット深度が増加した場合でも、アドレス生成時のビット操作を行なうだけで、N次元入力信号のビット深度の増加に容易に対応することができる。すなわち、本実施形態によれば、N次元入力信号の入力数とビット深度との両方に対し拡張性のある多次元補間装置を提供することができる。特に、四次元超四面体(5面体)補間法に対して、本実施形態の多次元補間装置を適用する場合、サブメモリ330の個数は、必須となる5個よりは多いが、最も小さい2の冪乗数(=23個)となるため効果が高い。
(第2の実施形態)
次に、本発明の第2の実施形態について説明する。前述した第1の実施形態では、基本となる3次元入力(ベースm=3)に対し、サブメモリを22個単位(クラスタリング単位=22)で当てはめることで、多次元LUTを分割して記憶するようにした。四次元超四面体補間法に適用する場合には、前記単位のサブメモリ(クラスタ・サブメモリ)が2組(クラスタ数=24-3)必要となる。多次元LUTにサブメモリを分割して記憶する方法は、第1の実施形態で説明した方法に限るわけではなく、アドレス生成回路が複雑になるという問題はあるが、一般化することができる。なお、本実施形態の説明において、前述した第1の実施形態と同一の部分については、図1〜図9に付した符号と同一の符号を付すなどして詳細な説明を省略する。
基本となる入力次元数であるベースmに対してクラスタリング単位は、(m+1)となる。N次元超四面体補間法に適用する場合、クラスタ数は2N-mとなる。N次元超四面体補間法に必要となるサブメモリの総数NSmBは、N>mが成立する場合、以下の(9式)のようになる。
NSmB=(m+1)×2N-m ・・・(9式)
基本となる入力次元数であるベースmと、N次元超四面体補間法を用いた場合のサブメモリの総数との対応関係は、表3に示したようになる。
Figure 0004810615
また、多次元LUTにサブメモリを分割して記憶することを一般化する方法を、ハードウェア化することも可能である。
図10は、一般化したサブメモリ・バンク生成回路1420を示している。
図10において、ビット操作部410から出力された(N×w)ビットの信号515の下位(m+N×u)ビットの信号1605を入力する。ここで、uは、(m+1)を2進法で表現することができるビット深度を示す。つまり、log2(m+1)以上の最小の整数である。この信号1605の下位mビットの信号1608は、加算器1630にて加算処理される。加算処理された値(Sm-1[0]+・・・+S1[0]+S0[0])は、信号1632として出力される。
同様に、上位mビットの信号1606は、加算器1610にて加算処理される。加算処理された値(Sm-1[1]+・・・+S1[1]+S0[1])は、左シフタ1640により1ビットだけ左シフトされ、シフトされた値が信号1642として出力される。そして、図10に示す通り、同様の操作を((Sm-1[u−1]+・・・+S1[u−1]+S0[u−1])<<u)となるまで行なう。
さらに、前述した加算処理により得られた信号1632と、シフトされた信号1642は、後述する加算器1650で加算される。これは、入力されたN個の参照座標信号(S0,S1,…,St,…,SN-1)のうち、基本となる入力次元数であるベースmに対応する信号(S0,S1,…,Sm-1)の下位uビットのみを取り出し、その合計を求めていることを意味する。図10に示すサブメモリ・バンク生成回路1420の例では、ビット操作部410の出力に対して処理されるため、加算処理とシフト処理とを行なっている。
また、クラスタ数生成回路1620は、クラスタリング単位(m+1)を入力値1607だけ整数倍した値を信号1622として出力する。
さらに、前記信号1632、1622、1642は、加算器1650にて加算され信号1652として出力される。そして、サブメモリ・バンク選択信号生成回路1660は、(m+1)×2N-mで信号1652を割り、その余りがサブメモリ・バンク選択信号1314として出力される。
以上のように、本実施形態のサブメモリ・バンク生成回路1420では、以下の(10式)に基づく演算を行なってサブメモリ・バンク選択信号1314を生成する回路である。
Figure 0004810615
ただし、<<は、ビットの左シフトを表し、%は、割り算の余りを表す(例えばa%bは、aをbで割った余りを表す)。
(10式)の第1項"ΣXj%(M+1)"では、0〜MのIDを作り、(10式)の第2項"(M+1)Σ[(X%2)<<(j-M)]で、(M+1)*0,(M+1)*1,(M+1)*2,・・・とオフセットを加算する。
図10において、クラスタ数生成回路1620は、選択されなかった(N−M)個の成分について、各々奇数か偶数かを判定し、前記判定結果に基づき(M+1)の倍数を前記余りに加算することによって得られる値を指標値とし、前記指標値に基づいて前記頂点を分類する。第2の実施形態では、クラスタリング単位"m+1"を整数倍する値として、n次元入力(S0, S1, …, Sm-1, Sm, Sm+1, …, Sn-1)信号のうち、(Sm, Sm+1, …, Sn-1)の信号に着目し、そのLSBである(Sm[0], Sm+1[0], …, Sn-1[0])を使用しているので、結局、(Sm, Sm+1, …, Sn-1)の信号の奇数か偶数かを判定していることになる。
なお、第2の実施形態では上記着目した信号のLSBにてバンク信号のオフセットの加算の有無を判断しているが、LSBである必要はなく、
(Sm[1], Sm+1[1], …, Sn-1[1])
(Sm[2], Sm+1[2], …, Sn-1[2])
・・・
(Sm[w-1], Sm+1[w-1], …, Sn-1[w-1])
のように、LSBの代わりに、(Sm, Sm+1, …, Sn-1)のうち定められたビット位置のオン/オフを元にクラスタリング単位(m+1)を整数倍した値を信号1622として出力すればよい。
次に、図11を用いて、一般化したサブメモリ・アドレス生成回路1430について説明する。
図11(a)に示すように、サブメモリ・アドレス生成回路1430は、ビット操作部410から出力された(N×w)ビットの信号1515をもとに、サブメモリ330をアクセスするためのアドレス信号1312を生成する。
ビット操作部410から出力された(N×w)ビットの信号1515の下位(m+N×u)ビットのうち、(m×u)ビットの信号1709が、下位アドレス生成回路1710に入力され、{(m−1)×u}ビットのアドレス下位信号1712が生成される。なお、残りのビットは、サブメモリ・バンク信号1314を生成するために使用され、サブメモリ・アドレス生成回路1430では使用されない。
最後に、ビット連結器1720を用いてアドレス上位信号1708と、{(m−1)×u}ビットのアドレス下位信号1712とをビット連結し、連結した信号をアドレス信号1312として出力する。
下位アドレス生成回路1710は、図11(b)に示すように、テーブルROM1710aを用いてアドレス下位信号1712を生成する。このようにした場合、ベースmが大きくなるにつれて、必要となるテーブルROMの大きさは大きくなる。
そこで、ベースmが2の冪乗−1の値(例えば、表3において、ベースmが3及び7)の場合には、下位アドレス生成回路1710を、図11(c)に示すように、ビット操作のみを行なう回路1710bを用いて実現できる。表3から分かるように、8次元超四面体補間法の場合、ベースmが7の構成を用いれば、アドレスの生成が容易となり、且つサブメモリの総数が少ない8次元超四面体補間装置(多次元補間装置)を実現できる。
以上のように、本実施形態によれば、N次元入力(Nは3以上の整数)の超四面体補間法において、基本となる入力次元数であるベースmを(N−1)とすれば、クラスタリング単位(m+1)は常にNとなる。したがって、クラスタ数は、2N-m=21となり、多次元LUTを、(N×2)個のサブメモリに分割して記憶することができる。
(第3の実施形態)
次に、本発明の第3の実施形態について説明する。本実施形態では、前述した第1の実施形態における多次元LUT260を、外部メモリとキャッシュ機構とを用いて実現するようにしている。また、本実施形態における多次元LUTの参照値のビット深度を、8ビットとしている。なお、本実施形態の説明において、前述した第1及び第2の実施形態と同一の部分については、図1〜図11に付した符号と同一の符号を付して詳細な説明を省略する。
本実施の形態のキャッシュ機構は、外部メモリをバースト・アクセスすることで、データ更新を高速に行なうことを可能とする。ここで、バースト・アクセスとは、1ワードずつ外部メモリからデータを読み出すのではなく、ある連続する複数のアドレスに対応するデータを一括して読み出す方法である。一般に、SDRAMやDDR−SDRAMなどの汎用メモリは、16バイト(128ビット)単位のバースト・アクセスに対応しており、本実施形態でも、バースト・アクセスの単位を16バイトとする。
よって、キャッシュ機構は、8ビット(参照値のビット深度)×16ワードのデータを1つの単位として外部メモリへアクセスする。図8から分かるように、アドレス上位信号708が、外部メモリへアクセスするためのアドレス信号となり、アドレス下位信号712が、バースト・アクセスによって得られた16バイトのデータの何バイト目のデータかを指し示す信号となる。以降、アドレス上位信号とアドレス下位信号という言葉で、両者を区別することとする。
図12に、本実施形態における多次元LUTの構成の一例を示し、この図12を用いて、本実施形態の回路動作について説明する。
アドレス信号254が入力されると、そのアドレス信号254に含まれるアドレス上位信号708をもとに、ミスヒット判定回路920でキャッシュにヒットしたかどうかが判定される。ミスヒット判定回路920は、データバッファ950に記憶されているデータに対応するアドレスの上位値をタグRAM930に記憶している。
ミスヒット判定回路920は、外部から入力されるアドレス信号254に含まれるアドレス上位信号708が、タグRAM930に記憶されているアドレス上位値の1つと同じであれば、キャッシュにヒットしたと判定する。一方、アドレス上位信号708が、どのアドレス上位値とも異なっている場合には、キャッシュにミスヒットしたと判定する。ミスヒットしたと判定した場合、ミスヒット判定回路920は、タグRAM930内の任意のタグ番号に記憶されているアドレス上位値を、外部から入力された上位アドレス信号708に上書きし、そのタグ番号に対応するデータバッファ950内のデータを外部メモリから更新したデータに置き換える。
このデータの置き換え処理を行なうために、まずミスヒット判定回路920は、アドレス信号254に含まれているアドレス上位信号708を、アドレス信号922として調停回路975に送り、調停回路975、バス970、及びメモリコントローラ965を介して外部メモリ960にデータを要求する。調停回路975は、各サブメモリに接続されているキャッシュ機構から出力される各アドレス信号922を調停し、順番にメモリコントローラ965へ送る。
また、メモリコントローラ965から送られてきたデータを、アドレス信号922を送った順番で、各サブメモリ910a〜910nに接続されているキャッシュ機構に返す。次に、ミスヒット判定回路920は、キャッシュにミスヒットしたか否かの判定結果に係わらず、その判定結果を示すフラグと、キャッシュのタグ番号と、アドレス信号254に含まれる下位アドレス信号712とを、まとめてコマンド信号942として遅延回路940に送る。なお、サブメモリ910の個数は、図12に示したものに限定されるものではない。
遅延回路940は、FIFO(First-In First-Out)で実現されており、ある程度の数のコマンド信号942を蓄えることができる。そのため、ミスヒット判定回路920は、FIFOに空き領域がある間は連続して外部メモリ960にアドレス信号922を先出しする。キャッシュコントローラ945は、遅延回路940からコマンド信号942を受け取り、判定結果がヒットならタグ番号に対応するデータバッファ950から16バイトのデータ952を取り出す。次に、アドレス下位信号712により出力する1バイトのデータを選択し、選択したデータを、データ信号262として出力する。
キャッシュコントローラ945は、判定結果がミスヒットなら、調停回路975からデータ978が送られるまで待機する。データ978が送られてきた時点で、データ978からアドレス下位信号712により出力する1バイトのデータを選択し、データ信号262として出力しつつ、タグ番号に従ってデータ978をデータバッファ950に書き込んで、データバッファ950を更新する。
なお、アドレス上位信号708は、図6で説明したビット操作が行なわれている。このため、N次元参照座標信号(S0,S1,…,St,…,SN-1)のどの信号の変化に対しても、キャッシュのミスヒット率は、ほぼ均一となる。
このように、本実施形態によれば、N次元入力の超四面体補間装置(Nは4以上の整数)において、Nの値が変化してもアドレス下位信号712は常に4ビットとなり、そのためNの値が変化してもキャッシュ機構を変える必要がなく、同一の回路を再利用できる。したがって、Nの値に係わらず、多次元LUTを外部メモリとキャッシュ機構とを用いて容易に実現できる。
(本発明の他の実施形態)
上述した実施形態の機能を実現するべく各種のデバイスを動作させるように、該各種デバイスと接続された装置あるいはシステム内のコンピュータに対し、前記実施形態の機能を実現するためのソフトウェアのプログラムコードを供給し、そのシステムあるいは装置のコンピュータ(CPUあるいはMPU)に格納されたプログラムに従って前記各種デバイスを動作させることによって実施したものも、本発明の範疇に含まれる。
また、この場合、前記ソフトウェアのプログラムコード自体が上述した実施形態の機能を実現することになり、そのプログラムコード自体、及びそのプログラムコードをコンピュータに供給するための手段、例えば、かかるプログラムコードを格納した記録媒体は本発明を構成する。かかるプログラムコードを記憶する記録媒体としては、例えばフレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、CD−ROM、磁気テープ、不揮発性のメモリカード、ROM等を用いることができる。
また、コンピュータが供給されたプログラムコードを実行することにより、上述の実施形態の機能が実現されるだけでなく、そのプログラムコードがコンピュータにおいて稼働しているOS(オペレーティングシステム)あるいは他のアプリケーションソフト等と共同して上述の実施形態の機能が実現される場合にもかかるプログラムコードは本発明の実施形態に含まれることは言うまでもない。
さらに、供給されたプログラムコードがコンピュータの機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに格納された後、そのプログラムコードの指示に基づいてその機能拡張ボードや機能拡張ユニットに備わるCPU等が実際の処理の一部または全部を行い、その処理によって上述した実施形態の機能が実現される場合にも本発明に含まれることは言うまでもない。
これまで述べてきたように、本発明の各実施形態では、N次元のデジタル画像信号205を上位ビット信号205と下位ビット信号214とに分割し、分割した上位ビットの信号すべての組み合わせに対応する参照値を重複することなく2N-1個のサブメモリ330(多次元LUT260)に分割記憶するとともに、補間演算に必要な(N+1)個の参照値を同時に読み出すようにすることにより、補間演算を高速化することができるとともに、割り算器がなくてもサブメモリ330へアクセスするためのアドレスを生成することができるようにして、色空間の変換などの補間演算を高速に行なえるようにすることが、可及的に小さな回路規模で容易に実現できるようにした。さらに、多次元に拡張するに際して、アドレス生成回路やキャッシュ機構の再設計が不要であり、入力数とビット深度との両方に対し拡張性の高い多次元補間装置を提供することができる。
100 原稿
110 CPU回路部
120 画像読み取り部
130 画像処理部
140 プリンタ部
210 データ分割部
220 参照座標選択部
230 順序判定部
240 重み係数算出部
250 参照点読み出し部
260 多次元LUT
270 補間演算部

Claims (11)

  1. 入力したN次元信号(Nは4以上の整数)から信号を出力する多次元補間装置であって、
    前記入力したN次元信号値の各成分を各々上位ビットと下位ビットとに分割する分割手段と、
    前記分割手段により分割された前記上位ビットのデータの組み合わせに対応する参照値を記憶したメモリ手段と、
    前記参照値を読み出す読み出し手段と、
    前記読み出し手段により読み出された参照値と、前記分割手段により分割された下位ビットのデータとに基づいて、前記入力したN次元信号に対する補間演算を行なう補間演算手段とを具備し、
    前記メモリ手段は、前記参照値を2N-1個のサブメモリに分割して記憶することを特徴とする多次元補間装置。
  2. 前記入力したN次元信号におけるN個の成分から所定のM個(MはNより小さい整数)の成分を選択する選択手段と、
    前記選択手段により選択されたM個の成分の総和を算出する第1の算出手段と、
    前記第1の算出手段により算出された総和を、(M+1)で割った余りを算出する第2の算出手段と、
    前記選択手段により選択されなかった(N−M)個の成分の夫々の所定のビット位置の値に基づいて、(M+1)の倍数を、前記第2の算出手段により算出された余りに加算して指標値を算出する第3の算出手段と、
    前記第3の算出手段により算出された指標値に基づいて、前記参照値を分類する分類手段とを有し、
    前記メモリ手段は、前記分類手段による分類結果に基づいて、前記参照値を2N-1個のサブメモリに分割して記憶することを特徴とする請求項1に記載の多次元補間装置。
  3. 前記入力したN次元信号におけるN個の成分の上位データの中から、(N−3)成分の夫々の所定のビット位置の値に基づいて、クラスタ数信号を生成し、生成したクラスタ数信号に基づいて前記サブメモリを選択するサブメモリ選択手段を有し、
    前記読み出し手段は、前記サブメモリ選択手段により選択されたサブメモリに記憶されている参照値を読み出すことを特徴とする請求項1又は2に記載の多次元補間装置。
  4. 前記入力したN次元信号におけるN個の成分の上位ビットのデータをデジタル信号化して、上位ビットの信号とし、
    前記入力したN次元信号におけるN個の成分のうち、特定の3成分における前記上位ビットの信号の下位2ビットを用いて6ビットの信号を生成し、前記6ビットの信号を4ビットの信号に変換し、4ビットのアドレス下位信号を生成する下位アドレス生成手段を有することを特徴とする請求項に記載の多次元補間装置。
  5. 前記サブメモリ選択手段は、前記下位アドレス生成手段により下位2ビットが取り出されなかった(N−3)成分の上位ビットの信号の下位1ビットをクラスタ数信号とし、前記クラスタ数信号に基づいて、前記サブメモリを選択する信号を生成すること特徴とする請求項4に記載の多次元補間装置。
  6. 前記下位アドレス生成手段は、ROMに格納されたテーブルを用いて、前記6ビットの信号を4ビットの信号に変換することを特徴とする請求項4又は5に記載の多次元補間装置。
  7. 前記下位アドレス生成手段は、前記特定の3成分うち、1成分の下位2ビットを切り捨てて、前記6ビットの信号を4ビットの信号に変換することを特徴とする請求項5に記載の多次元補間装置。
  8. 前記入力したN次元信号におけるN個の成分の上位ビットのデータをデジタル信号化して、上位ビットの信号とし、
    前記分割手段により分割されたN個の上位ビットの信号から、同一のビット位置にある1ビットを取り出し、取り出したN個のビットをまとめて連結してNビットの信号とする操作を、前記上位ビットの信号の最下位から最上位まで順に行ない得られた複数のNビット信号をさらに連結し、連結した信号から(N+3)ビットを除いた信号をアドレス上位信号として生成する上位アドレス生成手段を有することを特徴とする請求項1〜4の何れか1項に記載の多次元補間装置。
  9. 前記上位アドレス生成手段により生成されたアドレス上位信号を用いて、キャッシュのヒットもしくはミスヒットを判定するキャッシュ機構を有することを特徴とする請求項8に記載の多次元補間装置。
  10. 入力したN次元信号(Nは4以上の整数)から信号を出力する多次元補間方法であって、
    記入力したN次元信号値の各成分を各々上位ビットと下位ビットとに分割する分割工程と
    記分割工程により分割された前記上位ビットのデータの組み合わせに対応する参照値を読み出す読み出し工程と
    記読み出し工程により読み出された参照値と、前記分割工程により分割された下位ビットのデータとに基づいて、前記入力したN次元信号に対する補間演算を行なう補間演算工程とを有し
    前記参照値は、2N-1個のサブメモリに分割して記憶されていることを特徴とする多次元補間方法。
  11. 入力したN次元信号(Nは4以上の整数)から信号を出力することをコンピュータに実行させるためのコンピュータプログラムであって、
    前記入力したN次元信号値の各成分を各々上位ビットと下位ビットとに分割する分割工程と、
    前記分割工程により分割された前記上位ビットのデータの組み合わせに対応する参照値を読み出す読み出し工程と、
    前記読み出し工程により読み出された参照値と、前記分割工程により分割された下位ビットのデータとに基づいて、前記入力したN次元信号に対する補間演算を行なう補間演算工程とをコンピュータに実行させ、
    前記参照値は、2N-1個のサブメモリに分割して記憶されていることを特徴とするコンピュータプログラム。
JP2010062833A 2010-03-18 2010-03-18 多次元補間装置、多次元補間方法、及びコンピュータプログラム Expired - Fee Related JP4810615B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2010062833A JP4810615B2 (ja) 2010-03-18 2010-03-18 多次元補間装置、多次元補間方法、及びコンピュータプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010062833A JP4810615B2 (ja) 2010-03-18 2010-03-18 多次元補間装置、多次元補間方法、及びコンピュータプログラム

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2004342262A Division JP4724413B2 (ja) 2004-11-26 2004-11-26 データ分類方法

Publications (2)

Publication Number Publication Date
JP2010193474A JP2010193474A (ja) 2010-09-02
JP4810615B2 true JP4810615B2 (ja) 2011-11-09

Family

ID=42818953

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010062833A Expired - Fee Related JP4810615B2 (ja) 2010-03-18 2010-03-18 多次元補間装置、多次元補間方法、及びコンピュータプログラム

Country Status (1)

Country Link
JP (1) JP4810615B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6448410B2 (ja) * 2015-02-26 2019-01-09 キヤノン株式会社 データ変換装置およびその制御方法、プログラム
JP6501561B2 (ja) * 2015-03-06 2019-04-17 キヤノン株式会社 データ処理装置およびその制御方法、プログラム

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4837722A (en) * 1986-05-14 1989-06-06 Massachusetts Institute Of Technology Digital high speed 3-dimensional interpolation machine
JPH05284346A (ja) * 1992-03-31 1993-10-29 Matsushita Electric Ind Co Ltd 色変換装置
US6166781A (en) * 1996-10-04 2000-12-26 Samsung Electronics Co., Ltd. Non-linear characteristic correction apparatus and method therefor
JP3048227B2 (ja) * 1997-05-08 2000-06-05 松下技研株式会社 多次元補間装置
JP3733200B2 (ja) * 1997-05-12 2006-01-11 キヤノン株式会社 画像処理装置及び画像処理方法
JP2003069841A (ja) * 2001-08-23 2003-03-07 Ricoh Co Ltd 色変換装置、色変換方法および記録媒体

Also Published As

Publication number Publication date
JP2010193474A (ja) 2010-09-02

Similar Documents

Publication Publication Date Title
JP4724413B2 (ja) データ分類方法
JP2007221720A (ja) 変換テーブル圧縮方法およびプログラム
WO2001027780A1 (en) System and method for digital color image processing
JPH10117292A (ja) 補間器入力データを生成する装置
US7876330B2 (en) Color conversion apparatus, filter processing apparatus and color conversion method
JP4810615B2 (ja) 多次元補間装置、多次元補間方法、及びコンピュータプログラム
US7573612B2 (en) Color conversion apparatus, color conversion method and color conversion program
JP2001257899A (ja) 色変換装置
JP2012029170A (ja) 色処理装置およびその方法
US20070013926A1 (en) Color conversion device and color conversion program
JP6448410B2 (ja) データ変換装置およびその制御方法、プログラム
JP4909003B2 (ja) 画像処理装置及び方法
JP3110041B2 (ja) 画像情報処理装置
JP6501561B2 (ja) データ処理装置およびその制御方法、プログラム
JP5267147B2 (ja) 画像処理装置、画像処理方法、及び、コンピュータプログラム
JP2007174392A (ja) データ変換装置、データ変換装置の制御方法およびプログラム
JP5159115B2 (ja) 画像処理装置及び画像処理方法
JP2004112523A (ja) データ変換方法およびデータ変換装置
JP2010103912A (ja) 多次元データ変換装置
JP2004072397A (ja) 画像処理装置および画像処理方法
JP2006165649A (ja) 多次元データ変換装置及び方法
JP3548250B2 (ja) データ変換装置およびデータ変換方法
Vondran Radial and Pruned Tetrahedral Interpolation Techniques
JP4402523B2 (ja) データ変換方法、データ変換装置、プログラム及び記憶媒体
JP2011041316A (ja) 変換テーブル圧縮方法および変換テーブル復元プログラム

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110517

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110713

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

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110822

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

Free format text: PAYMENT UNTIL: 20140826

Year of fee payment: 3

R151 Written notification of patent or utility model registration

Ref document number: 4810615

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

LAPS Cancellation because of no payment of annual fees