(57)【特許請求の範囲】
【請求項１】
一つのルックアップテーブルを構成する格子点データを、格子点座標を構成する軸の数をＭとし、２Ｍ個で表される複数バンクのメモリにロードしてデータ処理を実行するデータ処理装置であって、
ロード対象の格子点データとレジスタアドレスを受信する受信手段と、
前記受信手段により受信されたレジスタアドレスを、各バンクのメモリに格納される格子点データの個数に基づいてバンク指定とメモリアドレスに変換する変換手段と、
前記変換手段により得られたバンク指定とメモリアドレスにしたがって、前記ロード対象の格子点データを前記複数バンクのメモリに記憶する記憶手段と、を備え、
前記変換手段は、前記レジスタアドレスを、前記複数バンクの各々に属する格子点データの個数に応じた閾値と比較することにより、前記バンク指定と前記メモリアドレスを決定することを特徴とするデータ処理装置。
【請求項２】
前記レジスタアドレスは、前記一つのルックアップテーブルを構成する全ての格子点データに連続したレジスタアドレスが割り当てられ、且つ、前記複数バンクの各々に分類された格子点データ群に連続したレジスタアドレスが割り当てられるように、格子点座標に対応して割り当てられることを特徴とする請求項１に記載のデータ処理装置。
【請求項３】
前記一つのルックアップテーブルを構成する格子点データにレジスタアドレスを割り当てる割当手段をさらに備えることを特徴とする請求項２に記載のデータ処理装置。
【請求項４】
前記変換手段は、前記レジスタアドレスを、１つの格子点データに割り当てられているレジスタアドレスの個数で割った値を前記閾値と比較することにより前記バンク指定と前記メモリアドレスを決定することを特徴とする請求項１乃至３のいずれか１項に記載のデータ処理装置。
【請求項５】
前記複数バンクの各々のメモリは、前記複数バンクの各々に属する格子点データの個数にしたがった、異なる容量を有することを特徴とする請求項１乃至４のいずれか１項に記載のデータ処理装置。
【請求項６】
前記一つのルックアップテーブルを構成する格子点データの前記複数バンクへの分類は、格子点座標を構成する各軸の座標値の奇数と偶数の組み合わせに基づいており、軸の数は３軸でありバンクの個数は８バンクであることを特徴とする請求項１乃至５のいずれか１項に記載のデータ処理装置。
【請求項７】
前記変換手段は、１軸当たりのグリッド数が異なる複数種類のルックアップテーブルのうちの１つを指示する指示情報にしたがって、前記レジスタアドレスをバンク指定とメモリアドレスへ変換するための方法を切り替えることを特徴とする請求項１乃至６のいずれか１項に記載のデータ処理装置。
【請求項８】
前記変換手段は、前記レジスタアドレスを、前記複数バンクの各々に属する格子点データの個数に基づいて設定された閾値のセットと比較することにより、前記バンク指定と前記メモリアドレスを決定し、
前記指示情報にしたがって、前記閾値のセットを切り替えることを特徴とする請求項７に記載のデータ処理装置。
【請求項９】
前記変換手段は、前記レジスタアドレスを、前記複数バンクの各々に属する格子点データの個数に基づいて設定された閾値のセットと比較することにより、前記バンク指定と前記メモリアドレスを決定し、
前記閾値のセットを保持する保持手段と、
前記保持手段に保持される閾値のセットを、前記複数バンクのメモリにロードするルックアップテーブルに応じて変更する変更手段と、をさらに備えることを特徴とする請求項１乃至６のいずれか１項に記載のデータ処理装置。
【請求項１０】
入力データに基づいて得られる格子点座標に基づいて、前記複数バンクのメモリから複数の格子点データを同時に読み出す読出手段と、
前記読出手段により読み出された複数の格子点データを用いて補間処理を行い前記入力データに対する変換データを得る補間手段と、をさらに備えることを特徴とする請求項１乃至９のいずれか１項に記載のデータ処理装置。
【請求項１１】
一つのルックアップテーブルを構成する格子点データを、格子点座標を構成する軸の数をＭとし、２Ｍ個で表される複数バンクのメモリにロードしてデータ処理を実行するデータ処理装置の制御方法であって、
ロード対象の格子点データとレジスタアドレスを受信する受信工程と、
前記受信工程で受信されたレジスタアドレスを、各バンクのメモリで格納される格子点データの個数に基づいてバンク指定とメモリアドレスに変換する変換工程と、
前記変換工程で得られたバンク指定とメモリアドレスにしたがって、前記ロード対象の格子点データを前記複数バンクのメモリに記憶する記憶工程と、を有し、
前記変換工程では、前記レジスタアドレスを、前記複数バンクの各々に属する格子点データの個数に応じた閾値と比較することにより、前記バンク指定と前記メモリアドレスを決定することを特徴とするデータ処理装置の制御方法。
【請求項１２】
コンピュータに、請求項１１に記載された制御方法の各工程を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ルックアップテーブルを有するデータ処理装置およびその制御方法に関する。
【背景技術】
【０００２】
近年、カラー画像の入力機器としてスキャナやデジタルカメラ、デジタルビデオカメラなどが普及している。一方、カラー画像の出力機器としてはインクジェットや電子写真などの方式を用いた各種カラープリンタが普及している。これらの入出力機器はそれぞれ固有の色空間を有している。例えばスキャナで得たカラー画像をそのまま別のカラープリンタに転送して印刷した場合、印刷されたカラー画像の色がスキャナによって読みとられたオリジナルのカラー画像の色と一致することはほとんどない。このようなカラー画像等に対するデバイス間での色再現性の問題を解決するためには、入力機器の色空間を出力機器の色空間に変換する処理（色空間変換と呼ぶ）が必要となる。したがって、入出力機器の色再現性を高めるために、色空間変換機能が入出力機器に搭載されている。
【０００３】
この色空間変換とは、具体的には入力ガンマ補正、輝度濃度変換、マスキング、黒生成、出力ガンマ補正等の一連の画像処理全体、もしくはその中の一部の処理を指す。例えば、色空間変換では、入力機器の３色（例えばレッド、グリーン、ブルー（ＲＧＢ））のデジタル画像信号を同時に参照して、出力機器の３色（例えば、シアン、マゼンタ、イエロー（ＣＭＹ））のデジタル画像信号に変換する。あるいは、ＲＧＢの３色のデジタル画像信号を、４色（例えばシアン、マゼンタ、イエロー、ブラック（ＣＭＹＫ））のデジタル画像信号に変換する。
【０００４】
色空間変換の実現方法として、予め変換結果をルックアップテーブル（以下、ＬＵＴと呼ぶ）としてメモリに記憶しておき、入力された画像信号に対してそのＬＵＴを参照して変換結果を出力する方法がある。このＬＵＴを用いた色空間変換方法では、ＬＵＴのメモリを削減するため補間演算を併用するのが一般的である。即ち、被変換色（ＲＧＢ）の代表点に対応する変換色（ＹＭＣまたはＹＭＣＫ）のデータをメモリに記憶させ、メモリ内に記憶された数点の変換色データを元に補間演算を行い、新たな変換色データを算出することが行われている。ＲＧＢなどの軸上の代表点の取り方は細かいほど変換精度は高くなるが、必要なメモリの容量が増える。逆に代表点の取り方が粗いと変換精度は低くなるが、必要なメモリの容量は減る。以下、軸上の代表点を格子点（グリッド）、軸上の代表点の数を軸当たりの格子点数と呼ぶ。軸当たりの格子点数としては、８個から３３個までの個数が一般に使用されている。なお、軸当たりの格子点数がｘ個であることを、以下、ｘグリッドのように記載する場合もある（例えば、軸当たりの格子点数が３３個の場合を３３グリッドのように記載する）。
【０００５】
あるＲＧＢの値に対応するＹＭＣ（ＹＭＣＫ）の値を得るために参照される格子点の個数は補間方法によって異なる。例えば、立方体補間の場合は８個、四面体補間の場合は４個の格子点を参照して補間演算を行う。格子点の変換色データはメモリに格納されているので、複数の格子点の変換色データを参照するためにはメモリへの複数回のアクセスが発生するため、逐次的なアクセスを行っていては処理性能を上げることが出来ない。そこで、メモリを複数に分割し、複数個の格子点のデータを読み出すための複数回のメモリアクセスを同時に行うことで、処理性能を向上させる方法が提案されている。
【０００６】
特許文献１では三次元立方体補間を高速に実行するため、３２グリッドの変換色データを８個のメモリに分けて記憶し、並列に読み出すことで高速化を行っている。また、特許文献２には、軸当たりの格子点数が２のべき乗では表せられないＬＵＴの変換色データをメモリに分割して記憶する方法が示されている。一例として、３３グリッドの変換色データを８個のメモリに分割し、そのアドレスを１３ビットで生成する方法について記載している。特許文献１，２のいずれも、各軸の座標の偶奇が同一の代表点を同一のメモリに格納するという点で共通している。すなわち、被変換色をＲＧＢの３色とした３次元のＬＵＴの場合、（偶数、偶数、偶数）、（偶数、偶数、奇数）、・・・、（奇数、奇数、奇数）の、８個のメモリに分割して格納することで高速処理を可能にしている。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】米国特許第４８３７７２２号明細書
【特許文献２】特開２００１−３６７５５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
特許文献１では、３２グリッドでの処理を行うために合計３２７６８（＝３２＊３２＊３２）個の代表点の変換色データ（以下、格子点データと記す）を格納できるメモリが必要である。また、特許文献２では３３グリッドでの処理を行うために３５９３７（＝３３＊３３＊３３）個の格子点データを格納できるメモリが必要である。３２グリッドの場合と３３グリッドの場合とで互いに必要なメモリ容量は異なるため、複数種類のグリッド数に対応するためには、最も大きい容量に合わせてメモリ分割を行う必要がある。また、グリッド数が奇数の場合に、メモリを８分割（または４分割）すると、各メモリに格納される格子点データの容量は各軸の偶奇の組合せで異なってくる。従って、ＬＵＴを設定するために格子点データをメモリに格納する際、メモリ毎に格子点データ数を意識して格納する必要があった。あるいは、このような制御をなくすために、最も容量の大きなメモリにあわせて不要なデータを追加して格納する必要があった。
【０００９】
本発明は上記課題に鑑みてなされたものであり、ルックアップテーブルを構成する格子点データを複数のバンクのメモリに効率よく格納することを目的とする。
【課題を解決するための手段】
【００１０】
上記の目的を達成するために本発明の一態様による画像処理装置は以下の構成を備える。すなわち、
一つのルックアップテーブルを構成する格子点データを、格子点座標を構成する軸の数をＭとし、２Ｍ個で表される複数バンクのメモリにロードしてデータ処理を実行するデータ処理装置であって、
ロード対象の格子点データとレジスタアドレスを受信する受信手段と、
前記受信手段により受信されたレジスタアドレスを、各バンクのメモリに格納される格子点データの個数に基づいてバンク指定とメモリアドレスに変換する変換手段と、
前記変換手段により得られたバンク指定とメモリアドレスにしたがって、前記ロード対象の格子点データを前記複数バンクのメモリに記憶する記憶手段と、を備え、
前記変換手段は、前記レジスタアドレスを、前記複数バンクの各々に属する格子点データの個数に応じた閾値と比較することにより、前記バンク指定と前記メモリアドレスを決定する。
【発明の効果】
【００１１】
本発明によれば、ルックアップテーブルを構成する格子点データを複数のバンクのメモリに効率よく格納することができる。
【図面の簡単な説明】
【００１２】
【図１】第１実施形態における画像処理部の構成例を示すブロック図。
【図２】コマンドのフォーマットを示す図。
【図３】グリッド別のバンク分割とデータの個数を示す図。
【図４】グリッドモード別のメモリマップを示す図。
【図５】第１実施形態で用いるアドレスデコーダの動作を表すフローチャート。
【図６】第２実施形態における画像処理部の構成例を示すブロック図。
【図７】ＬＵＴ設定後の各バンクのデータ格納数を示す図。
【図８】第２実施形態で用いるアドレスデコーダの動作を表すフローチャート。
【図９】第３実施形態における画像処理部の構成を示すブロック図。
【図１０】第３実施形態で用いるアドレスデコーダの動作を表すフローチャート。
【図１１】実施形態によるデータ処理装置の構成例を示すブロック図。
【発明を実施するための形態】
【００１３】
以下、添付の図面を参照して、本発明を好適な実施形態に基づいて詳細に説明する。なお、以下の実施形態において示す構成は一例にすぎず、本発明は図示された構成に限定されるものではない。
【００１４】
＜第１実施形態＞
図１１は、第１実施形態によるデータ処理装置１０（たとえば印刷装置）の制御構成の一例を示すブロック図である。ＣＰＵ１１は、ＲＯＭ１２またはＲＡＭ１１２に格納されたプログラムを実行することにより、データ処理装置の各部の動作を制御する。転送部１１１は、ＣＰＵ１１の制御下で、各種コマンドや、入力部１１３により入力された入力データ１１４をデータ処理部１００へ提供する。入力データ１１４はたとえば印刷のための画像データであり、外部装置との通信や外部記憶装置１４からの読み出しにより得られる。データ処理部１００では、入力データ（画像データ）を処理し、処理されたデータは出力部１３により出力（たとえば印刷）される。なお、転送部１１１、入力部１１３、データ処理部１００等の各構成の機能の少なくとも一部が、ＣＰＵ１１が所定のプログラムを実行することにより実現されてもよい。
【００１５】
図１は、第１実施形態によるデータ処理部１００の構成例を示すブロック図である。データ処理部１００は制御部１０１と処理部１０２と、複数のメモリ（バンク０〜バンク７：高さの違いは容量の違いを示す）を有する記憶部１０３を備える。制御部１０１へは転送部１１１からレジスタ設定やＬＵＴの設定を行うレジスタコマンドや、処理対象となるデータが格納されたデータコマンドが入力される。なお、本実施形態では、画像データ（ＲＧＢデータ）がデータ処理部１００によって処理される、画像処理装置が例示されるが、処理対象のデータはこれに限られるものではない。
【００１６】
制御部１０１は、受け取ったコマンドを解析し、そのコマンドがレジスタコマンドかデータコマンドかを判断する。制御部１０１は、受け取ったコマンドがレジスタコマンドである場合、コマンドに格納されているアドレスに応じて不図示のレジスタあるいはメモリへ値を設定する。たとえば、受け取ったコマンドがレジスタコマンドであり、コマンドに格納されているアドレスが図４（ａ）に示されるようなレジスタアドレスの場合、制御部１０１は、記憶部１０３のメモリにルックアップテーブル（ＬＵＴ）の格子点データを格納する。このように、本実施形態のデータ処理部１００は、一つのルックアップテーブルを構成する格子点データを複数バンクのメモリにロードしてデータ処理を実行する。
【００１７】
また、受け取ったコマンドがデータコマンドの場合、コマンドのデータ領域からデータ（たとえば、画像データ）を取り出し、処理部１０２へ入力する。たとえば、データコマンドにＲＧＢデータが格納されている場合、制御部１０１はそのデータコマンドからＲＧＢデータを取り出して処理部１０２に入力する。処理部１０２は、たとえば、入力されたＲＧＢデータを、記憶部１０３のＬＵＴを参照して変換処理（例えば、ＲＧＢデータをＣＭＹＫデータに変換する処理）を含む予め定められた処理を行う。処理部１０２での処理後のデータは再び制御部１０１へ入力される。制御部１０１は処理部１０２から処理後のデータを受け取ると、再びデータコマンド形式にして外部へ出力する。なお、処理部１０２では、設定されたレジスタ値の参照により、たとえば、ＬＵＴの格子点数や、ＬＵＴを参照したデータ変換処理に用いられる補間処理の種類（たとえば四面体補間処理など）を決定するようにしてもよい。この場合のレジスタ値は上述したレジスタコマンドにより設定される。以上が本発明の示す画像処理の大まかな流れである。次に、それぞれの構成要素の動作について詳細に説明する。
【００１８】
制御部１０１は、上述したように、転送部１１１から入力されたコマンドにしたがって、処理部１０２が参照するレジスタの設定や記憶部１０３の設定、処理部１０２とのデータの受け渡しなどを行う。まず、制御部１０１は入力されたコマンドを解析し、そのコマンドがレジスタコマンドであるかデータコマンドであるかを判定する。図２にコマンドのフォーマットを示す。図２（ａ）はレジスタコマンドを表し、図２（ｂ）はデータコマンドを表す。コマンドの最上位ビットに位置するレジスタ／データ判別フラグ２０１を参照することで、コマンドがレジスタコマンドかデータコマンドかを判断できる。例えば、レジスタ／データ判別フラグ２０１が１であればレジスタコマンド、０であればデータコマンドである。制御部１０１は、受け取ったコマンドがレジスタコマンドであると判定した場合、そのコマンド内に格納されているアドレス２０３に応じて記憶部１０３へアクセスするか、制御部１０１あるいは処理部１０２内のレジスタ（不図示）へアクセスするかを決定する。また、レジスタコマンドには、アクセスがリード動作であるかライト動作であるかを示すＲＷフラグ２０２が存在し、その値に応じてライトアクセスとリードアクセスを切り替える。さらに、レジスタコマンド内には設定データ２０４が存在し、ライト動作の場合は、ここに格納されている値が制御部１０１あるいは処理部１０２内のレジスタあるいは記憶部１０３に設定される。一方、制御部１０１は受け取ったコマンドがデータコマンドであると判断した場合、データコマンド内に格納されているデータ（本実施形態では画像データ２０５）を処理部１０２へ送る。
【００１９】
次に、処理部１０２で行う画像処理について説明する。処理部１０２における処理の一例として、１７グリッドである３次元のＬＵＴを参照し、四面体補間処理を用いてデータを変換する例（たとえば、ＲＧＢデータをＹＭＣＫデータに変換する処理）を説明する。１７グリッドのＬＵＴとは、１軸当たりの格子点の数が１７点のＬＵＴである。１７グリッドのＬＵＴの場合、１軸当たりの格子点は０から１６までの１７個なので、３次元での格子点の数は合計１７＊１７＊１７＝４９１３個あり、それら４９１３個の格子点データが記憶部１０３にロードされ、格納される。処理部１０２は、入力データ（ＲＧＢデータ）にしたがって記憶部１０３にアクセスして複数の格子点データ（ＹＭＣＫデータ）を読み出し、それらを用いて補間処理を行って変換データ（ＹＭＣＫデータ）を得る。
【００２０】
四面体補間の場合、隣接する４点の格子点データを記憶部１０３から読み出す必要がある。そこで、処理部１０２では、記憶部１０３内のメモリを複数バンクに分割して並列アクセスを可能にして、処理に用いられる複数の格子点データを同時に読み出すことにより、データ処理を高速化している。本実施形態では、格子点座標の各軸の座標値の偶数、奇数の並びで格納先のメモリ（バンク）を分けることで、補間処理に必要な４つの格子点データを同時に読み出すことを可能にしている。即ち、
・座標が（偶数、偶数、偶数）の格子点に対応する９＊９＊９＝７２９個のデータは記憶部１０３にあるメモリのバンク０に、
・座標が（偶数、偶数、奇数）の格子点に対応する９＊９＊８＝６４８個のデータはバンク１に、
・座標が（偶数、奇数、偶数）の格子点に対応する９＊８＊９＝６４８個のデータはバンク２に、
・・・、
・座標が（奇数、奇数、奇数）の格子点に対応する８＊８＊８＝５１２個のデータはバンク７へ格納される、
というように８個のバンクに分割されたメモリへ格納されている。
【００２１】
図３（ａ）に、１７グリッドのＬＵＴが参照される場合の、各バンクのメモリに格納される格子点データの個数を示す。図１に示すバンク０〜７の各メモリは、図３（ａ）に示される個数の格子点データを格納するためのサイズを有する。バンク毎に格納される格子点データの個数が異なるため、制御部１０１は記憶部１０３へ格子点データを格納するときに、格納先のバンクを適切に選択して格納する必要がある。このように異なる個数の格子点データへ分類して複数バンクのメモリへ格納するために制御部１０１が行う動作について詳細に説明する。
【００２２】
制御部１０１は、処理部１０２へレジスタ設定を行うためのレジスタコマンドを受け取ると、制御部１０１または処理部１０２のレジスタ（不図示）へ値を設定する。また、制御部１０１は格子点データ設定用のレジスタコマンドを受け取ると、設定データ２０４を記憶部１０３のメモリに格納する。レジスタコマンドが、レジスタ設定であるか格子点データ設定であるかは、コマンド内のアドレス２０３により判定される。たとえば、コマンドが、レジスタコマンドであって、ＲＷフラグ２０２がライト動作を示し、アドレス２０３に図４（ａ）のレジスタアドレスのいずれかが格納されている場合、格子点データ設定と判定される。格子点データ設定のレジスタコマンドの場合、設定データ２０４として、１つの格子点座標における格子点データ（たとえばＣＭＹＫデータ）が格納されている。制御部１０１は、このような、ロード対象の格子点データとレジスタアドレスを含むレジスタコマンドにしたがって記憶部１０３へのメモリの格納を行う。なお、本実施形態においては、一つの格子点データは４バイト単位で扱われるデータとして４つのレジスタアドレスを消費し、レジスタコマンドのアドレス２０３にはそれら４つのレジスタアドレスのうちの先頭のアドレスが格納される。
【００２３】
なお、ＬＵＴの格子点データをロードするためのレジスタコマンドは、たとえばＣＰＵ１１により生成され、転送部１１１を介してロードされるようにしてもよい。この場合、ＣＰＵ１１は、たとえば外部記憶装置１４に記憶されている格子点データを格子点座標の偶数、奇数の並びにしたがって順に読み出して、０ｘ００００から０ｘ４ＣＣ０までの連続するレジスタアドレスを割り当てて、レジスタコマンドを生成する。或いは、ＣＰＵ１１が、マトリクス係数から格子点データを格子点座標の偶数、奇数の並びにしたがって順次生成し、０ｘ００００から０ｘ４ＣＣ０までの連続するレジスタアドレスを割り当てて、レジスタコマンドを生成するようにしてもよい。或いは、転送部１１１がＲＡＭ１１２に格納された格子点データを、転送先のアドレスとして０ｘ００００から０ｘ４ＣＣ０までの連続するレジスタアドレスを割り当てて制御部１０１に転送するようにしてもよい。この場合、ＣＰＵ１１は、ＲＡＭ１１２上に格子点データを格子点座標の偶数、奇数の並びにしたがった順で格納する。そして、転送部１１１はＲＡＭ１１２上の格子点データを順次読み出して、０ｘ００００から０ｘ４ＣＣ０までの連続するレジスタアドレスを割り当ててレジスタコマンドを生成する。以上のようにして、一つのルックアップテーブルを構成する格子点データにレジスタアドレスが割り当てられ、レジスタコマンドが生成される。なお、ルックアップテーブルをロードするためのレジスタコマンドの設定データ２０４には、１つの格子点座標に対応する格子点データ（たとえば、ＣＭＹＫデータ）が格納される。
【００２４】
制御部１０１は、アドレスデコーダ１０４により、予め定められたメモリマップに従って、レジスタコマンド内のレジスタアドレス（アドレス２０３）を記憶部１０３におけるメモリのバンクの指定とアドレスへ変換する。そして、制御部１０１は、レジスタコマンドに格納されている格子点データ（設定データ２０４）を、指定されたバンクのメモリに書き込んでいく。アドレスデコーダ１０４は、受信したレジスタコマンドに格納されているレジスタアドレスを、各バンクのメモリに格納される格子点データの個数に基づいてバンク指定とメモリアドレスに変換していく。制御部１０１は、アドレスデコーダ１０４により得られたバンク指定とメモリアドレスにしたがって、レジスタコマンドに格納されているロード対象の格子点データを複数バンクのメモリに記憶する。以下、この処理について詳細に説明する。
【００２５】
図４（ａ）には、１７グリッドでの処理時に用いるメモリマップが示されている。格子点座標が（偶数、偶数、偶数）である（０、０、０）から（１６、１６、１６）までの７２９個の格子点データに続いて、格子点座標が（偶数、偶数、奇数）の（０、０、１）から（１６、１６、１５）までの６４８個の格子点データが格納される。これら７２９個の格子点データと６４８個の格子点データは連続して格納され、６４８個の格子点データの前後や途中に、最大格子点データ数である７２９個に合わせるための不要なデータの領域は存在しない。すなわち、レジスタアドレスは、一つのルックアップテーブルを構成する全ての格子点データが連続し、且つ、複数のバンクの各々に分類された格子点データ群が連続するように割り当てられている。また、最初の７２９個の格子点データはバンク０のメモリに格納され、続く６４８個の格子点データはバンク１のメモリに格納される。そして、そのままレジスタアドレスは連続し、格子点座標が（奇数、奇数、奇数）である（１、１、１）から（１５、１５、１５）までの５１２個の格子点データまでが、適切なバンクのメモリにマッピングされる。このようにレジスタコマンドに格納されているレジスタアドレスは、図４（ａ）に示されるように、バンクとメモリ物理アドレスへ変換され、記憶部１０３の各メモリに格納される。なお、図４（ａ）においてレジスタアドレスは０ｘ００００から開始しているが、これに限られるものではない。１７グリッドのＬＵＴにおける全ての格子点データが連続するアドレス空間に割り当てられればよい。
【００２６】
図５にアドレスデコーダ１０４の動作を表すフローチャートを示す。以下、アドレスデコーダ１０４の動作を図５のフローチャートに従って説明する。上述したように、１つの格子点データが４バイト単位で扱われるものとし４つのレジスタアドレスを消費するので、まず、ステップＳ６０１では、レジスタコマンドに格納されているレジスタアドレスが４の倍数かを調べる。４の倍数でない（下位２ビットが０でない）場合は、記憶部１０３内のメモリへのアクセスは行わず処理を終了する。ステップＳ６０２ではレジスタアドレスを４で除算して値Ａ（つまりアドレスを２ビット右シフトした値Ａ）を得る。そして、値Ａを所定の閾値と比較する（ステップＳ６０３、Ｓ６０５、Ｓ６０７、Ｓ６０９、Ｓ６１１、Ｓ６１３、Ｓ６１５、Ｓ６１７）ことで、下記に示すようにバンクとメモリアドレスが決定される（ステップＳ６０４、Ｓ６０６、Ｓ６０８、Ｓ６１０、Ｓ６１２、Ｓ６１４、Ｓ６１６、Ｓ６１８）。
【００２７】
（１）０≦Ａ＜７２９の時、バンクは０、メモリアドレスはＡを出力する（Ｓ６０３，Ｓ６０４）
（２）７２９≦Ａ＜１３７７の時、バンクは１、メモリアドレスはＡ−７２９を出力する（Ｓ６０５，Ｓ６０６）
（３）１３７７≦Ａ＜２０２５の時、バンクは２、メモリアドレスはＡ−１３７７を出力する（Ｓ６０７，Ｓ６０８）
（４）２０２５≦Ａ＜２６０１の時、バンクは３、メモリアドレスはＡ−２０２５を出力する（Ｓ６０９，Ｓ６１０）
（５）２６０１≦Ａ＜３２４９の時、バンクは４、メモリアドレスはＡ−２６０１を出力する（Ｓ６１１，Ｓ６１２）
（６）３２４９≦Ａ＜３８２５の時、バンクは５、メモリアドレスはＡ−３２４９を出力する（Ｓ６１３，Ｓ６１４）
（７）３８２５≦Ａ＜４４０１の時、バンクは６、メモリアドレスはＡ−３８２５を出力する（Ｓ６１５，Ｓ６１６）
（８）４４０１≦Ａ＜４９１３の時、バンクは７、メモリアドレスはＡ−４４０１を出力する（Ｓ６１７，Ｓ６１８）
（９）４９１３≦Ａの時、メモリへのアクセスは行わない。
【００２８】
なお、バンク選択で用いられる閾値は、それぞれ、
７２９＝９＊９＊９
１３７７＝７２９＋９＊９＊８
２０２５＝１３７７＋９＊８＊９
２６０１＝２０２５＋９＊８＊８
３２４９＝２６０１＋８＊９＊９
３８２５＝３２４９＋８＊９＊８
４４０１＝３８２５＋８＊８＊９
４９１３＝４４０１＋８＊８＊８
より求められる。上記閾値は、各バンクのメモリに格納される格子点データ数により決定される。各バンクのメモリに格納される格子点データ数は、ＬＵＴの軸当たりの格子点数（グリッド）が２ｎ＋１個、次元数がｍ、各軸の座標値のうちの奇数の座標の個数をｐ個とすると、（２ｎ−１＋１）ｐ×（２ｎ−１）ｍ−ｐとなる。
【００２９】
以上のようにアドレスデコーダを動作させることで、レジスタアドレスを格子点データの格納先の、記憶部１０３におけるバンクとメモリアドレスへ変換することが出来る。なお、アドレスデコーダの実現方法はこの方法に限定されるわけではなく、計算式で算出するなどの別の方法を用いても良い。このように、必要な格子点データを過不足なく連続してメモリにマッピングすることで、必要なメモリの容量や格子点データ設定のためのコマンド数、ファームウェアを格納するＲＯＭの容量を減らすことが可能となる。
【００３０】
なお、バンク０〜バンク７の複数バンクのメモリに格納された格子点データの読み出しは、たとえば、以下のように行うことができる。たとえば、３次元ルックアップテーブルの各軸の格子点数が１７グリッドの場合、ＬＵＴの格子点座標は、各軸５ビットの座標値（ｒ，ｇ，ｂ）で構成される。入力されたＲＧＢデータに基づいて格子点座標（ｒ、ｇ、ｂ）が得られたとする。バンクが各軸の座標値の奇数、偶数の並びにより決定されるので、バンクを指定する情報はｒ、ｇ、ｂのそれぞれのＬＳＢ（ｒ[0]、ｇ[0]、ｂ[0]）を連結すること、すなわち、４×ｒ[0]＋２×ｇ[0]＋ｂ[0]により得られる。また、記憶部１０３のメモリアドレスは、ｒ、ｇ、ｂの５ビットからＬＳＢを除いた４ビットのデータ値、ｒ[4…1]、ｇ[4…1]、ｂ[4…1]から得られる。すなわち、ｒ[4…1]×（９−ｇ[0]）×（９−ｂ[0]）＋ｇ[4…1]×（９−ｂ[0]）＋ｂ[4…1]により、格子点のメモリアドレスが得られる。処理部１０２は、上記処理により、入力データであるＲＧＢデータに対応した複数の格子点データを取得し、それらを用いて補間処理を行うことにより、入力データ（たとえばＲＧＢデータ）に対応した出力データ（たとえばＣＭＹＫデータ）を得る。処理部１０２は、こうして読み出した格子点データとＲＧＢデータに基づいて補間処理を行い、ＲＧＢデータを対応するＹＭＣＫデータに変換する。
【００３１】
以上、説明したように、本実施形態では、１７グリッドの処理に必要な格子点データが過不足なく並べられたメモリマップに従って制御部１０１により格子点データの設定動作が行われる。そのため、記憶部１０３のメモリ容量や格子点データを設定するためのコマンドやファームウェアは必要なデータのみを用意すれば良く、回路の削減が可能となる。なお、上記実施形態では１７グリッドの３次元ＬＵＴを例示したが本発明はこれに限られるものではない。たとえば、ＬＵＴの次元数は２以上であればよい。また、グリッド数（軸あたりの格子点数）も１７に限られるものではない。グリッド数が偶数のＬＵＴの場合は各バンクのメモリに格納される格子点データの個数は等しくなる。グリッド数が奇数のＬＵＴの場合は、上記実施形態のように各バンクに割り当てられる格子点データの個数が異なるが、各バンクが割り当てられた個数の格子点データを連続したアドレスで保持するため、そのメモリ容量を低減することができる。
【００３２】
なお、バンク７の格子点数は５１２なので、ステップＳ６１８で、バンク７のメモリアドレスの９ビット目より上位のビットのいずれかが‘１’となっている場合にメモリへの書き込みを禁止すれば、閾値４９１３との比較（ステップＳ６１７）は不要になる。この場合、ステップＳ６１５でＮＯと判定された場合にステップＳ６１８が実行されることになる。
【００３３】
＜第２実施形態＞
第１実施形態では制御部１０１に格子点データの格納先を適切に振り分ける機能を持たせることで、記憶部１０３のメモリ容量やファームウェアを格納するＲＯＭの容量を小さくすることが出来ることを示した。第２実施形態では１つの処理部１０２に複数種類の処理機能を持たせてレジスタ設定により使い分ける例を示す。
【００３４】
図６に第２実施形態にかかる画像処理装置のブロック図を示す。第１実施形態と同様の構成には図１と同じ符号を付した。以下、第１実施形態と異なる動作をする制御部７０１と処理部７０２について説明する。第２実施形態では、１軸当たりのグリッド数が異なる複数種類のルックアップテーブルのうちの１つを指示する指示情報にしたがって、レジスタアドレスがバンク指定とメモリアドレスへ変換され、指示情報にしたがって、処理部７０２が動作する。
【００３５】
処理部７０２は第１実施形態で説明した１７グリッドでの処理に加え、１６グリッドでの処理も行う。いずれのグリッド数で処理を行うかはレジスタ７０３のレジスタ値で設定される。以降では、１７グリッドで処理するモードを１７グリッドモードと呼び、１６グリッドで処理するモードを１６グリッドモードと呼ぶ。制御部７０１は、 “17GridMode”を格納するレジスタ７０３を有し、処理部７０２はレジスタ７０３を参照することによって１６グリッドモードと１７グリッドモードを切り替える。レジスタ７０３の“17GridMode”が‘０’に設定されると処理部７０２は１６グリッドモードで動作し、‘１’に設定されると１７グリッドモードで動作する。このように、処理に用いられるＬＵＴを指示するための指示情報として“17GridMode”が用いられる。なお、レジスタ７０３への17GridModeの設定は転送部１１１から入力されるレジスタコマンドにより実現される。
【００３６】
１６グリッドモードは、１軸当たりの格子点の数が１６点のＬＵＴを用いた処理モードである。１６グリッドモードで動作させる場合、１軸当たりの格子点は０から１５までの１６個なので、ＲＧＢなど３次元のＬＵＴの格子点の数は合計１６＊１６＊１６＝４０９６個となる。それらの格子点に対応するデータを格子点座標の偶奇の組合せに応じて分割されたメモリから読み出す。即ち、
・座標が（偶数、偶数、偶数）の格子点に対応する８＊８＊８＝５１２個の格子点データを記憶部１０３にあるメモリのバンク０から読み出し、
・座標が（偶数、偶数、奇数）の格子点に対応する５１２個の格子点データをバンク１から読み出し、
・・・
・座標が（奇数、奇数、奇数）の格子点に対応する５１２個のデータをバンク７から読み出す、という具合に８個に分割されたメモリから読み出す。図３（ｂ）に、１６グリッドで処理する時のバンク毎に格納される格子点データの個数を示す。
【００３７】
１６グリッドモードと１７グリッドモードでは、記憶部１０３への格子点データの格納量が異なる。本実施形態では、同一の画像処理モジュールで２つのモードの演算処理を行うために、記憶部１０３は容量の大きい１７グリッドの容量に合わせたメモリを備えている。即ち、メモリ構成は第１実施形態と同様となる。
【００３８】
次に、制御部７０１の処理を説明する。制御部７０１は、処理モード（17GridMode）を設定するためのレジスタ７０３を有している。まず、制御部７０１はレジスタ７０３を設定するためのレジスタコマンドを受け取る。制御部７０１は、処理モード（17GridMode）を設定するレジスタコマンドを受け取ると、レジスタ７０３を設定し、処理部７０２に対して設定値を入力する。17GridMode以外の処理部７０２への必要な設定も、この時にコマンドとして入力する。なお、レジスタの設定順に規定はなく、設定する順番は前後しても良い。
【００３９】
次に、格子点データを設定するためのレジスタコマンドが制御部７０１に入力される。制御部７０１は画像処理に必要な格子点データを記憶部１０３に設定するためのレジスタコマンドを受け取る。１６グリッドモードで処理するか１７グリッドモードで処理するかによってＬＵＴの格子点データの数が異なるため、制御部７０１が受け取る格子点データ設定のためのレジスタコマンドの個数も異なる。すなわち、１６グリッドモードで処理する場合は、４０９６個の格子点データ設定のレジスタコマンドを受け取り、一方、１７グリッドモードで処理する場合は、４９１３個の格子点データ設定のレジスタコマンドを受け取る。
【００４０】
制御部７０１は格子点データを設定するレジスタコマンドを受け取ると、コマンドに格納されているアドレスを参照して格子点データを適切な記憶部１０３のメモリへ格納していく。前述したように１６グリッドモードと１７グリッドモードで記憶部１０３へ格納する格子点データ数が異なるため、制御部７０１はグリッドモードの設定に応じて適切なバンクのメモリへ格子点データを分配する必要がある。図４（ｂ）に１６グリッドモード時のメモリマップを示す。制御部７０１は既に設定されているレジスタ７０３の17GridModeを参照して、図４（ａ）と図４（ｂ）のいずれのメモリマップに従うかを決める。
【００４１】
図６で示すように、制御部７０１は制御部１０１と同様に内部にアドレスデコーダ７０４を有しており、レジスタ７０３における17GridModeの設定はアドレスデコーダ７０４から参照可能な構成となっている。そして、レジスタ７０３における17GridModeが‘０’、つまり１６グリッドモードが示される場合は、図４（ｂ）のメモリマップに従って、レジスタアドレスをバンクとメモリアドレスへ変換し、格子点データをメモリに書き込んでいく。
【００４２】
１６グリッドのＬＵＴの格子点データには、図４（ｂ）に示されるように連続したレジスタアドレスが割り当てられる。すなわち、格子点座標が（偶数、偶数、偶数）である（０、０、０）から（１４、１４、１４）までの５１２個の格子点データに続いて、（偶数、偶数、奇数）の（０、０、１）から（１４、１４、１５）までの５１２個の格子点データに連続したレジスタアドレスが割り当てられる。このように格子点データには連続したレジスタアドレスが割り当てられ、５１２個の格子点データの前後や途中に、最大メモリ容量（７２９個の格子点データの容量）に合わせるための不要なデータの領域は存在しない。こうして、格子点座標が（奇数、奇数、奇数）である（１、１、１）から（１５、１５、１５）までの５１２個の格子点データまで、連続するレジスタアドレスが割当られる。
【００４３】
そして、図４（ｂ）に示されるように、アドレスデコーダ７０４は、格子点座標が（偶数、偶数、偶数）である（０、０、０）から（１４、１４、１４）までの５１２個の格子点データをバンク０のメモリ（メモリ０）のアドレス０から順番にマッピングする。それに続けて、アドレスデコーダ７０４は、格子点座標が（偶数、偶数、奇数）である（０、０、１）から（１４、１４、１５）までの５１２個の格子点データをバンク１のメモリ（メモリ１）へマッピングする。こうして、連続するレジスタアドレスが複数バンクのメモリへマッピングされ、バンク７のメモリ（メモリ７）には格子点座標（１、１、１）から（１５、１５、１５）の５１２個のデータがマッピングされる。
【００４４】
一方、レジスタ７０３の17GridModeが‘１’、つまり１７グリッドモードの場合の動作は第１実施形態と同じであり、図４（ａ）のメモリマップに従って格子点データが記憶部１０３の各メモリへマッピングされる。
【００４５】
以上のように、制御部７０１は、第１実施形態と同様に内部にレジスタアドレスからデータ格納先のバンクとメモリアドレスへ変換するアドレスデコーダ７０４を有し、上述のような格子点データのマッピングを実現する。図８に第２実施形態のアドレスデコーダ７０４の動作を表すフローチャートである。図５のフローチャートと同じ動作をするステップには同じ符号を与えた。以降で、アドレスデコーダ７０４の動作を図８のフローチャートに従って説明する。
【００４６】
まず、ステップＳ６０１において、アドレスデコーダ７０４は、レジスタアドレスが４の倍数かどうかを調べる。４の倍数でない場合、メモリへのアクセスは行わず処理を終了する。４の倍数であった場合、処理はステップＳ６０２へ進み、アドレスデコーダ７０４は、レジスタアドレスを４で除算し、値Ａを得る。次に、ステップＳ９０１でレジスタ７０３の17GridModeが‘１’に設定されているか否かを判定し、１に設定されていれば処理はステップＳ９１８に進む。ステップＳ９１８は、１７グリッドのＬＵＴの格子点データを記憶部１０３にロードする処理であり、その具体的な処理内容は第１実施形態（図５のステップＳ６０３からステップＳ６１８）と同様である。
【００４７】
一方、レジスタ７０３の17GridModeが‘０’に設定されていた場合、処理はステップＳ９０２に進み、１６グリッドのＬＵＴに対応したメモリマッピングを実行する。すなわち、値Ａを所定の閾値と比較する（ステップＳ９０２、Ｓ９０４、Ｓ９０６、Ｓ９０８、Ｓ９１０、Ｓ９１２、Ｓ９１４、Ｓ９１６）ことで、下記に示すように選択されるバンクとメモリアドレスが決定され（ステップＳ９０３、Ｓ９０５、Ｓ９０７、Ｓ９０９、Ｓ９１１、Ｓ９１３、Ｓ９１５、Ｓ９１７）、格子点データがマッピングされる。
（１）０≦Ａ＜５１２の時、バンクは０、メモリアドレスはＡを出力する（Ｓ９０２、Ｓ９０３）
（２）５１２≦Ａ＜１０２４の時、バンクは１、メモリアドレスはＡ−５１２を出力する（Ｓ９０４、Ｓ９０５）
（３）１０２４≦Ａ＜１５３６の時、バンクは２、メモリアドレスはＡ−１０２４を出力する（Ｓ９０６、Ｓ９０７）
（４）１５３６≦Ａ＜２０４８の時、バンクは３、メモリアドレスはＡ−１５３６を出力する（Ｓ９０８、Ｓ９０９）
（５）２０４８≦Ａ＜２５６０の時、バンクは４、メモリアドレスはＡ−２０４８を出力する（Ｓ９１０、Ｓ９１１）
（６）２５６０≦Ａ＜３０７２の時、バンクは５、メモリアドレスはＡ−２５６０を出力する（Ｓ９１２、Ｓ９１３）
（７）３０７２≦Ａ＜３５８４の時、バンクは６、メモリアドレスはＡ−３０７２を出力する（Ｓ９１４、Ｓ９１５）
（８）３５８４≦Ａ＜４０９６の時、バンクは７、メモリアドレスはＡ−３５８４を出力する（Ｓ９１６、Ｓ９１７）
（９）４０９６≦Ａの時、メモリへのアクセスは行わない。
【００４８】
以上のようにして格子点データを記憶部１０３に格納した結果、記憶部１０３の８個のメモリには図７のように設定値が格納される。図７（ａ）は１７グリッドモード時の格子点データの格納の結果を、図７（ｂ）は１６グリッドモード時の格子点データの格納の結果を示した。図中の各バンクに記載した分数は、分母が各メモリの容量（格納可能な格子点データの最大個数）を表し、分子がそのうちの格子点データの格納された個数を表している。１７グリッドモード時は記憶部１０３の全てのメモリ（メモリ０〜メモリ７）において全領域が使用されているが、１６グリッドモード時は、１６グリッドの補間処理に必要な分だけの格子点データが各メモリに格納されている。
【００４９】
次に、制御部７０１はデータコマンドを受け取る。制御部７０１へ入力されたデータコマンドの中から画像処理の対象となる画像データを取り出して、処理部７０２へ入力する。処理部７０２は受け取った画像データを設定されたレジスタ値（17GridModeの値）に従って既定の画像処理を行う。即ち、17GridModeが１に設定されていれば、処理部７０２は１７グリッドモードで処理し、０に設定されていれば、処理部７０２は１６グリッドモードで処理する。処理部７０２は処理後のデータを再び制御部７０１へ入力する。制御部７０１は受け取った処理後のデータからデータコマンドを生成して、出力する。
【００５０】
以上が第２実施形態の画像形成システムにおける画像処理の流れである。上記のように最初に処理モード（17GridMode）をレジスタに設定し、その後、格子点データの設定時には設定された処理モードでの画像処理に適した格子点データの記憶部１０３への格納を行ってから画像処理を行う。このような手順でレジスタの設定と格子点データの設定を行うことで、８つのメモリからなる単一の記憶部１０３を有する画像処理モジュールであっても、複数種類の画像処理を行うことが可能となる。
【００５１】
なお、１６グリッドモード時のバンク毎の格子点データの格納個数は５１２であるので、アドレスデコーダ７０４はバンク、メモリアドレスをレジスタアドレスから所定のビットを抽出することにより生成しても良い。たとえば、バンクとしてレジスタアドレス（ＭＳＢ：１３、ＬＳＢ:０とする）のビット１３〜１１を抽出し、メモリアドレスとしてレジスタアドレスのビット１０〜２を抽出するようにしてもよい。
【００５２】
＜第３実施形態＞
第２実施形態では、レジスタ設定の際に処理モード（17GridMode）をレジスタ７０３に設定することで、設定した処理モードでの画像処理に応じたメモリへのデータ格納を行うことが出来ることを示した。ここで、制御部７０１はレジスタ７０３における17GridModeの設定値に応じて予め所持していた閾値を選択して、その閾値に応じて格納するバンクとアドレスを出力する構成となっている。すなわち、予め用意された複数のモード（第２実施形態では１７グリッドと１６グリッド）から選択する構成であるため、選択可能なモードが制限される。第３実施形態では、レジスタに閾値のセットを設定すること、すなわち、使用されるルックアップテーブルに応じて閾値のセットを変更することを可能とし、より広範な処理モードに適応できるデータ処理部１００を提供する。
【００５３】
図９に第３実施形態にかかる画像処理装置のブロック図を示す。制御部１００１の動作が第２実施形態とは異なっており、以降では制御部１００１の動作について説明する。制御部１００１は、閾値Ｔｈ０からＴｈ７を格納するためのレジスタ１００３を有する。制御部１００１は、閾値設定のためのレジスタ設定コマンドを受け取ると、レジスタ１００３に、格子点データ設定時の格納先のバンクを切り替えるための閾値Ｔｈ０〜Ｔｈ７を設定する。また、レジスタ１００５には、処理モードが設定される。たとえば、制御部１００１、処理部７０２を１７グリッドモードで動作させる場合は、制御部１００１は、図５に示した処理で用いた閾値をレジスタ１００３に設定する。すなわち、制御部１００１は、閾値Ｔｈ０〜Ｔｈ７として、それぞれ７２９、１３７７、２０２５、２６０１、３２４９、３８２５、４４０１、４９１３を設定する。そして、レジスタ１００５には１７グリッドモードが設定される。処理部７０２はレジスタ１００５を参照することで、処理モードを認識することができる。
【００５４】
制御部１００１はレジスタ１００３に閾値を設定した後、記憶部１０３へ格子点データを格納する際には、閾値Ｔｈ０〜Ｔｈ７を参照してバンクとメモリアドレスを得て、記憶部１０３へ格子点データを格納する。レジスタアドレスからバンクとメモリアドレスへ変換するために、制御部１００１は、アドレスデコーダ１００４を有する。第３実施形態のアドレスデコーダ１００４は図１０のフローチャートに示される様に動作する。図１０のステップＳ６０１とＳ６０２は図５と同様の動作である。アドレスデコーダ１００４は、レジスタアドレスを４で除算して得た値Ａを、レジスタ１００３に設定された閾値と比較する（Ｓ１１０３、Ｓ１１０５、Ｓ１１０７、Ｓ１１０９、Ｓ１１１１、Ｓ１１１３、Ｓ１１１５、Ｓ１１１７）。そして、その比較の結果に応じて、選択されるバンクとメモリアドレスが決定される（Ｓ１１０４、Ｓ１１０６、Ｓ１１０８、Ｓ１１１０、Ｓ１１１２、Ｓ１１１４、Ｓ１１１６、Ｓ１１１８）。より具体的には、下記の様に、バンクとメモリアドレスが決定される。
（１）０≦Ａ＜Ｔｈ０の時、バンクは０、メモリアドレスはＡを出力する（Ｓ１１０３、Ｓ１１０４）
（２）Ｔｈ０≦Ａ＜Ｔｈ１の時、バンクは１、メモリアドレスはＡ−Ｔｈ０を出力する（Ｓ１１０５、Ｓ１１０６）
（３）Ｔｈ１≦Ａ＜Ｔｈ２の時、バンクは２、メモリアドレスはＡ−Ｔｈ１を出力する（Ｓ１１０７、Ｓ１１０８）
（４）Ｔｈ２≦Ａ＜Ｔｈ３の時、バンクは３、メモリアドレスはＡ−Ｔｈ２を出力する（Ｓ１１０９、Ｓ１１１０）
（５）Ｔｈ３≦Ａ＜Ｔｈ４の時、バンクは４、メモリアドレスはＡ−Ｔｈ３を出力する（Ｓ１１１１、Ｓ１１１２）
（６）Ｔｈ４≦Ａ＜Ｔｈ５の時、バンクは５、メモリアドレスはＡ−Ｔｈ４を出力する（Ｓ１１１３、Ｓ１１１４）
（７）Ｔｈ５≦Ａ＜Ｔｈ６の時、バンクは６、メモリアドレスはＡ−Ｔｈ５を出力する（Ｓ１１１５、Ｓ１１１６）
（８）Ｔｈ６≦Ａ＜Ｔｈ７の時、バンクは７、メモリアドレスはＡ−Ｔｈ６を出力する（Ｓ１１１７、Ｓ１１１８）
（９）Ｔｈ７≦Ａの時、メモリへのアクセスは行わない。
【００５５】
なお、上記の例ではバンクの個数を８個として説明したが、これに限られるものではない。たとえば、処理部７０２がバンクを４個だけ使用する処理の場合は、使用しないレジスタ“Ｔｈ４”から“Ｔｈ７”を‘０’に設定しておく。これにより、ステップＳ１１１１、Ｓ１１１３、Ｓ１１１５、Ｓ１１１７で処理は必ずＮＯに分岐し、そのバンクには格子点データが格納されないようにすることができる。また、処理部７０２がより多くのバンクを使用する処理が行われる場合は、記憶部１０３が８個以上のバンクのメモリを有する構成とし、レジスタ１００３に閾値Ｔｈ８以上を記憶することで対応することができ、より制御部としての汎用性を高めることが出来る。
【００５６】
また、処理部７０２へ入力すべき処理モードを表す信号（たとえばグリッド数を表す信号）をレジスタ１００３に格納された閾値から自動的に生成するようにしてもよい。すなわち、閾値Ｔｈ０が７２９であれば、制御部１００１は処理部７０２へ１７グリッドモードで処理することを示す信号として「17GridMode＝１」を出力する。一方、閾値Ｔｈ０が５１２であれば、制御部１００１は１６グリッドモードで処理することを示す信号として「17GridMode＝０」を処理部７０２へ出力する。こうすることで、第２実施形態で説明したレジスタ７０３への17GridModeの設定と同等の動作が可能となり、レジスタ１００５への17GridModeの設定を省略することができる。なお、設定可能なモードが２つしかない場合は、いずれか一方を検出すればよい。本実施形態では、閾値Ｔｈ０が５１２のときＭＳＢ以外のビットは０となることを利用し、閾値Ｔｈ０の所定のビットを１７グリッドモードで処理する信号として出力すればよい。ここで、所定のビットとしては、たとえば、値７２９で１になるビット（ＭＳＢを除く）、すなわち、ビット０、３、４，６，７のいずれかを用いることができる。
【００５７】
なお、処理部７０２が第１実施形態のように１７グリッドモードのみという１つの処理モードだけをサポートする場合においても、第３実施形態で提案したような制御部１００１は有効に機能する。当然、その場合には処理部７０２に対して処理モードを示す信号を出力する必要はない。
【００５８】
以上で説明したように、制御部にメモリマップの設定用のレジスタを加え、そのレジスタを設定することで、制御部は設計時にメモリマップを記憶しておく必要がなくなり、要素部品としての汎用性を向上させることが可能となる。また、ルックアップテーブルデータの設定に関して、２のべき乗ではないデータ数であっても不要なデータを追加することなくルックアップテーブルデータを設定することが出来る。
【００５９】
（その他の実施形態）
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【符号の説明】
【００６０】
１０１：制御部、１０２：処理部、１０３：記憶部、１０４、７０４、１００４：アドレスデコーダ、１１１：転送部、１１２：ＤＲＡＭ、１１３：入力データ、７０３、１００３，１００５：レジスタ
【図１】
0006501561.tif 000002
【図２】
0006501561.tif 000003
【図３】
0006501561.tif 000004
【図４】
0006501561.tif 000005
【図５】
0006501561.tif 000006
【図６】
0006501561.tif 000007
【図７】
0006501561.tif 000008
【図８】
0006501561.tif 000009
【図９】
0006501561.tif 000010
【図１０】
0006501561.tif 000011
【図１１】
0006501561.tif 000012